diff options
author | Ken Moore <moorekou@gmail.com> | 2016-04-25 13:08:12 -0400 |
---|---|---|
committer | Ken Moore <moorekou@gmail.com> | 2016-04-25 13:08:12 -0400 |
commit | ed5ecf7ea7a482b4649e66ecb35fbc60af680684 (patch) | |
tree | acc0fa17d228259e847f55c678db9fb0a9b50f0c /src-qt5/desktop-utils/lumina-fm/FODialog.h | |
parent | Merge branch 'master' of github.com:pcbsd/lumina (diff) | |
download | lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.tar.gz lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.tar.bz2 lumina-ed5ecf7ea7a482b4649e66ecb35fbc60af680684.zip |
Rearrange the Lumina source tree quite a bit:
Now the utilites are arranged by category (core, core-utils, desktop-utils), so all the -utils may be excluded by a package system (or turned into separate packages) as needed.
Diffstat (limited to 'src-qt5/desktop-utils/lumina-fm/FODialog.h')
-rw-r--r-- | src-qt5/desktop-utils/lumina-fm/FODialog.h | 87 |
1 files changed, 87 insertions, 0 deletions
diff --git a/src-qt5/desktop-utils/lumina-fm/FODialog.h b/src-qt5/desktop-utils/lumina-fm/FODialog.h new file mode 100644 index 00000000..ef3ff57d --- /dev/null +++ b/src-qt5/desktop-utils/lumina-fm/FODialog.h @@ -0,0 +1,87 @@ +//=========================================== +// Lumina-DE source code +// Copyright (c) 2014, Ken Moore +// Available under the 3-clause BSD license +// See the LICENSE file for full details +//=========================================== +// This is the dialog for showing currently running file operations +//=========================================== +#ifndef _LUMINA_FILE_MANAGER_FILE_OP_DIALOG_H +#define _LUMINA_FILE_MANAGER_FILE_OP_DIALOG_H + +// Qt includes +#include <QDialog> +#include <QMessageBox> +#include <QStringList> +#include <QTimer> +#include <QFileInfo> +#include <QDir> +#include <QFile> +#include <QThread> + +// libLumina includes +#include <LuminaXDG.h> +#include <LuminaUtils.h> + +namespace Ui{ + class FODialog; +}; + +class FOWorker : public QObject{ + Q_OBJECT +public: + //variables that need to be set before starting the operations + QStringList ofiles, nfiles; //original/new files + bool isRM, isCP, isRESTORE, isMV; + bool stopped; + int overwrite; // [-1= auto, 0= no overwrite, 1= overwrite] + + + FOWorker() : QObject(){ + isRM = isCP = isRESTORE = isMV = stopped = false; + overwrite = -1; //auto + } + ~FOWorker(){} + +public slots: + void slotStartOperations(); + +private: + QStringList subfiles(QString dirpath, bool dirsfirst = false); //recursive function for fetching all "child" files/dirs (dirs last by default) + QString newFileName(QString path); + QStringList removeItem(QString path, bool recursive = false); + QStringList copyItem(QString oldpath, QString newpath); + +signals: + void startingItem(int, int, QString, QString); //current number, total number, Old File, New File (if appropriate) + void finished(QStringList); //errors returned +}; + +class FODialog : public QDialog{ + Q_OBJECT +public: + FODialog(QWidget *parent = 0); + ~FODialog(); + + bool noerrors; + + void setOverwrite(bool); + bool RemoveFiles(QStringList paths); + bool CopyFiles(QStringList oldPaths, QStringList newPaths); //same permissions as old files + bool RestoreFiles(QStringList oldPaths, QStringList newPaths); //user/group rw permissions + bool MoveFiles(QStringList oldPaths, QStringList newPaths); //no change in permissions + +private: + Ui::FODialog *ui; + QThread *WorkThread; + FOWorker *Worker; + + bool CheckOverwrite(); //Returns "true" if it is ok to start the procedure + +private slots: + void on_push_stop_clicked(); + void UpdateItem(int, int, QString, QString); + void WorkDone(QStringList); +}; + +#endif |