diff --git a/gui/addmultipledownloadswizard.cpp b/gui/addmultipledownloadswizard.cpp
index 3d64b97..e2d0595 100644
--- a/gui/addmultipledownloadswizard.cpp
+++ b/gui/addmultipledownloadswizard.cpp
@@ -223,7 +223,7 @@ void AddMultipleDownloadsResultsPage::initializePage()
connect(m_finder, &DownloadFinder::finished, this, &AddMultipleDownloadsResultsPage::finderFinished);
connect(m_finder, &DownloadFinder::newResultsAvailable, this, &AddMultipleDownloadsResultsPage::finderHasResults);
m_finder->setContinueAutomatically(false);
- m_finder->setProxy(NetworkProxyOptionPage::proxy());
+ m_finder->setProxy(ProxyPage::proxy());
m_finder->start();
}
}
diff --git a/gui/downloadinteraction.cpp b/gui/downloadinteraction.cpp
index 9f63fed..e6086b4 100644
--- a/gui/downloadinteraction.cpp
+++ b/gui/downloadinteraction.cpp
@@ -49,11 +49,11 @@ void DownloadInteraction::downloadRequiresOutputDevice(Download *download, size_
{
QString fileName = download->suitableFilename();
// use default directory and the "suitable file name" to determine the target path
- if(GeneralTargetOptionPage::determineTargetFileWithoutAsking() // if correspondent option is set
+ if(TargetPage::determineTargetFileWithoutAsking() // if correspondent option is set
&& !forceFileDialog // and the caller don't wants to force the file dialog
- && (GeneralTargetOptionPage::targetDirectory().isEmpty() || QDir(GeneralTargetOptionPage::targetDirectory()).exists()) // and the default directory exists or is empty
+ && (TargetPage::targetDirectory().isEmpty() || QDir(TargetPage::targetDirectory()).exists()) // and the default directory exists or is empty
&& !fileName.isEmpty()) { // and the file name is not empty
- download->provideOutputDevice(optionIndex, new QFile(GeneralTargetOptionPage::targetDirectory() % QChar('/') % fileName), true);
+ download->provideOutputDevice(optionIndex, new QFile(TargetPage::targetDirectory() % QChar('/') % fileName), true);
} else { // aks the user for the target path otherwise
QFileDialog *dlg = new QFileDialog(m_parentWidget);
#ifndef Q_OS_WIN
@@ -62,7 +62,7 @@ void DownloadInteraction::downloadRequiresOutputDevice(Download *download, size_
#endif
dlg->setFileMode(QFileDialog::AnyFile);
dlg->setAcceptMode(QFileDialog::AcceptSave);
- dlg->setDirectory(GeneralTargetOptionPage::targetDirectory());
+ dlg->setDirectory(TargetPage::targetDirectory());
dlg->selectFile(fileName);
dlg->setOption(QFileDialog::DontConfirmOverwrite, true);
if(!download->title().isEmpty()) {
@@ -82,7 +82,7 @@ void DownloadInteraction::downloadRequiresOutputDevice(Download *download, size_
void DownloadInteraction::downloadRequriesOverwritePermission(Download *download, size_t optionIndex, const QString &file)
{
- if(GeneralTargetOptionPage::overwriteWithoutAsking()) {
+ if(TargetPage::overwriteWithoutAsking()) {
download->setOverwritePermission(optionIndex, PermissionStatus::Allowed);
} else {
QString message = tr("
The output file %1 already exists.
Do you want to overwrite the existing file?
").arg(file);
@@ -100,7 +100,7 @@ void DownloadInteraction::downloadRequriesOverwritePermission(Download *download
connect(dlg, &QMessageBox::finished, [download, optionIndex, dlg, overwriteButton, overwriteAlwaysButton, selectOtherButton, abortButton, this] (int) {
if(dlg->clickedButton() == overwriteAlwaysButton) {
// set dontAskBeforeOverwriting to true if the user clicked yes to all
- GeneralTargetOptionPage::overwriteWithoutAsking() = true;
+ TargetPage::overwriteWithoutAsking() = true;
}
if(dlg->clickedButton() == overwriteButton || dlg->clickedButton() == overwriteAlwaysButton) {
download->setOverwritePermission(optionIndex, PermissionStatus::Allowed);
@@ -117,7 +117,7 @@ void DownloadInteraction::downloadRequriesOverwritePermission(Download *download
void DownloadInteraction::downloadRequriesAppendingPermission(Download *download, size_t optionIndex, const QString &file, quint64 offset, quint64 fileSize)
{
- if(GeneralTargetOptionPage::overwriteWithoutAsking()) {
+ if(TargetPage::overwriteWithoutAsking()) {
download->setAppendPermission(optionIndex, PermissionStatus::Allowed);
} else {
QString message = tr("The output file %1 already exists. The downloader assumes it contains previously downloaded data.
Do you want to append the received data to the existing file?
").arg(file);
@@ -147,7 +147,7 @@ void DownloadInteraction::downloadRequriesAppendingPermission(Download *download
void DownloadInteraction::downloadRequiresRedirectionPermission(Download *download, size_t optionIndex)
{
- if(NetworkMiscOptionPage::redirectWithoutAsking()) {
+ if(MiscPage::redirectWithoutAsking()) {
download->setRedirectPermission(optionIndex, PermissionStatus::Allowed);
} else {
const QUrl &originalUrl = download->downloadUrl(download->options().at(optionIndex).redirectionOf());
@@ -164,7 +164,7 @@ void DownloadInteraction::downloadRequiresRedirectionPermission(Download *downlo
connect(dlg, &QMessageBox::finished, [download, optionIndex, dlg, this] (int result) {
switch(result) {
case QMessageBox::YesToAll:
- NetworkMiscOptionPage::redirectWithoutAsking() = true;
+ MiscPage::redirectWithoutAsking() = true;
download->setRedirectPermission(optionIndex, PermissionStatus::AlwaysAllowed);
break;
case QMessageBox::Yes:
diff --git a/gui/mainwindow.cpp b/gui/mainwindow.cpp
index e97906c..68bf71a 100644
--- a/gui/mainwindow.cpp
+++ b/gui/mainwindow.cpp
@@ -79,7 +79,7 @@ MainWindow::MainWindow(QWidget *parent) :
m_ui->setupUi(this);
// load settings
- restoreGeometry(GeneralUiOptionPage::mainWindowGeometry());
+ restoreGeometry(UiPage::mainWindowGeometry());
// setup tray icon and its context menu
setupTrayIcon();
@@ -453,7 +453,7 @@ void MainWindow::removeSelectedDownloads()
// methods for several gui features
void MainWindow::updateSelectionMode()
{
- m_ui->downloadsTreeView->setSelectionMode(GeneralUiOptionPage::multiSelection() ? QAbstractItemView::MultiSelection : QAbstractItemView::SingleSelection);
+ m_ui->downloadsTreeView->setSelectionMode(UiPage::multiSelection() ? QAbstractItemView::MultiSelection : QAbstractItemView::SingleSelection);
}
void MainWindow::updateStartStopControls()
@@ -750,11 +750,11 @@ void MainWindow::resetGroovesharkSession()
void MainWindow::exploreDownloadsDir()
{
- if(GeneralTargetOptionPage::targetDirectory().isEmpty()) {
+ if(TargetPage::targetDirectory().isEmpty()) {
QMessageBox::warning(this, windowTitle(), tr("There is no download target selected."));
} else {
- if(QDir(GeneralTargetOptionPage::targetDirectory()).exists()) {
- DesktopUtils::openLocalFileOrDir(GeneralTargetOptionPage::targetDirectory());
+ if(QDir(TargetPage::targetDirectory()).exists()) {
+ DesktopUtils::openLocalFileOrDir(TargetPage::targetDirectory());
} else {
QMessageBox::warning(this, windowTitle(), tr("The selected download directory doesn't exist anymore."));
}
@@ -779,8 +779,8 @@ void MainWindow::closeEvent(QCloseEvent *event)
}
}
}
- GeneralUiOptionPage::mainWindowGeometry() = saveGeometry();
- GeneralUiOptionPage::mainWindowState() = saveState();
+ UiPage::mainWindowGeometry() = saveGeometry();
+ UiPage::mainWindowState() = saveState();
}
void MainWindow::downloadChangedStatus(Download *download)
@@ -830,7 +830,7 @@ void MainWindow::updateOverallStatus(Download *download)
qint64 newBytesReceived = download->newBytesReceived();
qint64 newBytesToReceive = download->newBytesToReceive();
m_totalSpeed += download->shiftSpeed();
- NetworkStatsOptionPage::bytesReceived() += newBytesReceived;
+ StatsPage::bytesReceived() += newBytesReceived;
m_stillToReceive += newBytesToReceive - newBytesReceived;
m_remainingTime = m_totalSpeed > 0
? TimeSpan::fromSeconds(static_cast(m_stillToReceive) / (m_totalSpeed * 125.0))
diff --git a/gui/proxypage.ui b/gui/proxypage.ui
index cd309bd..d2246eb 100644
--- a/gui/proxypage.ui
+++ b/gui/proxypage.ui
@@ -7,11 +7,11 @@
0
0
245
- 195
+ 220
- Configure proxy server
+ Proxy
-
diff --git a/gui/settings.cpp b/gui/settings.cpp
index 0eeec85..a4cd9d2 100644
--- a/gui/settings.cpp
+++ b/gui/settings.cpp
@@ -5,7 +5,7 @@
// include configuration from separate header file when building with CMake
#ifndef APP_METADATA_AVAIL
-#include "resources/config.h"
+# include "resources/config.h"
#endif
#include
@@ -38,19 +38,14 @@ using namespace Network;
namespace QtGui {
-GeneralTargetOptionPage::GeneralTargetOptionPage(QWidget *parentWindow) :
- Dialogs::UiFileBasedOptionPage(parentWindow)
+TargetPage::TargetPage(QWidget *parentWindow) :
+ TargetPageBase(parentWindow)
{}
-GeneralTargetOptionPage::~GeneralTargetOptionPage()
+TargetPage::~TargetPage()
{}
-QString GeneralTargetOptionPage::displayName() const
-{
- return QApplication::translate("QtGui::GeneralTargetOptionPage", "Target directory");
-}
-
-bool GeneralTargetOptionPage::apply()
+bool TargetPage::apply()
{
if(hasBeenShown()) {
targetDirectory() = ui()->defaultTargetLineEdit->text();
@@ -60,7 +55,7 @@ bool GeneralTargetOptionPage::apply()
return true;
}
-void GeneralTargetOptionPage::reset()
+void TargetPage::reset()
{
if(hasBeenShown()) {
ui()->defaultTargetLineEdit->setText(targetDirectory());
@@ -69,27 +64,27 @@ void GeneralTargetOptionPage::reset()
}
}
-QString &GeneralTargetOptionPage::targetDirectory()
+QString &TargetPage::targetDirectory()
{
static QString dir;
return dir;
}
-bool &GeneralTargetOptionPage::overwriteWithoutAsking()
+bool &TargetPage::overwriteWithoutAsking()
{
static bool val = false;
return val;
}
-bool &GeneralTargetOptionPage::determineTargetFileWithoutAsking()
+bool &TargetPage::determineTargetFileWithoutAsking()
{
static bool val = true;
return val;
}
-QWidget *GeneralTargetOptionPage::setupWidget()
+QWidget *TargetPage::setupWidget()
{
- QWidget *widget = UiFileBasedOptionPage::setupWidget();
+ QWidget *widget = TargetPageBase::setupWidget();
// draw icon to info icon graphics view
QIcon icon = QApplication::style()->standardIcon(QStyle::SP_MessageBoxInformation, nullptr, widget);
QGraphicsScene *scene = new QGraphicsScene();
@@ -97,11 +92,11 @@ QWidget *GeneralTargetOptionPage::setupWidget()
scene->addItem(item);
ui()->infoIconGraphicsView->setScene(scene);
// connect signals and slots
- QObject::connect(ui()->selectDefaultDirPushButton, &QPushButton::clicked, std::bind(&GeneralTargetOptionPage::selectTargetDirectory, this));
+ QObject::connect(ui()->selectDefaultDirPushButton, &QPushButton::clicked, std::bind(&TargetPage::selectTargetDirectory, this));
return widget;
}
-void GeneralTargetOptionPage::selectTargetDirectory()
+void TargetPage::selectTargetDirectory()
{
QFileDialog *dlg = new QFileDialog(parentWindow());
#ifdef Q_OS_WIN
@@ -121,19 +116,15 @@ void GeneralTargetOptionPage::selectTargetDirectory()
dlg->show();
}
-GeneralUiOptionPage::GeneralUiOptionPage() :
+UiPage::UiPage(QWidget *parentWidget) :
+ OptionPage(parentWidget),
m_multiSelectionCheckBox(nullptr)
{}
-GeneralUiOptionPage::~GeneralUiOptionPage()
+UiPage::~UiPage()
{}
-QString GeneralUiOptionPage::displayName() const
-{
- return QApplication::translate("QtGui::GeneralUiOptionPage", "User interface");
-}
-
-bool GeneralUiOptionPage::apply()
+bool UiPage::apply()
{
if(hasBeenShown()) {
multiSelection() = m_multiSelectionCheckBox->isChecked();
@@ -141,34 +132,35 @@ bool GeneralUiOptionPage::apply()
return true;
}
-void GeneralUiOptionPage::reset()
+void UiPage::reset()
{
if(hasBeenShown()) {
m_multiSelectionCheckBox->setChecked(multiSelection());
}
}
-QByteArray &GeneralUiOptionPage::mainWindowGeometry()
+QByteArray &UiPage::mainWindowGeometry()
{
static QByteArray geometry;
return geometry;
}
-QByteArray &GeneralUiOptionPage::mainWindowState()
+QByteArray &UiPage::mainWindowState()
{
static QByteArray state;
return state;
}
-bool &GeneralUiOptionPage::multiSelection()
+bool &UiPage::multiSelection()
{
static bool val = false;
return val;
}
-QWidget *GeneralUiOptionPage::setupWidget()
+QWidget *UiPage::setupWidget()
{
QWidget *widget = new QWidget();
+ widget->setWindowTitle(QApplication::translate("QtGui::GeneralUiOptionPage", "User interface"));
QVBoxLayout *layout = new QVBoxLayout(widget);
QLabel *mainWindowLabel = new QLabel(QApplication::translate("QtGui::GeneralUiOptionPage", "Main window"));
mainWindowLabel->setStyleSheet(QStringLiteral("font-weight: bold;"));
@@ -178,18 +170,14 @@ QWidget *GeneralUiOptionPage::setupWidget()
return widget;
}
-NetworkProxyOptionPage::NetworkProxyOptionPage()
+ProxyPage::ProxyPage(QWidget *parentWidget) :
+ ProxyPageBase(parentWidget)
{}
-NetworkProxyOptionPage::~NetworkProxyOptionPage()
+ProxyPage::~ProxyPage()
{}
-QString NetworkProxyOptionPage::displayName() const
-{
- return QApplication::translate("QtGui::NetworkProxyOptionPage", "Proxy server");
-}
-
-bool NetworkProxyOptionPage::apply()
+bool ProxyPage::apply()
{
if(hasBeenShown()) {
// set entered values to proxy
@@ -213,7 +201,7 @@ bool NetworkProxyOptionPage::apply()
return true;
}
-void NetworkProxyOptionPage::reset()
+void ProxyPage::reset()
{
if(hasBeenShown()) {
switch(proxy().type()) {
@@ -242,23 +230,24 @@ void NetworkProxyOptionPage::reset()
}
}
-QNetworkProxy &NetworkProxyOptionPage::proxy()
+QNetworkProxy &ProxyPage::proxy()
{
static QNetworkProxy proxy;
return proxy;
}
-QWidget *NetworkProxyOptionPage::setupWidget()
+QWidget *ProxyPage::setupWidget()
{
- QWidget *widget = Dialogs::UiFileBasedOptionPage::setupWidget();
+ QWidget *widget = ProxyPageBase::setupWidget();
+ widget->setWindowTitle(QApplication::translate("QtGui::NetworkProxyOptionPage", "Proxy server"));
ui()->widget->setEnabled(false);
// connect signals and slots
QObject::connect(ui()->enableCheckBox, &QCheckBox::clicked, ui()->widget, &QWidget::setEnabled);
- QObject::connect(ui()->hostNameLineEdit, &QLineEdit::editingFinished, std::bind(&NetworkProxyOptionPage::updateProxy, this));
+ QObject::connect(ui()->hostNameLineEdit, &QLineEdit::editingFinished, std::bind(&ProxyPage::updateProxy, this));
return widget;
}
-void NetworkProxyOptionPage::updateProxy()
+void ProxyPage::updateProxy()
{
QStringList parts = ui()->hostNameLineEdit->text().split(":", QString::SkipEmptyParts);
if(parts.count() == 2) {
@@ -271,18 +260,14 @@ void NetworkProxyOptionPage::updateProxy()
}
}
-NetworkUserAgentOptionPage::NetworkUserAgentOptionPage()
+UserAgentPage::UserAgentPage(QWidget *parentWidget) :
+ UserAgentPageBase(parentWidget)
{}
-NetworkUserAgentOptionPage::~NetworkUserAgentOptionPage()
+UserAgentPage::~UserAgentPage()
{}
-QString NetworkUserAgentOptionPage::displayName() const
-{
- return QApplication::translate("QtGui::NetworkUserAgentOptionPage", "HTTP user agent");
-}
-
-bool NetworkUserAgentOptionPage::apply()
+bool UserAgentPage::apply()
{
if(hasBeenShown()) {
useCustomUserAgent() = ui()->customRadioButton->isChecked();
@@ -291,7 +276,7 @@ bool NetworkUserAgentOptionPage::apply()
return true;
}
-void NetworkUserAgentOptionPage::reset()
+void UserAgentPage::reset()
{
if(hasBeenShown()) {
if(useCustomUserAgent()) {
@@ -303,31 +288,27 @@ void NetworkUserAgentOptionPage::reset()
}
}
-bool &NetworkUserAgentOptionPage::useCustomUserAgent()
+bool &UserAgentPage::useCustomUserAgent()
{
static bool useCustomUserAgent = false;
return useCustomUserAgent;
}
-QString &NetworkUserAgentOptionPage::customUserAgent()
+QString &UserAgentPage::customUserAgent()
{
static QString userAgent;
return userAgent;
}
-NetworkMiscOptionPage::NetworkMiscOptionPage() :
+MiscPage::MiscPage(QWidget *parentWidget) :
+ OptionPage(parentWidget),
m_redirectCheckBox(nullptr)
{}
-NetworkMiscOptionPage::~NetworkMiscOptionPage()
+MiscPage::~MiscPage()
{}
-QString NetworkMiscOptionPage::displayName() const
-{
- return QApplication::translate("QtGui::NetworkMiscOptionPage", "Misc");
-}
-
-bool NetworkMiscOptionPage::apply()
+bool MiscPage::apply()
{
if(hasBeenShown()) {
redirectWithoutAsking() = m_redirectCheckBox->isChecked();
@@ -335,67 +316,65 @@ bool NetworkMiscOptionPage::apply()
return true;
}
-void NetworkMiscOptionPage::reset()
+void MiscPage::reset()
{
if(hasBeenShown()) {
m_redirectCheckBox->setChecked(redirectWithoutAsking());
}
}
-bool &NetworkMiscOptionPage::redirectWithoutAsking()
+bool &MiscPage::redirectWithoutAsking()
{
static bool val = false;
return val;
}
-QWidget *NetworkMiscOptionPage::setupWidget()
+QWidget *MiscPage::setupWidget()
{
QWidget *widget = new QWidget();
+ widget->setWindowTitle(QApplication::translate("QtGui::NetworkMiscOptionPage", "Misc"));
QVBoxLayout *layout = new QVBoxLayout(widget);
layout->addWidget(m_redirectCheckBox = new QCheckBox(QApplication::translate("QtGui::NetworkMiscOptionPage", "follow redirections without asking"), widget));
widget->setLayout(layout);
return widget;
}
-NetworkStatsOptionPage::NetworkStatsOptionPage() :
+StatsPage::StatsPage(QWidget *parentWidget) :
+ OptionPage(parentWidget),
m_receivedLabel(nullptr)
{}
-NetworkStatsOptionPage::~NetworkStatsOptionPage()
+StatsPage::~StatsPage()
{}
-QString NetworkStatsOptionPage::displayName() const
-{
- return QApplication::translate("QtGui::NetworkStatsOptionPage", "Statistics");
-}
-
-bool NetworkStatsOptionPage::apply()
+bool StatsPage::apply()
{
return true;
}
-void NetworkStatsOptionPage::reset()
+void StatsPage::reset()
{
if(hasBeenShown()) {
m_receivedLabel->setText(QString::fromStdString(ConversionUtilities::dataSizeToString(bytesReceived(), true)));
}
}
-quint64 &NetworkStatsOptionPage::bytesReceived()
+quint64 &StatsPage::bytesReceived()
{
static quint64 received;
return received;
}
-QWidget *NetworkStatsOptionPage::setupWidget()
+QWidget *StatsPage::setupWidget()
{
QWidget *widget = new QWidget();
+ widget->setWindowTitle(QApplication::translate("QtGui::NetworkStatsOptionPage", "Statistics"));
QVBoxLayout *mainLayout = new QVBoxLayout(widget);
QFormLayout *formLayout = new QFormLayout(widget);
formLayout->addRow(QApplication::translate("QtGui::NetworkStatsOptionPage", "Received data"), m_receivedLabel = new QLabel());
QPushButton *refreshButton = new QPushButton(QApplication::translate("QtGui::NetworkStatsOptionPage", "Refresh"));
refreshButton->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
- QObject::connect(refreshButton, &QPushButton::clicked, std::bind(&NetworkStatsOptionPage::reset, this));
+ QObject::connect(refreshButton, &QPushButton::clicked, std::bind(&StatsPage::reset, this));
mainLayout->addLayout(formLayout);
mainLayout->addWidget(refreshButton);
widget->setLayout(mainLayout);
@@ -411,14 +390,14 @@ SettingsDialog::SettingsDialog(QWidget *parent) :
category = new Dialogs::OptionCategory(this);
category->setDisplayName(tr("General"));
- category->assignPages(QList() << new GeneralTargetOptionPage(this) << new GeneralUiOptionPage());
+ category->assignPages(QList() << new TargetPage(this) << new UiPage());
category->setIcon(QIcon::fromTheme(QStringLiteral("preferences-other"), QIcon(QStringLiteral(":/icons/hicolor/32x32/categories/preferences-general.png"))));
categories << category;
category = new Dialogs::OptionCategory(this);
category->setDisplayName(tr("Network"));
category->setIcon(QIcon::fromTheme(QStringLiteral("preferences-system-network"), QIcon(QStringLiteral(":/icons/hicolor/32x32/categories/preferences-network.png"))));
- category->assignPages(QList() << new NetworkProxyOptionPage() << new NetworkUserAgentOptionPage() << new NetworkMiscOptionPage() << new NetworkStatsOptionPage());
+ category->assignPages(QList() << new ProxyPage() << new UserAgentPage() << new MiscPage() << new StatsPage());
categories << category;
category = new Dialogs::OptionCategory(this);
@@ -440,18 +419,18 @@ void restoreSettings()
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName());
settings.beginGroup("application");
- GeneralTargetOptionPage::targetDirectory() = settings.value("defaulttargetdirectory").toString();
- GeneralTargetOptionPage::overwriteWithoutAsking() = settings.value("overwritewithoutasking", false).toBool();
- GeneralTargetOptionPage::determineTargetFileWithoutAsking() = settings.value("determinetargetfilewithoutasking", true).toBool();
- NetworkMiscOptionPage::redirectWithoutAsking() = settings.value("redirectwithoutasking", true).toBool();
- NetworkUserAgentOptionPage::useCustomUserAgent() = settings.value("usecustomuseragent", false).toBool();
- NetworkUserAgentOptionPage::customUserAgent() = settings.value("customuseragent").toString();
+ TargetPage::targetDirectory() = settings.value("defaulttargetdirectory").toString();
+ TargetPage::overwriteWithoutAsking() = settings.value("overwritewithoutasking", false).toBool();
+ TargetPage::determineTargetFileWithoutAsking() = settings.value("determinetargetfilewithoutasking", true).toBool();
+ MiscPage::redirectWithoutAsking() = settings.value("redirectwithoutasking", true).toBool();
+ UserAgentPage::useCustomUserAgent() = settings.value("usecustomuseragent", false).toBool();
+ UserAgentPage::customUserAgent() = settings.value("customuseragent").toString();
settings.beginGroup("proxy");
bool validProxyType;
int proxyType = settings.value("type", QVariant(QNetworkProxy::NoProxy)).toInt(&validProxyType);
validProxyType = proxyType >= 0 && proxyType <= 5;
- QNetworkProxy &proxy = NetworkProxyOptionPage::proxy();
+ QNetworkProxy &proxy = ProxyPage::proxy();
proxy.setType(validProxyType ? static_cast(proxyType) : QNetworkProxy::NoProxy);
proxy.setHostName(settings.value("hostname").toString());
proxy.setPort(settings.value("port", QVariant(0)).toUInt());
@@ -461,13 +440,13 @@ void restoreSettings()
settings.endGroup();
settings.beginGroup("statistics");
- NetworkStatsOptionPage::bytesReceived() = settings.value("totalbytesreceived", 0).toLongLong();
+ StatsPage::bytesReceived() = settings.value("totalbytesreceived", 0).toLongLong();
settings.endGroup();
settings.beginGroup("mainwindow");
- GeneralUiOptionPage::mainWindowGeometry() = settings.value("geometry").toByteArray();
- GeneralUiOptionPage::mainWindowState() = settings.value("state").toByteArray();
- GeneralUiOptionPage::multiSelection() = settings.value("multiselection").toBool();
+ UiPage::mainWindowGeometry() = settings.value("geometry").toByteArray();
+ UiPage::mainWindowState() = settings.value("state").toByteArray();
+ UiPage::multiSelection() = settings.value("multiselection").toBool();
// load grooveshark authentication file
const auto errorMsg = QApplication::translate("QtGui::Settings", "Unable to read Grooveshark authentication information file.\n\nReason: %1\n\nThe values stored in this file are required when connection to Grooveshark. Built-in will values be used instead, but these might be deprecated.");
@@ -487,15 +466,15 @@ void saveSettings()
QSettings settings(QSettings::IniFormat, QSettings::UserScope, QApplication::organizationName(), QApplication::applicationName());
settings.beginGroup("application");
- settings.setValue("defaulttargetdirectory", GeneralTargetOptionPage::targetDirectory());
- settings.setValue("overwritewithoutasking", GeneralTargetOptionPage::overwriteWithoutAsking());
- settings.setValue("determinetargetfilewithoutasking", GeneralTargetOptionPage::determineTargetFileWithoutAsking());
- settings.setValue("redirectwithoutasking", NetworkMiscOptionPage::redirectWithoutAsking());
- settings.setValue("usecustomuseragent", NetworkUserAgentOptionPage::useCustomUserAgent());
- settings.setValue("customuseragent", NetworkUserAgentOptionPage::customUserAgent());
+ settings.setValue("defaulttargetdirectory", TargetPage::targetDirectory());
+ settings.setValue("overwritewithoutasking", TargetPage::overwriteWithoutAsking());
+ settings.setValue("determinetargetfilewithoutasking", TargetPage::determineTargetFileWithoutAsking());
+ settings.setValue("redirectwithoutasking", MiscPage::redirectWithoutAsking());
+ settings.setValue("usecustomuseragent", UserAgentPage::useCustomUserAgent());
+ settings.setValue("customuseragent", UserAgentPage::customUserAgent());
settings.beginGroup("proxy");
- const QNetworkProxy &proxy = NetworkProxyOptionPage::proxy();
+ const QNetworkProxy &proxy = ProxyPage::proxy();
settings.setValue("type", proxy.type());
settings.setValue("hostname", proxy.hostName());
settings.setValue("port", proxy.port());
@@ -505,21 +484,21 @@ void saveSettings()
settings.endGroup();
settings.beginGroup("statistics");
- settings.setValue("totalbytesreceived", NetworkStatsOptionPage::bytesReceived());
+ settings.setValue("totalbytesreceived", StatsPage::bytesReceived());
settings.endGroup();
settings.beginGroup("mainwindow");
- settings.setValue("geometry", GeneralUiOptionPage::mainWindowGeometry());
- settings.setValue("state", GeneralUiOptionPage::mainWindowState());
- settings.setValue("multiselection", GeneralUiOptionPage::multiSelection());
+ settings.setValue("geometry", UiPage::mainWindowGeometry());
+ settings.setValue("state", UiPage::mainWindowState());
+ settings.setValue("multiselection", UiPage::multiSelection());
settings.endGroup();
}
void applySettingsToDownload(Download *download)
{
- download->setDefaultUserAgentUsed(!NetworkUserAgentOptionPage::useCustomUserAgent());
- download->setCustomUserAgent(NetworkUserAgentOptionPage::useCustomUserAgent() ? NetworkUserAgentOptionPage::customUserAgent() : QString());
- download->setProxy(NetworkProxyOptionPage::proxy());
+ download->setDefaultUserAgentUsed(!UserAgentPage::useCustomUserAgent());
+ download->setCustomUserAgent(UserAgentPage::useCustomUserAgent() ? UserAgentPage::customUserAgent() : QString());
+ download->setProxy(ProxyPage::proxy());
}
}
diff --git a/gui/settings.h b/gui/settings.h
index 01dff1e..e29bf08 100644
--- a/gui/settings.h
+++ b/gui/settings.h
@@ -9,13 +9,11 @@
#include
#include
-QT_BEGIN_NAMESPACE
-class QByteArray;
-class QLabel;
-class QLineEdit;
-class QCheckBox;
-class QNetworkProxy;
-QT_END_NAMESPACE
+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 Network {
class Download;
@@ -23,118 +21,55 @@ class Download;
namespace QtGui {
-namespace Ui {
-class TargetPage;
-class ProxyPage;
-class UserAgentPage;
-}
-
-class GeneralTargetOptionPage : public Dialogs::UiFileBasedOptionPage
-{
+BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(TargetPage)
+ DECLARE_SETUP_WIDGETS
public:
- explicit GeneralTargetOptionPage(QWidget *parentWindow);
- ~GeneralTargetOptionPage();
-
- QString displayName() const;
- bool apply();
- void reset();
static QString &targetDirectory();
static bool &overwriteWithoutAsking();
static bool &determineTargetFileWithoutAsking();
-
-protected:
- QWidget *setupWidget();
-
private:
void selectTargetDirectory();
-};
+END_DECLARE_OPTION_PAGE
-class GeneralUiOptionPage : public Dialogs::OptionPage
-{
+BEGIN_DECLARE_OPTION_PAGE(UiPage)
+ DECLARE_SETUP_WIDGETS
public:
- explicit GeneralUiOptionPage();
- ~GeneralUiOptionPage();
-
- QString displayName() const;
- bool apply();
- void reset();
static QByteArray &mainWindowGeometry();
static QByteArray &mainWindowState();
static bool &multiSelection();
-
-protected:
- QWidget *setupWidget();
-
private:
QCheckBox *m_multiSelectionCheckBox;
-};
+END_DECLARE_OPTION_PAGE
-class NetworkProxyOptionPage : public Dialogs::UiFileBasedOptionPage
-{
+BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(ProxyPage)
+ DECLARE_SETUP_WIDGETS
public:
- explicit NetworkProxyOptionPage();
- ~NetworkProxyOptionPage();
-
- QString displayName() const;
- bool apply();
- void reset();
static QNetworkProxy &proxy();
-
-protected:
- QWidget *setupWidget();
-
private:
void updateProxy();
-};
+END_DECLARE_OPTION_PAGE
-class NetworkUserAgentOptionPage : public Dialogs::UiFileBasedOptionPage
-{
+BEGIN_DECLARE_UI_FILE_BASED_OPTION_PAGE(UserAgentPage)
public:
- explicit NetworkUserAgentOptionPage();
- ~NetworkUserAgentOptionPage();
-
- QString displayName() const;
- bool apply();
- void reset();
static bool &useCustomUserAgent();
static QString &customUserAgent();
-};
+END_DECLARE_OPTION_PAGE
-class NetworkMiscOptionPage : public Dialogs::OptionPage
-{
+BEGIN_DECLARE_OPTION_PAGE(MiscPage)
+ DECLARE_SETUP_WIDGETS
public:
- explicit NetworkMiscOptionPage();
- ~NetworkMiscOptionPage();
-
- QString displayName() const;
- bool apply();
- void reset();
static bool &redirectWithoutAsking();
-
-protected:
- QWidget *setupWidget();
-
private:
QCheckBox *m_redirectCheckBox;
-};
+END_DECLARE_OPTION_PAGE
-class NetworkStatsOptionPage : public Dialogs::OptionPage
-{
+BEGIN_DECLARE_OPTION_PAGE(StatsPage)
+ DECLARE_SETUP_WIDGETS
public:
- explicit NetworkStatsOptionPage();
- ~NetworkStatsOptionPage();
-
- QString displayName() const;
- bool apply();
- void reset();
static quint64 &bytesReceived();
-
-protected:
- QWidget *setupWidget();
-
private:
QLabel *m_receivedLabel;
-};
+END_DECLARE_OPTION_PAGE
class SettingsDialog : public Dialogs::SettingsDialog
{
diff --git a/gui/targetpage.ui b/gui/targetpage.ui
index c63bd05..d2aea90 100644
--- a/gui/targetpage.ui
+++ b/gui/targetpage.ui
@@ -2,8 +2,16 @@
QtGui::TargetPage
+
+
+ 0
+ 0
+ 331
+ 180
+
+
- Select target directory
+ Target directory
-
diff --git a/gui/useragentpage.ui b/gui/useragentpage.ui
index 88939cb..088539a 100644
--- a/gui/useragentpage.ui
+++ b/gui/useragentpage.ui
@@ -2,8 +2,16 @@
QtGui::UserAgentPage
+
+
+ 0
+ 0
+ 239
+ 68
+
+
- Configure user agent
+ HTTP user agent
-
@@ -15,7 +23,7 @@
- Use a random default user agent
+ Use a ra&ndom default user agent
@@ -30,7 +38,7 @@
- Custom user agent
+ &Custom user agent