kpropertiesdialog.h
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 <kurl.h>
00035 #include <kfileitem.h>
00036 #include <kdialogbase.h>
00037
00038 class QLineEdit;
00039 class QCheckBox;
00040 class QPushButton;
00041 class KLineEdit;
00042 class KURLRequester;
00043 class QButton;
00044 class KIconButton;
00045 class KPropsDlgPlugin;
00046 class QComboBox;
00047
00048 #define KPropsPage KPropsDlgPlugin
00049
00050 namespace KIO { class Job; }
00051
00064 class KPropertiesDialog : public KDialogBase
00065 {
00066 Q_OBJECT
00067
00068 public:
00069
00074 static bool canDisplay( KFileItemList _items );
00075
00087 KPropertiesDialog( KFileItem * item,
00088 QWidget* parent = 0L, const char* name = 0L,
00089 bool modal = false, bool autoShow = true);
00102 KPropertiesDialog( KFileItemList _items,
00103 QWidget *parent = 0L, const char* name = 0L,
00104 bool modal = false, bool autoShow = true);
00105
00106 #ifndef KDE_NO_COMPAT
00107
00119 KPropertiesDialog( const KURL& _url, mode_t _mode,
00120 QWidget* parent = 0L, const char* name = 0L,
00121 bool modal = false, bool autoShow = true);
00122 #endif
00123
00140 KPropertiesDialog( const KURL& _url,
00141 QWidget* parent = 0L, const char* name = 0L,
00142 bool modal = false, bool autoShow = true);
00143
00158 KPropertiesDialog( const KURL& _tempUrl, const KURL& _currentDir,
00159 const QString& _defaultName,
00160 QWidget* parent = 0L, const char* name = 0L,
00161 bool modal = false, bool autoShow = true);
00162
00172 KPropertiesDialog (const QString& title,
00173 QWidget* parent = 0L, const char* name = 0L, bool modal = false);
00174
00180 virtual ~KPropertiesDialog();
00181
00182
00196 void insertPlugin (KPropsDlgPlugin *plugin);
00197
00202 const KURL& kurl() const { return m_singleUrl; }
00203
00210 KFileItem *item() { return m_items.first(); }
00211
00215 KFileItemList items() const { return m_items; }
00216
00221 KDialogBase* dialog() { return this; }
00222 const KDialogBase* dialog() const { return this; }
00223
00229 const KURL& currentDir() const { return m_currentDir; }
00230
00236 const QString& defaultName() const { return m_defaultName; }
00237
00244 void updateUrl( const KURL& _newUrl );
00245
00251 void rename( const QString& _name );
00252
00256 void abortApplying();
00257
00261 void showFileSharingPage();
00262
00263 public slots:
00267 virtual void slotOk();
00268 virtual void slotCancel();
00269
00270 signals:
00274 void propertiesClosed();
00275 void applied();
00276 void canceled();
00277
00278 private:
00279
00283 void init (bool modal = false, bool autoShow = true);
00284
00288 void insertPages();
00289
00293 KURL m_singleUrl;
00294
00298 KFileItemList m_items;
00299
00303 QString m_defaultName;
00304 KURL m_currentDir;
00305
00309 QPtrList<KPropsDlgPlugin> m_pageList;
00310
00311 private slots:
00312 void slotStatResult( KIO::Job * job );
00313 protected:
00314 virtual void virtual_hook( int id, void* data );
00315 private:
00316 class KPropertiesDialogPrivate;
00317 KPropertiesDialogPrivate *d;
00318 };
00319
00334 class KPropsDlgPlugin : public QObject
00335 {
00336 Q_OBJECT
00337 public:
00343 KPropsDlgPlugin( KPropertiesDialog *_props );
00344 virtual ~KPropsDlgPlugin();
00345
00351 virtual void applyChanges();
00352
00357 static bool isDesktopFile( KFileItem * _item );
00358
00359 void setDirty( bool b );
00360 bool isDirty() const;
00361
00362 public slots:
00363 void setDirty();
00364
00365 signals:
00371 void changed();
00372
00373 protected:
00377 KPropertiesDialog *properties;
00378
00379 int fontHeight;
00380 protected:
00381 virtual void virtual_hook( int id, void* data );
00382 private:
00383 class KPropsDlgPluginPrivate;
00384 KPropsDlgPluginPrivate *d;
00385 };
00386
00392 class KFilePropsPlugin : public KPropsDlgPlugin
00393 {
00394 Q_OBJECT
00395 public:
00399 KFilePropsPlugin( KPropertiesDialog *_props );
00400 virtual ~KFilePropsPlugin();
00401
00407 virtual void applyChanges();
00408
00412 static bool supports( KFileItemList _items );
00413
00417 void postApplyChanges();
00418
00419 protected slots:
00420 void slotCopyFinished( KIO::Job * );
00421 void slotFileRenamed( KIO::Job *, const KURL &, const KURL & );
00422 void slotDirSizeFinished( KIO::Job * );
00423 void slotFoundMountPoint( const QString& mp, unsigned long kBSize, unsigned long kBUsed, unsigned long kBAvail );
00424 void slotSizeStop();
00425 void slotSizeDetermine();
00426
00427 private slots:
00428
00429 void slotFoundMountPoint( const unsigned long& kBSize, const unsigned long& kBUsed, const unsigned long& kBAvail, const QString& mp );
00430 void nameFileChanged(const QString &text );
00431 private:
00432
00433 void determineRelativePath( const QString & path );
00434
00435 QWidget *iconArea;
00436 QWidget *nameArea;
00437
00438 QLabel *m_sizeLabel;
00439 QPushButton *m_sizeDetermineButton;
00440 QPushButton *m_sizeStopButton;
00441
00442 QString m_sRelativePath;
00443 bool m_bFromTemplate;
00444
00448 QString oldName;
00449
00450 class KFilePropsPluginPrivate;
00451 KFilePropsPluginPrivate *d;
00452 };
00453
00460 class KFilePermissionsPropsPlugin : public KPropsDlgPlugin
00461 {
00462 Q_OBJECT
00463 public:
00467 KFilePermissionsPropsPlugin( KPropertiesDialog *_props );
00468 virtual ~KFilePermissionsPropsPlugin();
00469
00470 virtual void applyChanges();
00471
00475 static bool supports( KFileItemList _items );
00476
00477 private slots:
00478
00479 void slotChmodResult( KIO::Job * );
00480 void slotRecursiveClicked();
00481
00482 private:
00483 QCheckBox *permBox[3][4];
00484
00485 QComboBox *grpCombo;
00486 KLineEdit *usrEdit, *grpEdit;
00487
00491 mode_t permissions;
00495 QString strGroup;
00499 QString strOwner;
00500
00504 static mode_t fperm[3][4];
00505
00506 class KFilePermissionsPropsPluginPrivate;
00507 KFilePermissionsPropsPluginPrivate *d;
00508 };
00509
00518 class KExecPropsPlugin : public KPropsDlgPlugin
00519 {
00520 Q_OBJECT
00521 public:
00525 KExecPropsPlugin( KPropertiesDialog *_props );
00526 virtual ~KExecPropsPlugin();
00527
00528 virtual void applyChanges();
00529
00530 static bool supports( KFileItemList _items );
00531
00532 public slots:
00533 void slotBrowseExec();
00534
00535 private slots:
00536 void enableCheckedEdit();
00537 void enableSuidEdit();
00538
00539 private:
00540
00541 QLabel *terminalLabel;
00542 QLabel *suidLabel;
00543 KLineEdit *execEdit;
00544 QCheckBox *terminalCheck;
00545 QCheckBox *suidCheck;
00546 KLineEdit *terminalEdit;
00547 KLineEdit *suidEdit;
00548 KLineEdit *swallowExecEdit;
00549 KLineEdit *swallowTitleEdit;
00550 QButton *execBrowse;
00551
00552 QString execStr;
00553 QString swallowExecStr;
00554 QString swallowTitleStr;
00555 QString termOptionsStr;
00556 bool termBool;
00557 bool suidBool;
00558 QString suidUserStr;
00559
00560 class KExecPropsPluginPrivate;
00561 KExecPropsPluginPrivate *d;
00562 };
00563
00572 class KURLPropsPlugin : public KPropsDlgPlugin
00573 {
00574 Q_OBJECT
00575 public:
00579 KURLPropsPlugin( KPropertiesDialog *_props );
00580 virtual ~KURLPropsPlugin();
00581
00582 virtual void applyChanges();
00583
00584 static bool supports( KFileItemList _items );
00585
00586 private:
00587 KURLRequester *URLEdit;
00588 KIconButton *iconBox;
00589
00590 QString URLStr;
00591 QString iconStr;
00592
00593 QPixmap pixmap;
00594 QString pixmapFile;
00595 private:
00596 class KURLPropsPluginPrivate;
00597 KURLPropsPluginPrivate *d;
00598 };
00599
00608 class KApplicationPropsPlugin : public KPropsDlgPlugin
00609 {
00610 Q_OBJECT
00611 public:
00615 KApplicationPropsPlugin( KPropertiesDialog *_props );
00616 virtual ~KApplicationPropsPlugin();
00617
00618 virtual void applyChanges();
00619
00620 static bool supports( KFileItemList _items );
00621
00622 public slots:
00623 void slotDelExtension();
00624 void slotAddExtension();
00625
00626 private slots:
00627 void updateButton();
00628
00629 private:
00630 void addMimeType( const QString & name );
00631
00632 QLineEdit *commentEdit;
00633 QLineEdit *genNameEdit;
00634 QLineEdit *nameEdit;
00635 QListBox *extensionsList;
00636 QListBox *availableExtensionsList;
00637 QPushButton *addExtensionButton;
00638 QPushButton *delExtensionButton;
00639
00640 class KApplicationPropsPluginPrivate;
00641 KApplicationPropsPluginPrivate *d;
00642 };
00643
00650 class KBindingPropsPlugin : public KPropsDlgPlugin
00651 {
00652 Q_OBJECT
00653 public:
00657 KBindingPropsPlugin( KPropertiesDialog *_props );
00658 virtual ~KBindingPropsPlugin();
00659
00660 virtual void applyChanges();
00661 static bool supports( KFileItemList _items );
00662
00663 private:
00664
00665 QLineEdit *commentEdit;
00666 QLineEdit *patternEdit;
00667 QLineEdit *mimeEdit;
00668 QString m_sMimeStr;
00669
00670 QCheckBox * cbAutoEmbed;
00671
00672 class KBindingPropsPluginPrivate;
00673 KBindingPropsPluginPrivate *d;
00674 };
00675
00680 class KDevicePropsPlugin : public KPropsDlgPlugin
00681 {
00682 Q_OBJECT
00683 public:
00684 KDevicePropsPlugin( KPropertiesDialog *_props );
00685 virtual ~KDevicePropsPlugin();
00686
00687 virtual void applyChanges();
00688
00689 static bool supports( KFileItemList _items );
00690
00691 private slots:
00692 void slotActivated( int );
00693
00694 private:
00695 QComboBox* device;
00696 QLabel* mountpoint;
00697 QCheckBox* readonly;
00698 void* unused;
00699
00700 KIconButton* unmounted;
00701
00702 QStringList m_devicelist;
00703 int indexDevice;
00704 int indexMountPoint;
00705 int indexFSType;
00706
00707 QPixmap pixmap;
00708 QString pixmapFile;
00709
00710 class KDevicePropsPluginPrivate;
00711 KDevicePropsPluginPrivate *d;
00712 };
00713
00714 #endif
00715
This file is part of the documentation for kdelibs Version 3.1.4.