/* This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. */ #ifndef FILESYSTEMWIDGET_H #define FILESYSTEMWIDGET_H #include class QDirModel; class QTreeView; class FilesystemDirProxy; class FileView; class QModelIndex; class FilesystemFileProxy; class QLineEdit; class QFileInfo; class QAction; class QVariant; class MessageDialog; class ArchiveEditDialog; class FilesystemWidget : public QWidget { Q_OBJECT public: FilesystemWidget(QWidget *parent = 0); ~FilesystemWidget() {}; FileView *fileView() { return mFileView; }; const QString windowTitle() const { return mWindowTitle; }; void setArchiveDialog(ArchiveEditDialog *dlg); // { mAEDialog = dlg; }; signals: void windowTitle(const QString &); void statusbarMessage(const QString &); void newTemplate(const QString &); public slots: void directoryChanged(const QModelIndex &selected, const QModelIndex &); void directoryEdited(); void fileViewActivated(const QModelIndex &index); void parentDir(); void deleteFiles(); void copyFiles(); void moveFiles(); void renameFile(); void renameCover(const QString &infix); void setTemplate(); void extract(const QString &destDir); void archiveFiles(); private slots: void doRenameFile(); private: void setWindowTitle(const QString &dir); void deleteRecursive(const QFileInfo &start); void copyRecursive(const QFileInfo &start, const QString &destdir); void expandParents(const QModelIndex &idx); QAction *action(QWidget *widget, const QVariant &data) const; QDirModel *mModel; QTreeView *mDirView; FileView *mFileView; FilesystemDirProxy *mDirProxy; FilesystemFileProxy *mFileProxy; QLineEdit *mDirEdit; QString mWindowTitle; MessageDialog *mRenameDialog; QString mTemplate; ArchiveEditDialog *mAEDialog; qint64 mSize; }; #endif