videodownloader/gui/settings.h

96 lines
2.1 KiB
C
Raw Normal View History

2015-04-22 19:32:04 +02:00
#ifndef SETTINGSDIALOG_H
#define SETTINGSDIALOG_H
#include <qtutilities/settingsdialog/optionpage.h>
2017-05-01 03:22:50 +02:00
#include <qtutilities/settingsdialog/settingsdialog.h>
2015-04-22 19:32:04 +02:00
2016-04-04 14:51:51 +02:00
QT_FORWARD_DECLARE_CLASS(QByteArray)
QT_FORWARD_DECLARE_CLASS(QLabel)
QT_FORWARD_DECLARE_CLASS(QLineEdit)
QT_FORWARD_DECLARE_CLASS(QCheckBox)
QT_FORWARD_DECLARE_CLASS(QNetworkProxy)
2015-04-22 19:32:04 +02:00
2019-06-10 22:50:15 +02:00
namespace QtUtilities {
2016-08-14 22:52:15 +02:00
class QtSettings;
}
2015-04-22 19:32:04 +02:00
namespace Network {
class Download;
}
namespace QtGui {
2016-04-04 14:51:51 +02:00
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(TargetPage)
2017-05-01 03:22:50 +02:00
DECLARE_SETUP_WIDGETS
2015-04-22 19:32:04 +02:00
public:
2017-05-01 03:22:50 +02:00
static QString &targetDirectory();
static bool &overwriteWithoutAsking();
static bool &determineTargetFileWithoutAsking();
2015-04-22 19:32:04 +02:00
private:
2017-05-01 03:22:50 +02:00
void selectTargetDirectory();
2016-04-04 14:51:51 +02:00
END_DECLARE_OPTION_PAGE
2015-04-22 19:32:04 +02:00
2016-04-04 14:51:51 +02:00
BEGIN_DECLARE_OPTION_PAGE(UiPage)
2017-05-01 03:22:50 +02:00
DECLARE_SETUP_WIDGETS
2015-04-22 19:32:04 +02:00
public:
2017-05-01 03:22:50 +02:00
static QByteArray &mainWindowGeometry();
static QByteArray &mainWindowState();
static bool &multiSelection();
2015-04-22 19:32:04 +02:00
private:
2017-05-01 03:22:50 +02:00
QCheckBox *m_multiSelectionCheckBox;
2016-04-04 14:51:51 +02:00
END_DECLARE_OPTION_PAGE
2015-04-22 19:32:04 +02:00
2016-04-04 14:51:51 +02:00
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(ProxyPage)
2017-05-01 03:22:50 +02:00
DECLARE_SETUP_WIDGETS
2015-04-22 19:32:04 +02:00
public:
2017-05-01 03:22:50 +02:00
static QNetworkProxy &proxy();
2015-04-22 19:32:04 +02:00
private:
2017-05-01 03:22:50 +02:00
void updateProxy();
2016-04-04 14:51:51 +02:00
END_DECLARE_OPTION_PAGE
2015-04-22 19:32:04 +02:00
2016-04-04 14:51:51 +02:00
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(UserAgentPage)
2015-04-22 19:32:04 +02:00
public:
2017-05-01 03:22:50 +02:00
static bool &useCustomUserAgent();
static QString &customUserAgent();
2016-04-04 14:51:51 +02:00
END_DECLARE_OPTION_PAGE
2015-04-22 19:32:04 +02:00
2016-04-04 14:51:51 +02:00
BEGIN_DECLARE_OPTION_PAGE(MiscPage)
2017-05-01 03:22:50 +02:00
DECLARE_SETUP_WIDGETS
2015-04-22 19:32:04 +02:00
public:
2017-05-01 03:22:50 +02:00
static bool &redirectWithoutAsking();
2015-04-22 19:32:04 +02:00
private:
2017-05-01 03:22:50 +02:00
QCheckBox *m_redirectCheckBox;
2016-04-04 14:51:51 +02:00
END_DECLARE_OPTION_PAGE
2015-04-22 19:32:04 +02:00
2016-04-04 14:51:51 +02:00
BEGIN_DECLARE_OPTION_PAGE(StatsPage)
2017-05-01 03:22:50 +02:00
DECLARE_SETUP_WIDGETS
2015-04-22 19:32:04 +02:00
public:
2017-05-01 03:22:50 +02:00
static quint64 &bytesReceived();
2015-04-22 19:32:04 +02:00
private:
2017-05-01 03:22:50 +02:00
QLabel *m_receivedLabel;
2016-04-04 14:51:51 +02:00
END_DECLARE_OPTION_PAGE
2015-04-22 19:32:04 +02:00
2019-06-10 22:50:15 +02:00
class SettingsDialog : public QtUtilities::SettingsDialog {
2015-04-22 19:32:04 +02:00
Q_OBJECT
public:
explicit SettingsDialog(QWidget *parent = nullptr);
~SettingsDialog();
};
2019-06-10 22:50:15 +02:00
QtUtilities::QtSettings &qtSettings();
2016-08-14 22:52:15 +02:00
void restoreSettings();
void saveSettings();
void applySettingsToDownload(Network::Download *download);
2019-07-20 20:20:58 +02:00
} // namespace QtGui
2015-04-22 19:32:04 +02:00
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, TargetPage)
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, ProxyPage)
DECLARE_EXTERN_UI_FILE_BASED_OPTION_PAGE_NS(QtGui, UserAgentPage)
2015-04-22 19:32:04 +02:00
#endif // SETTINGSDIALOG_H