diff options
author | Daniel Molkentin <danimo@owncloud.com> | 2014-07-11 02:31:24 +0400 |
---|---|---|
committer | Daniel Molkentin <danimo@owncloud.com> | 2014-07-11 13:07:31 +0400 |
commit | df3c3bca025a7cdb5f20e55fc2ecc37618e7cc8d (patch) | |
tree | 22fa58b5a09ec9f93ad376dce2edd6272483fc1a /src/gui/folderwizard.h | |
parent | d1b991e1984ef0c4ed803c5c5ead1ce3bfe00266 (diff) |
Split into three separate projects: library, gui and cmd
Diffstat (limited to 'src/gui/folderwizard.h')
-rw-r--r-- | src/gui/folderwizard.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/src/gui/folderwizard.h b/src/gui/folderwizard.h new file mode 100644 index 000000000..8db9b1319 --- /dev/null +++ b/src/gui/folderwizard.h @@ -0,0 +1,118 @@ +/* + * Copyright (C) by Duncan Mac-Vicar P. <duncan@kde.org> + * + * 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. + * + * This program is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY + * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License + * for more details. + */ + +#ifndef MIRALL_FOLDERWIZARD_H +#define MIRALL_FOLDERWIZARD_H + +#include <QWizard> +#include <QNetworkReply> +#include <QTimer> + +#include "folder.h" + +#include "ui_folderwizardsourcepage.h" +#include "ui_folderwizardtargetpage.h" + +namespace Mirall { + +class ownCloudInfo; + +class FormatWarningsWizardPage : public QWizardPage { +protected: + QString formatWarnings(const QStringList &warnings) const; +}; + +/** + * page to ask for the local source folder + */ +class FolderWizardLocalPath : public FormatWarningsWizardPage +{ + Q_OBJECT +public: + FolderWizardLocalPath(); + ~FolderWizardLocalPath(); + + virtual bool isComplete() const Q_DECL_OVERRIDE; + void initializePage() Q_DECL_OVERRIDE; + void cleanupPage() Q_DECL_OVERRIDE; + + void setFolderMap( const Folder::Map &fm ) { _folderMap = fm; } +protected slots: + void slotChooseLocalFolder(); + +private: + Ui_FolderWizardSourcePage _ui; + Folder::Map _folderMap; +}; + + +/** + * page to ask for the target folder + */ + +class FolderWizardRemotePath : public FormatWarningsWizardPage +{ + Q_OBJECT +public: + FolderWizardRemotePath(); + ~FolderWizardRemotePath(); + + virtual bool isComplete() const Q_DECL_OVERRIDE; + + virtual void initializePage() Q_DECL_OVERRIDE; + virtual void cleanupPage() Q_DECL_OVERRIDE; + +protected slots: + + void showWarn( const QString& = QString() ) const; + void slotAddRemoteFolder(); + void slotCreateRemoteFolder(const QString&); + void slotCreateRemoteFolderFinished(QNetworkReply::NetworkError error); + void slotHandleNetworkError(QNetworkReply*); + void slotUpdateDirectories(const QStringList&); + void slotRefreshFolders(); + void slotItemExpanded(QTreeWidgetItem*); +private: + void recursiveInsert(QTreeWidgetItem *parent, QStringList pathTrail, QString path); + Ui_FolderWizardTargetPage _ui; + bool _warnWasVisible; + +}; + +/** + * + */ +class FolderWizard : public QWizard +{ + Q_OBJECT +public: + + enum { + Page_Source, + Page_Target + }; + + FolderWizard(QWidget *parent = 0); + ~FolderWizard(); + +private: + + FolderWizardLocalPath *_folderWizardSourcePage; + FolderWizardRemotePath *_folderWizardTargetPage; +}; + + +} // ns Mirall + +#endif |