00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
#ifndef __propsdlg_h
00029
#define __propsdlg_h
00030
00031
#include <qstring.h>
00032
#include <qptrlist.h>
00033
00034
#include <kdemacros.h>
00035
#include <kurl.h>
00036
#include <kfileitem.h>
00037
#include <kdialogbase.h>
00038
00039
class QLineEdit;
00040
class QCheckBox;
00041
class QPushButton;
00042
class KLineEdit;
00043
class KURLRequester;
00044
class QButton;
00045
class KIconButton;
00046
class KPropsDlgPlugin;
00047
class QComboBox;
00048
00049
#define KPropsPage KPropsDlgPlugin
00050
00051
namespace KIO {
class Job; }
00052
00065 class KPropertiesDialog :
public KDialogBase
00066 {
00067 Q_OBJECT
00068
00069
public:
00070
00075
static bool canDisplay(
KFileItemList _items );
00076
00088
KPropertiesDialog(
KFileItem *
item,
00089
QWidget* parent = 0L,
const char* name = 0L,
00090
bool modal =
false,
bool autoShow =
true);
00103
KPropertiesDialog(
KFileItemList _items,
00104
QWidget *parent = 0L,
const char* name = 0L,
00105
bool modal =
false,
bool autoShow =
true);
00106
00107
#ifndef KDE_NO_COMPAT
00108
00120
KPropertiesDialog(
const KURL& _url, mode_t _mode,
00121
QWidget* parent = 0L,
const char* name = 0L,
00122
bool modal =
false,
bool autoShow =
true) KDE_DEPRECATED;
00123
#endif
00124
00141
KPropertiesDialog(
const KURL& _url,
00142
QWidget* parent = 0L,
const char* name = 0L,
00143
bool modal =
false,
bool autoShow =
true);
00144
00159
KPropertiesDialog(
const KURL& _tempUrl,
const KURL& _currentDir,
00160
const QString& _defaultName,
00161
QWidget* parent = 0L,
const char* name = 0L,
00162
bool modal =
false,
bool autoShow =
true);
00163
00173
KPropertiesDialog (
const QString& title,
00174
QWidget* parent = 0L,
const char* name = 0L,
bool modal =
false);
00175
00181
virtual ~KPropertiesDialog();
00182
00183
00197
void insertPlugin (
KPropsDlgPlugin *plugin);
00198
00203 const KURL&
kurl()
const {
return m_singleUrl; }
00204
00211 KFileItem *
item() {
return m_items.first(); }
00212
00216 KFileItemList items()
const {
return m_items; }
00217
00222 KDE_DEPRECATED
KDialogBase*
dialog() {
return this; }
00223 KDE_DEPRECATED
const KDialogBase*
dialog()
const {
return this; }
00224
00230 const KURL&
currentDir()
const {
return m_currentDir; }
00231
00237 const QString&
defaultName()
const {
return m_defaultName; }
00238
00245
void updateUrl(
const KURL& _newUrl );
00246
00252
void rename(
const QString& _name );
00253
00257
void abortApplying();
00258
00266
void showFileSharingPage();
00267
00274
void setFileSharingPage(
QWidget* page);
00275
00281
void setFileNameReadOnly(
bool ro );
00282
00283
public slots:
00287
virtual void slotOk();
00288
virtual void slotCancel();
00289
00290 signals:
00294
void propertiesClosed();
00295
void applied();
00296
void canceled();
00297
00303
void saveAs(
const KURL &oldUrl,
KURL &newUrl);
00304
00305
private:
00306
00310
void init (
bool modal =
false,
bool autoShow =
true);
00311
00315
void insertPages();
00316
00320
KURL m_singleUrl;
00321
00325
KFileItemList m_items;
00326
00330
QString m_defaultName;
00331
KURL m_currentDir;
00332
00336
QPtrList<KPropsDlgPlugin> m_pageList;
00337
00338
private slots:
00339
void slotStatResult(
KIO::Job * );
00340
protected:
00341
virtual void virtual_hook(
int id,
void* data );
00342
private:
00343
class KPropertiesDialogPrivate;
00344 KPropertiesDialogPrivate *d;
00345 };
00346
00361 class KPropsDlgPlugin :
public QObject
00362 {
00363 Q_OBJECT
00364
public:
00370
KPropsDlgPlugin(
KPropertiesDialog *_props );
00371
virtual ~
KPropsDlgPlugin();
00372
00378
virtual void applyChanges();
00379
00384
static bool isDesktopFile(
KFileItem * _item );
00385
00386
void setDirty(
bool b );
00387
bool isDirty()
const;
00388
00389
public slots:
00390
void setDirty();
00391
00392 signals:
00398
void changed();
00399
00400
protected:
00404 KPropertiesDialog *
properties;
00405
00406
int fontHeight;
00407
protected:
00408
virtual void virtual_hook(
int id,
void* data );
00409
private:
00410
class KPropsDlgPluginPrivate;
00411 KPropsDlgPluginPrivate *d;
00412 };
00413
00419 class KFilePropsPlugin :
public KPropsDlgPlugin
00420 {
00421 Q_OBJECT
00422
public:
00426
KFilePropsPlugin(
KPropertiesDialog *_props );
00427
virtual ~
KFilePropsPlugin();
00428
00434
virtual void applyChanges();
00435
00439
static bool supports(
KFileItemList _items );
00440
00444
void postApplyChanges();
00445
00446
void setFileNameReadOnly(
bool ro );
00447
00448
protected slots:
00449
void slotEditFileType();
00450
void slotCopyFinished(
KIO::Job * );
00451
void slotFileRenamed(
KIO::Job *,
const KURL &,
const KURL & );
00452
void slotDirSizeUpdate();
00453
void slotDirSizeFinished(
KIO::Job * );
00454
void slotFoundMountPoint(
const QString& mp,
unsigned long kBSize,
00455
unsigned long kBUsed,
unsigned long kBAvail );
00456
void slotSizeStop();
00457
void slotSizeDetermine();
00458
00459
private slots:
00460
00461
void slotFoundMountPoint(
const unsigned long& kBSize,
const unsigned long&
00462 kBUsed,
const unsigned long& kBAvail,
const QString& mp );
00463
void nameFileChanged(
const QString &text );
00464
void slotIconChanged();
00465
00466
private:
00467
void determineRelativePath(
const QString & path );
00468
void applyIconChanges();
00469
00470
QWidget *iconArea;
00471
QWidget *nameArea;
00472
00473
QLabel *m_sizeLabel;
00474
QPushButton *m_sizeDetermineButton;
00475
QPushButton *m_sizeStopButton;
00476
00477
QString m_sRelativePath;
00478
bool m_bFromTemplate;
00479
00483
QString oldName;
00484
00485
class KFilePropsPluginPrivate;
00486 KFilePropsPluginPrivate *d;
00487 };
00488
00495 class KFilePermissionsPropsPlugin :
public KPropsDlgPlugin
00496 {
00497 Q_OBJECT
00498
public:
00499
enum PermissionsMode {
00500 PermissionsOnlyFiles = 0,
00501 PermissionsOnlyDirs = 1,
00502 PermissionsOnlyLinks = 2,
00503 PermissionsMixed = 3
00504 };
00505
00506
enum PermissionsTarget {
00507 PermissionsOwner = 0,
00508 PermissionsGroup = 1,
00509 PermissionsOthers = 2
00510 };
00511
00515
KFilePermissionsPropsPlugin(
KPropertiesDialog *_props );
00516
virtual ~
KFilePermissionsPropsPlugin();
00517
00518
virtual void applyChanges();
00519
00523
static bool supports(
KFileItemList _items );
00524
00525
private slots:
00526
00527
void slotChmodResult(
KIO::Job * );
00528
void slotShowAdvancedPermissions();
00529
00530
private:
00531
void setComboContent(
QComboBox *combo, PermissionsTarget target,
00532 mode_t permissions, mode_t partial);
00533
bool isIrregular(mode_t permissions,
bool isDir,
bool isLink);
00534
void enableAccessControls(
bool enable);
00535
void updateAccessControls();
00536
void getPermissionMasks(mode_t &andFilePermissions,
00537 mode_t &andDirPermissions,
00538 mode_t &orFilePermissions,
00539 mode_t &orDirPermissions);
00540
00541
static const mode_t permissionsMasks[3];
00542
static const mode_t standardPermissions[4];
00543
static const char *permissionsTexts[4][4];
00544
00545
00546
QCheckBox *permBox[3][4];
00547
00548
QComboBox *grpCombo;
00549
00550
KLineEdit *usrEdit, *grpEdit;
00551
00555 mode_t permissions;
00559
QString strGroup;
00563
QString strOwner;
00564
00565
00566
static mode_t fperm[3][4];
00567
00568
class KFilePermissionsPropsPluginPrivate;
00569 KFilePermissionsPropsPluginPrivate *d;
00570 };
00571
00572
00581 class KURLPropsPlugin :
public KPropsDlgPlugin
00582 {
00583 Q_OBJECT
00584
public:
00588
KURLPropsPlugin(
KPropertiesDialog *_props );
00589
virtual ~
KURLPropsPlugin();
00590
00591
virtual void applyChanges();
00592
00593
static bool supports(
KFileItemList _items );
00594
00595
private:
00596
KURLRequester *URLEdit;
00597
KIconButton *iconBox;
00598
00599
QString URLStr;
00600
QString iconStr;
00601
00602
QPixmap pixmap;
00603
QString pixmapFile;
00604
private:
00605
class KURLPropsPluginPrivate;
00606 KURLPropsPluginPrivate *d;
00607 };
00608
00609
00616 class KBindingPropsPlugin :
public KPropsDlgPlugin
00617 {
00618 Q_OBJECT
00619
public:
00623
KBindingPropsPlugin(
KPropertiesDialog *_props );
00624
virtual ~
KBindingPropsPlugin();
00625
00626
virtual void applyChanges();
00627
static bool supports(
KFileItemList _items );
00628
00629
private:
00630
00631
QLineEdit *commentEdit;
00632
QLineEdit *patternEdit;
00633
QLineEdit *mimeEdit;
00634
QString m_sMimeStr;
00635
00636
QCheckBox * cbAutoEmbed;
00637
00638
class KBindingPropsPluginPrivate;
00639 KBindingPropsPluginPrivate *d;
00640 };
00641
00646 class KDevicePropsPlugin :
public KPropsDlgPlugin
00647 {
00648 Q_OBJECT
00649
public:
00650
KDevicePropsPlugin(
KPropertiesDialog *_props );
00651
virtual ~
KDevicePropsPlugin();
00652
00653
virtual void applyChanges();
00654
00655
static bool supports(
KFileItemList _items );
00656
00657
private slots:
00658
void slotActivated(
int );
00659
void slotDeviceChanged();
00660
00661
private:
00662
QComboBox* device;
00663
QLabel* mountpoint;
00664
QCheckBox* readonly;
00665
void* unused;
00666
00667
KIconButton* unmounted;
00668
00669
QStringList m_devicelist;
00670
int indexDevice;
00671
int indexMountPoint;
00672
int indexFSType;
00673
00674
QPixmap pixmap;
00675
QString pixmapFile;
00676
00677
class KDevicePropsPluginPrivate;
00678 KDevicePropsPluginPrivate *d;
00679 };
00680
00681
class KPropertiesDesktopBase;
00682
00691 class KDesktopPropsPlugin :
public KPropsDlgPlugin
00692 {
00693 Q_OBJECT
00694
public:
00698
KDesktopPropsPlugin(
KPropertiesDialog *_props );
00699
virtual ~
KDesktopPropsPlugin();
00700
00701
virtual void applyChanges();
00702
00703
static bool supports(
KFileItemList _items );
00704
00705
public slots:
00706
void slotAddFiletype();
00707
void slotDelFiletype();
00708
void slotBrowseExec();
00709
void slotAdvanced();
00710
void slotSelectMimetype();
00711
00712
private:
00713
void checkCommandChanged();
00714
00715
private:
00716 KPropertiesDesktopBase* w;
00717
00718
QString m_origCommandStr;
00719
QString m_terminalOptionStr;
00720
QString m_suidUserStr;
00721
QString m_dcopServiceType;
00722
bool m_terminalBool;
00723
bool m_terminalCloseBool;
00724
bool m_suidBool;
00725
bool m_startupBool;
00726
bool m_systrayBool;
00727
00728
class KDesktopPropsPluginPrivate;
00729 KDesktopPropsPluginPrivate *d;
00730 };
00731
00741
00742 class KDE_DEPRECATED KExecPropsPlugin :
public KPropsDlgPlugin
00743 {
00744 Q_OBJECT
00745
public:
00749 KExecPropsPlugin(
KPropertiesDialog *_props );
00750
virtual ~KExecPropsPlugin();
00751
00752
virtual void applyChanges();
00753
00754
static bool supports(
KFileItemList _items );
00755
00756
public slots:
00757
void slotBrowseExec();
00758
00759
private slots:
00760
void enableCheckedEdit();
00761
void enableSuidEdit();
00762
00763
private:
00764
00765
QLabel *terminalLabel;
00766
QLabel *suidLabel;
00767
KLineEdit *execEdit;
00768
QCheckBox *terminalCheck;
00769
QCheckBox *suidCheck;
00770
KLineEdit *terminalEdit;
00771
KLineEdit *suidEdit;
00772
KLineEdit *swallowExecEdit;
00773
KLineEdit *swallowTitleEdit;
00774
QButton *execBrowse;
00775
00776
QString execStr;
00777
QString swallowExecStr;
00778
QString swallowTitleStr;
00779
QString termOptionsStr;
00780
bool termBool;
00781
bool suidBool;
00782
QString suidUserStr;
00783
00784
class KExecPropsPluginPrivate;
00785 KExecPropsPluginPrivate *d;
00786 };
00787
00797
00798 class KDE_DEPRECATED KApplicationPropsPlugin :
public KPropsDlgPlugin
00799 {
00800 Q_OBJECT
00801
public:
00805 KApplicationPropsPlugin(
KPropertiesDialog *_props );
00806
virtual ~KApplicationPropsPlugin();
00807
00808
virtual void applyChanges();
00809
00810
static bool supports(
KFileItemList _items );
00811
00812
public slots:
00813
void slotDelExtension();
00814
void slotAddExtension();
00815
00816
private slots:
00817
void updateButton();
00818
00819
private:
00820
void addMimeType(
const QString & name );
00821
00822
QLineEdit *commentEdit;
00823
QLineEdit *genNameEdit;
00824
QLineEdit *nameEdit;
00825
QListBox *extensionsList;
00826
QListBox *availableExtensionsList;
00827
QPushButton *addExtensionButton;
00828
QPushButton *delExtensionButton;
00829
00830
class KApplicationPropsPluginPrivate;
00831 KApplicationPropsPluginPrivate *d;
00832 };
00833
00834
#endif
00835