mirror of
https://github.com/nextcloud/desktop.git
synced 2024-10-24 21:35:47 +03:00
Integrate progress dialog into settings dialog.
This commit is contained in:
parent
1ed8afba09
commit
53ac5427a8
11 changed files with 66 additions and 72 deletions
|
@ -187,7 +187,7 @@ mirall/generalsettings.ui
|
|||
mirall/networksettings.ui
|
||||
mirall/accountsettings.ui
|
||||
mirall/ignorelisteditor.ui
|
||||
mirall/itemprogressdialog.ui
|
||||
mirall/protocolwidget.ui
|
||||
wizard/owncloudsetupnocredspage.ui
|
||||
wizard/owncloudhttpcredspage.ui
|
||||
wizard/owncloudwizardresultpage.ui
|
||||
|
@ -201,6 +201,7 @@ set(mirall_SRCS
|
|||
mirall/systray.cpp
|
||||
mirall/folderwizard.cpp
|
||||
mirall/folderstatusmodel.cpp
|
||||
mirall/protocolwidget.cpp
|
||||
wizard/owncloudwizard.cpp
|
||||
wizard/owncloudsetuppage.cpp
|
||||
wizard/owncloudhttpcredspage.cpp
|
||||
|
@ -218,7 +219,6 @@ set(mirall_SRCS
|
|||
mirall/networksettings.cpp
|
||||
mirall/accountsettings.cpp
|
||||
mirall/ignorelisteditor.cpp
|
||||
mirall/itemprogressdialog.cpp
|
||||
mirall/owncloudgui.cpp
|
||||
mirall/socketapi.cpp
|
||||
)
|
||||
|
@ -244,7 +244,7 @@ set(mirall_HEADERS
|
|||
mirall/networksettings.h
|
||||
mirall/accountsettings.h
|
||||
mirall/ignorelisteditor.h
|
||||
mirall/itemprogressdialog.h
|
||||
mirall/protocolwidget.h
|
||||
mirall/owncloudgui.h
|
||||
mirall/socketapi.h
|
||||
)
|
||||
|
|
|
@ -25,7 +25,6 @@
|
|||
#include "mirall/owncloudsetupwizard.h"
|
||||
#include "mirall/mirallconfigfile.h"
|
||||
#include "mirall/ignorelisteditor.h"
|
||||
#include "mirall/itemprogressdialog.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
|
@ -749,7 +748,7 @@ void AccountSettings::slotIgnoreFilesEditor()
|
|||
|
||||
void AccountSettings::slotInfoAboutCurrentFolder()
|
||||
{
|
||||
emit(openProgressDialog());
|
||||
emit(openProtocol());
|
||||
}
|
||||
|
||||
AccountSettings::~AccountSettings()
|
||||
|
|
|
@ -23,7 +23,6 @@
|
|||
|
||||
#include "mirall/folder.h"
|
||||
#include "mirall/progressdispatcher.h"
|
||||
#include "mirall/itemprogressdialog.h"
|
||||
|
||||
class QStandardItemModel;
|
||||
class QModelIndex;
|
||||
|
@ -38,7 +37,6 @@ class AccountSettings;
|
|||
}
|
||||
|
||||
class FolderMan;
|
||||
class ItemProgressDialog;
|
||||
class IgnoreListEditor;
|
||||
|
||||
class AccountSettings : public QWidget
|
||||
|
@ -54,7 +52,7 @@ public:
|
|||
|
||||
signals:
|
||||
void folderChanged();
|
||||
void openProgressDialog();
|
||||
void openProtocol();
|
||||
void openFolderAlias( const QString& );
|
||||
void infoFolderAlias( const QString& );
|
||||
|
||||
|
@ -94,7 +92,6 @@ private:
|
|||
void showConnectionLabel( const QString& message, const QString& tooltip = QString() );
|
||||
|
||||
Ui::AccountSettings *ui;
|
||||
QPointer<ItemProgressDialog> _fileItemDialog;
|
||||
QPointer<IgnoreListEditor> _ignoreEditor;
|
||||
QStandardItemModel *_model;
|
||||
QUrl _OCUrl;
|
||||
|
|
|
@ -43,7 +43,6 @@ class FolderWatcher;
|
|||
class ownCloudInfo;
|
||||
class SslErrorDialog;
|
||||
class SettingsDialog;
|
||||
class ItemProgressDialog;
|
||||
class SocketApi;
|
||||
|
||||
class Application : public SharedTools::QtSingleApplication
|
||||
|
|
|
@ -19,7 +19,6 @@
|
|||
#include "mirall/mirallconfigfile.h"
|
||||
#include "mirall/utility.h"
|
||||
#include "mirall/progressdispatcher.h"
|
||||
#include "mirall/itemprogressdialog.h"
|
||||
#include "mirall/owncloudsetupwizard.h"
|
||||
#include "mirall/settingsdialog.h"
|
||||
#include "mirall/logger.h"
|
||||
|
@ -35,7 +34,6 @@ ownCloudGui::ownCloudGui(Application *parent) :
|
|||
QObject(parent),
|
||||
_tray(0),
|
||||
_settingsDialog(0),
|
||||
_progressDialog(0),
|
||||
_logBrowser(0),
|
||||
_contextMenu(0),
|
||||
_recentActionsMenu(0),
|
||||
|
@ -118,9 +116,10 @@ void ownCloudGui::slotSyncStateChange( const QString& alias )
|
|||
|
||||
qDebug() << "Sync state changed for folder " << alias << ": " << result.statusString();
|
||||
|
||||
if( _progressDialog ) {
|
||||
_progressDialog->setSyncResult(result);
|
||||
}
|
||||
// Promote sync result to settings-dialog for sync protocol?
|
||||
// if( _progressDialog ) {
|
||||
// _progressDialog->setSyncResult(result);
|
||||
// }
|
||||
if (result.status() == SyncResult::Success || result.status() == SyncResult::Error) {
|
||||
Logger::instance()->enterNextLogFile();
|
||||
}
|
||||
|
@ -315,7 +314,7 @@ void ownCloudGui::setupActions()
|
|||
_actionRecent = new QAction(tr("Details..."), this);
|
||||
_actionRecent->setEnabled( true );
|
||||
|
||||
QObject::connect(_actionRecent, SIGNAL(triggered(bool)), SLOT(slotItemProgressDialog()));
|
||||
QObject::connect(_actionRecent, SIGNAL(triggered(bool)), SLOT(slotShowSyncProtocol()));
|
||||
QObject::connect(_actionSettings, SIGNAL(triggered(bool)), SLOT(slotSettings()));
|
||||
_actionHelp = new QAction(tr("Help"), this);
|
||||
QObject::connect(_actionHelp, SIGNAL(triggered(bool)), SLOT(slotHelp()));
|
||||
|
@ -441,22 +440,17 @@ void ownCloudGui::slotSettings()
|
|||
Utility::raiseDialog(_settingsDialog.data());
|
||||
}
|
||||
|
||||
void ownCloudGui::slotItemProgressDialog()
|
||||
// open sync protocol widget
|
||||
void ownCloudGui::slotShowSyncProtocol()
|
||||
{
|
||||
if (_progressDialog.isNull()) {
|
||||
_progressDialog = new ItemProgressDialog(_app);
|
||||
_progressDialog->setAttribute( Qt::WA_DeleteOnClose, true );
|
||||
_progressDialog->setupList();
|
||||
_progressDialog->show();
|
||||
}
|
||||
Utility::raiseDialog(_progressDialog.data());
|
||||
slotSettings(); // FIXME: Show the protocol tab.
|
||||
_settingsDialog->slotShowProtocol();
|
||||
}
|
||||
|
||||
void ownCloudGui::slotShutdown()
|
||||
{
|
||||
// those do delete on close
|
||||
if (!_settingsDialog.isNull()) _settingsDialog->close();
|
||||
if (!_progressDialog.isNull()) _progressDialog->close();
|
||||
if (!_logBrowser.isNull()) _logBrowser->deleteLater();
|
||||
}
|
||||
|
||||
|
|
|
@ -27,7 +27,6 @@
|
|||
namespace Mirall {
|
||||
|
||||
class SettingsDialog;
|
||||
class ItemProgressDialog;
|
||||
class Application;
|
||||
class LogBrowser;
|
||||
|
||||
|
@ -56,7 +55,7 @@ public slots:
|
|||
void slotUpdateProgress(const QString &folder, const Progress::Info& progress);
|
||||
void slotShowGuiMessage(const QString &title, const QString &message);
|
||||
void slotFoldersChanged();
|
||||
void slotItemProgressDialog();
|
||||
void slotShowSyncProtocol();
|
||||
void slotSettings();
|
||||
void slotShutdown();
|
||||
void slotSyncStateChange( const QString& alias );
|
||||
|
@ -74,7 +73,6 @@ private:
|
|||
|
||||
QPointer<Systray> _tray;
|
||||
QPointer<SettingsDialog> _settingsDialog;
|
||||
QPointer<ItemProgressDialog> _progressDialog;
|
||||
QPointer<LogBrowser>_logBrowser;
|
||||
// tray's menu
|
||||
QMenu *_contextMenu;
|
||||
|
|
|
@ -16,7 +16,7 @@
|
|||
#include <QtWidgets>
|
||||
#endif
|
||||
|
||||
#include "mirall/itemprogressdialog.h"
|
||||
#include "mirall/protocolwidget.h"
|
||||
#include "mirall/syncresult.h"
|
||||
#include "mirall/logger.h"
|
||||
#include "mirall/utility.h"
|
||||
|
@ -24,23 +24,23 @@
|
|||
#include "mirall/folderman.h"
|
||||
#include "mirall/syncfileitem.h"
|
||||
|
||||
#include "ui_itemprogressdialog.h"
|
||||
#include "ui_protocolwidget.h"
|
||||
|
||||
namespace Mirall {
|
||||
|
||||
ItemProgressDialog::ItemProgressDialog(Application*, QWidget *parent) :
|
||||
QDialog(parent),
|
||||
ProtocolWidget::ProtocolWidget(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ErrorIndicatorRole( Qt::UserRole +1 ),
|
||||
_ui(new Ui::ItemProgressDialog)
|
||||
_ui(new Ui::ProtocolWidget)
|
||||
{
|
||||
_ui->setupUi(this);
|
||||
connect(_ui->_dialogButtonBox->button(QDialogButtonBox::Close), SIGNAL(clicked()),
|
||||
this, SLOT(accept()));
|
||||
|
||||
_ui->_errorLabel->setVisible(false);
|
||||
|
||||
connect(ProgressDispatcher::instance(), SIGNAL(progressInfo(QString,Progress::Info)),
|
||||
this, SLOT(slotProgressInfo(QString,Progress::Info)));
|
||||
connect(ProgressDispatcher::instance(), SIGNAL(progressSyncProblem(const QString&,const Progress::SyncProblem&)),
|
||||
this, SLOT(slotProgressErrors(const QString&, const Progress::SyncProblem&)));
|
||||
this, SLOT(slotProgressProblem(const QString&, const Progress::SyncProblem&)));
|
||||
|
||||
connect(_ui->_treeWidget, SIGNAL(itemActivated(QTreeWidgetItem*,int)), SLOT(slotOpenFile(QTreeWidgetItem*,int)));
|
||||
|
||||
|
@ -61,11 +61,9 @@ ItemProgressDialog::ItemProgressDialog(Application*, QWidget *parent) :
|
|||
QPushButton *copyBtn = _ui->_dialogButtonBox->addButton(tr("Copy"), QDialogButtonBox::ActionRole);
|
||||
connect(copyBtn, SIGNAL(clicked()), SLOT(copyToClipboard()));
|
||||
|
||||
setWindowTitle(tr("Sync Protocol"));
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
void ItemProgressDialog::setSyncResultStatus(const SyncResult& result )
|
||||
void ProtocolWidget::setSyncResultStatus(const SyncResult& result )
|
||||
{
|
||||
if( result.errorStrings().count() ) {
|
||||
_ui->_errorLabel->setVisible(true);
|
||||
|
@ -94,7 +92,7 @@ void ItemProgressDialog::setSyncResultStatus(const SyncResult& result )
|
|||
|
||||
}
|
||||
|
||||
void ItemProgressDialog::setSyncResult( const SyncResult& result )
|
||||
void ProtocolWidget::setSyncResult( const SyncResult& result )
|
||||
{
|
||||
setSyncResultStatus(result);
|
||||
|
||||
|
@ -167,7 +165,7 @@ void ItemProgressDialog::setSyncResult( const SyncResult& result )
|
|||
}
|
||||
}
|
||||
|
||||
void ItemProgressDialog::setupList()
|
||||
void ProtocolWidget::setupList()
|
||||
{
|
||||
// get the folders to set up the top level list.
|
||||
Folder::Map map = FolderMan::instance()->map();
|
||||
|
@ -199,17 +197,17 @@ void ItemProgressDialog::setupList()
|
|||
|
||||
QList<Progress::SyncProblem> problemList = ProgressDispatcher::instance()->recentProblems(0);
|
||||
foreach( Progress::SyncProblem prob, problemList ) {
|
||||
slotProgressErrors(prob.folder, prob);
|
||||
slotProgressProblem(prob.folder, prob);
|
||||
folderHash[prob.folder] = 1;
|
||||
}
|
||||
}
|
||||
|
||||
ItemProgressDialog::~ItemProgressDialog()
|
||||
ProtocolWidget::~ProtocolWidget()
|
||||
{
|
||||
delete _ui;
|
||||
}
|
||||
|
||||
void ItemProgressDialog::copyToClipboard()
|
||||
void ProtocolWidget::copyToClipboard()
|
||||
{
|
||||
QString text;
|
||||
QTextStream ts(&text);
|
||||
|
@ -238,12 +236,7 @@ void ItemProgressDialog::copyToClipboard()
|
|||
emit guiLog(tr("Copied to clipboard"), tr("The sync protocol has been copied to the clipboard."));
|
||||
}
|
||||
|
||||
void ItemProgressDialog::accept()
|
||||
{
|
||||
QDialog::accept();
|
||||
}
|
||||
|
||||
void ItemProgressDialog::cleanErrors( const QString& folder ) // FIXME: Use the folder to detect which errors can be deleted.
|
||||
void ProtocolWidget::cleanErrors( const QString& folder ) // FIXME: Use the folder to detect which errors can be deleted.
|
||||
{
|
||||
_problemCounter = 0;
|
||||
QList<QTreeWidgetItem*> wipeList;
|
||||
|
@ -261,7 +254,7 @@ void ItemProgressDialog::cleanErrors( const QString& folder ) // FIXME: Use the
|
|||
qDeleteAll(wipeList.begin(), wipeList.end());
|
||||
}
|
||||
|
||||
QString ItemProgressDialog::timeString(QDateTime dt, QLocale::FormatType format) const
|
||||
QString ProtocolWidget::timeString(QDateTime dt, QLocale::FormatType format) const
|
||||
{
|
||||
QLocale loc = QLocale::system();
|
||||
QString timeStr;
|
||||
|
@ -279,7 +272,7 @@ QString ItemProgressDialog::timeString(QDateTime dt, QLocale::FormatType format)
|
|||
return timeStr;
|
||||
}
|
||||
|
||||
void ItemProgressDialog::slotProgressErrors( const QString& folder, const Progress::SyncProblem& problem )
|
||||
void ProtocolWidget::slotProgressProblem( const QString& folder, const Progress::SyncProblem& problem )
|
||||
{
|
||||
QStringList columns;
|
||||
QString timeStr = timeString(problem.timestamp);
|
||||
|
@ -306,7 +299,7 @@ void ItemProgressDialog::slotProgressErrors( const QString& folder, const Progre
|
|||
Q_UNUSED(item);
|
||||
}
|
||||
|
||||
void ItemProgressDialog::slotOpenFile( QTreeWidgetItem *item, int )
|
||||
void ProtocolWidget::slotOpenFile( QTreeWidgetItem *item, int )
|
||||
{
|
||||
QString folderName = item->text(2);
|
||||
QString fileName = item->text(1);
|
||||
|
@ -320,7 +313,7 @@ void ItemProgressDialog::slotOpenFile( QTreeWidgetItem *item, int )
|
|||
}
|
||||
}
|
||||
|
||||
void ItemProgressDialog::slotProgressInfo( const QString& folder, const Progress::Info& progress )
|
||||
void ProtocolWidget::slotProgressInfo( const QString& folder, const Progress::Info& progress )
|
||||
{
|
||||
if( progress.kind == Progress::StartSync ) {
|
||||
cleanErrors( folder );
|
|
@ -11,8 +11,8 @@
|
|||
* for more details.
|
||||
*/
|
||||
|
||||
#ifndef FILEITEMDIALOG_H
|
||||
#define FILEITEMDIALOG_H
|
||||
#ifndef PROTOCOLWIDGET_H
|
||||
#define PROTOCOLWIDGET_H
|
||||
|
||||
#include <QDialog>
|
||||
#include <QDateTime>
|
||||
|
@ -20,24 +20,22 @@
|
|||
|
||||
#include "mirall/progressdispatcher.h"
|
||||
|
||||
#include "ui_itemprogressdialog.h"
|
||||
|
||||
class QSignalMapper;
|
||||
#include "ui_protocolwidget.h"
|
||||
|
||||
namespace Mirall {
|
||||
class SyncResult;
|
||||
|
||||
namespace Ui {
|
||||
class ItemProgressDialog;
|
||||
class ProtocolWidget;
|
||||
}
|
||||
class Application;
|
||||
|
||||
class ItemProgressDialog : public QDialog
|
||||
class ProtocolWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit ItemProgressDialog(Application *app, QWidget *parent = 0);
|
||||
~ItemProgressDialog();
|
||||
explicit ProtocolWidget(QWidget *parent = 0);
|
||||
~ProtocolWidget();
|
||||
|
||||
void setupList();
|
||||
void setSyncResult( const SyncResult& result );
|
||||
|
@ -45,9 +43,8 @@ public:
|
|||
signals:
|
||||
|
||||
public slots:
|
||||
void accept();
|
||||
void slotProgressInfo( const QString& folder, const Progress::Info& progress );
|
||||
void slotProgressErrors( const QString& folder, const Progress::SyncProblem& problem );
|
||||
void slotProgressProblem( const QString& folder, const Progress::SyncProblem& problem );
|
||||
void slotOpenFile( QTreeWidgetItem* item, int );
|
||||
|
||||
protected slots:
|
||||
|
@ -62,9 +59,9 @@ private:
|
|||
QString timeString(QDateTime dt, QLocale::FormatType format = QLocale::NarrowFormat) const;
|
||||
|
||||
const int ErrorIndicatorRole;
|
||||
Ui::ItemProgressDialog *_ui;
|
||||
Ui::ProtocolWidget *_ui;
|
||||
int _problemCounter;
|
||||
};
|
||||
|
||||
}
|
||||
#endif // FILEITEMDIALOG_H
|
||||
#endif // PROTOCOLWIDGET_H
|
|
@ -1,7 +1,7 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>Mirall::ItemProgressDialog</class>
|
||||
<widget class="QWidget" name="Mirall::ItemProgressDialog">
|
||||
<class>Mirall::ProtocolWidget</class>
|
||||
<widget class="QWidget" name="Mirall::ProtocolWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
|
@ -74,7 +74,7 @@
|
|||
<item>
|
||||
<widget class="QDialogButtonBox" name="_dialogButtonBox">
|
||||
<property name="standardButtons">
|
||||
<set>QDialogButtonBox::Close</set>
|
||||
<set>QDialogButtonBox::NoButton</set>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
|
@ -22,6 +22,7 @@
|
|||
#include "mirall/mirallconfigfile.h"
|
||||
#include "mirall/progressdispatcher.h"
|
||||
#include "mirall/owncloudgui.h"
|
||||
#include "mirall/protocolwidget.h"
|
||||
|
||||
#include <QLabel>
|
||||
#include <QStandardItemModel>
|
||||
|
@ -51,6 +52,13 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) :
|
|||
_accountSettings = new AccountSettings(this);
|
||||
addAccount(tr("Account"), _accountSettings);
|
||||
|
||||
QIcon protocolIcon(QLatin1String(":/mirall/resources/settings.png"));
|
||||
QListWidgetItem *protocol= new QListWidgetItem(protocolIcon, tr("Protocol"), _ui->labelWidget);
|
||||
protocol->setSizeHint(QSize(0, 32));
|
||||
_ui->labelWidget->addItem(protocol);
|
||||
ProtocolWidget *protocolWidget = new ProtocolWidget;
|
||||
_protocolIdx = _ui->stack->addWidget(protocolWidget);
|
||||
|
||||
QIcon generalIcon(QLatin1String(":/mirall/resources/settings.png"));
|
||||
QListWidgetItem *general = new QListWidgetItem(generalIcon, tr("General"), _ui->labelWidget);
|
||||
general->setSizeHint(QSize(0, 32));
|
||||
|
@ -73,7 +81,7 @@ SettingsDialog::SettingsDialog(ownCloudGui *gui, QWidget *parent) :
|
|||
connect( _accountSettings, SIGNAL(folderChanged()), gui, SLOT(slotFoldersChanged()));
|
||||
connect( _accountSettings, SIGNAL(openFolderAlias(const QString&)),
|
||||
gui, SLOT(slotFolderOpenAction(QString)));
|
||||
connect( _accountSettings, SIGNAL(openProgressDialog()), gui, SLOT(slotItemProgressDialog()));
|
||||
connect( _accountSettings, SIGNAL(openProtocol()), SLOT(slotShowProtocol()));
|
||||
|
||||
connect( ProgressDispatcher::instance(), SIGNAL(progressInfo(QString, Progress::Info)),
|
||||
_accountSettings, SLOT(slotSetProgress(QString, Progress::Info)) );
|
||||
|
@ -140,6 +148,12 @@ void SettingsDialog::slotSyncStateChange(const QString& alias)
|
|||
}
|
||||
}
|
||||
|
||||
void SettingsDialog::slotShowProtocol()
|
||||
{
|
||||
qDebug() << "Show protocol window!";
|
||||
_ui->labelWidget->setCurrentRow(_protocolIdx);
|
||||
}
|
||||
|
||||
void SettingsDialog::setGeneralErrors(const QStringList &errors)
|
||||
{
|
||||
if( _accountSettings ) {
|
||||
|
|
|
@ -45,6 +45,7 @@ public:
|
|||
|
||||
public slots:
|
||||
void slotSyncStateChange(const QString& alias);
|
||||
void slotShowProtocol();
|
||||
|
||||
protected:
|
||||
void reject();
|
||||
|
@ -54,6 +55,8 @@ private:
|
|||
Ui::SettingsDialog *_ui;
|
||||
AccountSettings *_accountSettings;
|
||||
QListWidgetItem *_accountItem;
|
||||
|
||||
int _protocolIdx;
|
||||
};
|
||||
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue