1 2 3 #ifndef OUTPUTDIRECTORY_H 4 #define OUTPUTDIRECTORY_H 5 6 #include <QWidget> 7 #include <KUrl> 8 9 class FileListItem; 10 11 class Config; 12 class KComboBox; 13 class KLineEdit; 14 class KPushButton; 15 16 /** 17 * @short The input area for the output directory 18 * @author Daniel Faust <hessijames@gmail.com> 19 * @version 0.3 20 */ 21 class OutputDirectory : public QWidget 22 { 23 Q_OBJECT 24 public: 25 enum Mode { 26 MetaData = 0, 27 Source = 1, 28 Specify = 2, 29 CopyStructure = 3 30 }; 31 32 /** Constructor */ 33 OutputDirectory( Config *_config, QWidget *parent ); 34 35 /** Destructor */ 36 ~OutputDirectory(); 37 38 Mode mode(); 39 void setMode( Mode mode ); 40 QString directory(); 41 void setDirectory( const QString& directory ); 42 QString filesystem(); 43 44 static KUrl calcPath( FileListItem *fileListItem, Config *config, const QStringList& usedOutputNames = QStringList() ); 45 static KUrl changeExtension( const KUrl& url, const QString& extension ); 46 static KUrl uniqueFileName( const KUrl& url, const QStringList& usedOutputNames ); 47 static KUrl makePath( const KUrl& url ); 48 static QString vfatPath( const QString& path ); 49 static QString ntfsPath( const QString& path ); 50 51 public slots: 52 //void setActive( bool ); 53 void enable(); 54 void disable(); 55 56 private slots: 57 void modeChangedSlot( int ); 58 void directoryChangedSlot( const QString& ); 59 void selectDir(); 60 void gotoDir(); 61 62 private: 63 void updateMode( Mode ); 64 65 static QString filesystemForDirectory( const QString& dir = "" ); 66 67 KComboBox *cMode; 68 KComboBox *cDir; 69 KPushButton *pDirSelect; 70 KPushButton *pDirGoto; 71 72 Config *config; 73 74 signals: 75 void modeChanged( int ); 76 void directoryChanged( const QString& ); 77 }; 78 79 #endif // OUTPUTDIRECTORY_H 80