nextcloud-desktop/src/gui/settingsdialog.h
Michael Schuster 00db94a73c
Revert "Fix White Window issue on Windows after Qt 5.12.4 upgrade"
This reverts commit 8f616969ab.

Turns out that with the upgrade to the new released Qt 5.12.5 the issue
has been solved by the Qt developers, so this fix becomes obsolete.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2019-09-27 04:58:12 +02:00

101 lines
2.6 KiB
C++

/*
* Copyright (C) by Daniel Molkentin <danimo@owncloud.com>
*
* 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 SETTINGSDIALOG_H
#define SETTINGSDIALOG_H
#include <QDialog>
#include <QStyledItemDelegate>
#include "progressdispatcher.h"
#include "owncloudgui.h"
class QAction;
class QActionGroup;
class QToolBar;
class QStandardItemModel;
namespace OCC {
class AccountState;
namespace Ui {
class SettingsDialog;
}
class AccountSettings;
class Application;
class FolderMan;
class ownCloudGui;
class ActivitySettings;
/**
* @brief The SettingsDialog class
* @ingroup gui
*/
class SettingsDialog : public QDialog
{
Q_OBJECT
public:
explicit SettingsDialog(ownCloudGui *gui, QWidget *parent = nullptr);
~SettingsDialog();
void addAccount(const QString &title, QWidget *widget);
public slots:
void showFirstPage();
void showActivityPage();
void showIssuesList(AccountState *account);
void slotSwitchPage(QAction *action);
void slotRefreshActivity(AccountState *accountState);
void slotRefreshActivityAccountStateSender();
void slotAccountAvatarChanged();
void slotAccountDisplayNameChanged();
protected:
void reject() override;
void accept() override;
void changeEvent(QEvent *) override;
private slots:
void accountAdded(AccountState *);
void accountRemoved(AccountState *);
private:
void customizeStyle();
void activityAdded(AccountState *);
QIcon createColorAwareIcon(const QString &name);
QAction *createColorAwareAction(const QString &iconName, const QString &fileName);
QAction *createActionWithIcon(const QIcon &icon, const QString &text, const QString &iconPath = QString());
Ui::SettingsDialog *const _ui;
QActionGroup *_actionGroup;
QAction *_actionBefore;
// Maps the actions from the action group to the corresponding widgets
QHash<QAction *, QWidget *> _actionGroupWidgets;
// Maps the action in the dialog to their according account. Needed in
// case the account avatar changes
QHash<Account *, QAction *> _actionForAccount;
QToolBar *_toolBar;
QMap<AccountState *, ActivitySettings *> _activitySettings;
ownCloudGui *_gui;
};
}
#endif // SETTINGSDIALOG_H