95 lines
2.2 KiB
C++
95 lines
2.2 KiB
C++
#ifndef SETTINGSDIALOG_H
|
|
#define SETTINGSDIALOG_H
|
|
|
|
// is not required here when building with GCC 4.9.1 or Clan 3.5 - MinGW 4.9.1 fails without including UI headers here
|
|
#include "ui_targetpage.h"
|
|
#include "ui_proxypage.h"
|
|
#include "ui_useragentpage.h"
|
|
|
|
#include <qtutilities/settingsdialog/settingsdialog.h>
|
|
#include <qtutilities/settingsdialog/optionpage.h>
|
|
|
|
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)
|
|
|
|
namespace Dialogs {
|
|
class QtSettings;
|
|
}
|
|
|
|
namespace Network {
|
|
class Download;
|
|
}
|
|
|
|
namespace QtGui {
|
|
|
|
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(TargetPage)
|
|
DECLARE_SETUP_WIDGETS
|
|
public:
|
|
static QString &targetDirectory();
|
|
static bool &overwriteWithoutAsking();
|
|
static bool &determineTargetFileWithoutAsking();
|
|
private:
|
|
void selectTargetDirectory();
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
BEGIN_DECLARE_OPTION_PAGE(UiPage)
|
|
DECLARE_SETUP_WIDGETS
|
|
public:
|
|
static QByteArray &mainWindowGeometry();
|
|
static QByteArray &mainWindowState();
|
|
static bool &multiSelection();
|
|
private:
|
|
QCheckBox *m_multiSelectionCheckBox;
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(ProxyPage)
|
|
DECLARE_SETUP_WIDGETS
|
|
public:
|
|
static QNetworkProxy &proxy();
|
|
private:
|
|
void updateProxy();
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(UserAgentPage)
|
|
public:
|
|
static bool &useCustomUserAgent();
|
|
static QString &customUserAgent();
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
BEGIN_DECLARE_OPTION_PAGE(MiscPage)
|
|
DECLARE_SETUP_WIDGETS
|
|
public:
|
|
static bool &redirectWithoutAsking();
|
|
private:
|
|
QCheckBox *m_redirectCheckBox;
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
BEGIN_DECLARE_OPTION_PAGE(StatsPage)
|
|
DECLARE_SETUP_WIDGETS
|
|
public:
|
|
static quint64 &bytesReceived();
|
|
private:
|
|
QLabel *m_receivedLabel;
|
|
END_DECLARE_OPTION_PAGE
|
|
|
|
class SettingsDialog : public Dialogs::SettingsDialog
|
|
{
|
|
Q_OBJECT
|
|
public:
|
|
explicit SettingsDialog(QWidget *parent = nullptr);
|
|
~SettingsDialog();
|
|
|
|
};
|
|
|
|
Dialogs::QtSettings &qtSettings();
|
|
void restoreSettings();
|
|
void saveSettings();
|
|
void applySettingsToDownload(Network::Download *download);
|
|
|
|
}
|
|
|
|
#endif // SETTINGSDIALOG_H
|