diff --git a/src/app/stacktracedialog.h b/src/app/stacktracedialog.h index cf40e73f0..ff9b0c81e 100644 --- a/src/app/stacktracedialog.h +++ b/src/app/stacktracedialog.h @@ -30,21 +30,27 @@ #ifndef STACKTRACEDIALOG_H #define STACKTRACEDIALOG_H -#include #include +#include #include "base/utils/misc.h" #include "ui_stacktracedialog.h" -class StacktraceDialog : public QDialog, private Ui::StacktraceDialog +class StacktraceDialog : public QDialog { Q_OBJECT public: StacktraceDialog(QWidget *parent = nullptr) : QDialog(parent) + , m_ui(new Ui::StacktraceDialog) { - setupUi(this); + m_ui->setupUi(this); + } + + ~StacktraceDialog() + { + delete m_ui; } void setStacktraceString(const QString &sigName, const QString &trace) @@ -79,8 +85,11 @@ public: , sigName , trace); - errorText->setHtml(htmlStr); + m_ui->errorText->setHtml(htmlStr); } + +private: + Ui::StacktraceDialog *m_ui; }; #endif // STACKTRACEDIALOG_H diff --git a/src/gui/aboutdialog.h b/src/gui/aboutdialog.h index 0881dfa0e..7ab927f2f 100644 --- a/src/gui/aboutdialog.h +++ b/src/gui/aboutdialog.h @@ -36,21 +36,22 @@ #include "ui_aboutdialog.h" #include "utils.h" -class AboutDialog : public QDialog, private Ui::AboutDialog +class AboutDialog : public QDialog { Q_OBJECT public: AboutDialog(QWidget *parent) : QDialog(parent) + , m_ui(new Ui::AboutDialog) { - setupUi(this); + m_ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); // Title - labelName->setText(QString("

qBittorrent " QBT_VERSION " (%1-bit)

").arg(QT_POINTER_SIZE * 8)); + m_ui->labelName->setText(QString("

qBittorrent " QBT_VERSION " (%1-bit)

").arg(QT_POINTER_SIZE * 8)); - logo->setPixmap(Utils::Gui::scaledPixmapSvg(":/icons/skin/qbittorrent-tray.svg", this, 32)); + m_ui->logo->setPixmap(Utils::Gui::scaledPixmapSvg(":/icons/skin/qbittorrent-tray.svg", this, 32)); // About QString aboutText = QString( @@ -68,40 +69,48 @@ public: , tr("Home Page:") , tr("Forum:") , tr("Bug Tracker:")); - labelAbout->setText(aboutText); + m_ui->labelAbout->setText(aboutText); - labelMascot->setPixmap(Utils::Gui::scaledPixmap(":/icons/skin/mascot.png", this)); + m_ui->labelMascot->setPixmap(Utils::Gui::scaledPixmap(":/icons/skin/mascot.png", this)); // Thanks QFile thanksfile(":/thanks.html"); if (thanksfile.open(QIODevice::ReadOnly | QIODevice::Text)) { - textBrowserThanks->setHtml(QString::fromUtf8(thanksfile.readAll().constData())); + m_ui->textBrowserThanks->setHtml(QString::fromUtf8(thanksfile.readAll().constData())); thanksfile.close(); } // Translation QFile translatorsfile(":/translators.html"); if (translatorsfile.open(QIODevice::ReadOnly | QIODevice::Text)) { - textBrowserTranslation->setHtml(QString::fromUtf8(translatorsfile.readAll().constData())); + m_ui->textBrowserTranslation->setHtml(QString::fromUtf8(translatorsfile.readAll().constData())); translatorsfile.close(); } // License QFile licensefile(":/gpl.html"); if (licensefile.open(QIODevice::ReadOnly | QIODevice::Text)) { - textBrowserLicense->setHtml(QString::fromUtf8(licensefile.readAll().constData())); + m_ui->textBrowserLicense->setHtml(QString::fromUtf8(licensefile.readAll().constData())); licensefile.close(); } // Libraries - labelQtVer->setText(QT_VERSION_STR); - labelLibtVer->setText(Utils::Misc::libtorrentVersionString()); - labelBoostVer->setText(Utils::Misc::boostVersionString()); - labelOpensslVer->setText(Utils::Misc::opensslVersionString()); + m_ui->labelQtVer->setText(QT_VERSION_STR); + m_ui->labelLibtVer->setText(Utils::Misc::libtorrentVersionString()); + m_ui->labelBoostVer->setText(Utils::Misc::boostVersionString()); + m_ui->labelOpensslVer->setText(Utils::Misc::opensslVersionString()); Utils::Gui::resize(this); show(); } + + ~AboutDialog() + { + delete m_ui; + } + +private: + Ui::AboutDialog *m_ui; }; #endif // ABOUTDIALOG_H diff --git a/src/gui/deletionconfirmationdialog.h b/src/gui/deletionconfirmationdialog.h index 6e929c76b..949f06fb7 100644 --- a/src/gui/deletionconfirmationdialog.h +++ b/src/gui/deletionconfirmationdialog.h @@ -33,42 +33,46 @@ #include #include "base/preferences.h" -#include "base/utils/misc.h" -#include "base/utils/string.h" #include "guiiconprovider.h" #include "ui_deletionconfirmationdialog.h" #include "utils.h" -class DeletionConfirmationDialog : public QDialog, private Ui::DeletionConfirmationDialog +class DeletionConfirmationDialog : public QDialog { Q_OBJECT public: DeletionConfirmationDialog(QWidget *parent, const int &size, const QString &name, bool defaultDeleteFiles) : QDialog(parent) + , m_ui(new Ui::DeletionConfirmationDialog) { - setupUi(this); + m_ui->setupUi(this); if (size == 1) - label->setText(tr("Are you sure you want to delete '%1' from the transfer list?", "Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list?").arg(name.toHtmlEscaped())); + m_ui->label->setText(tr("Are you sure you want to delete '%1' from the transfer list?", "Are you sure you want to delete 'ubuntu-linux-iso' from the transfer list?").arg(name.toHtmlEscaped())); else - label->setText(tr("Are you sure you want to delete these %1 torrents from the transfer list?", "Are you sure you want to delete these 5 torrents from the transfer list?").arg(QString::number(size))); + m_ui->label->setText(tr("Are you sure you want to delete these %1 torrents from the transfer list?", "Are you sure you want to delete these 5 torrents from the transfer list?").arg(QString::number(size))); // Icons const QSize iconSize = Utils::Gui::largeIconSize(); - labelWarning->setPixmap(GuiIconProvider::instance()->getIcon("dialog-warning").pixmap(iconSize)); - labelWarning->setFixedWidth(iconSize.width()); - rememberBtn->setIcon(GuiIconProvider::instance()->getIcon("object-locked")); - rememberBtn->setIconSize(Utils::Gui::mediumIconSize()); + m_ui->labelWarning->setPixmap(GuiIconProvider::instance()->getIcon("dialog-warning").pixmap(iconSize)); + m_ui->labelWarning->setFixedWidth(iconSize.width()); + m_ui->rememberBtn->setIcon(GuiIconProvider::instance()->getIcon("object-locked")); + m_ui->rememberBtn->setIconSize(Utils::Gui::mediumIconSize()); - checkPermDelete->setChecked(defaultDeleteFiles || Preferences::instance()->deleteTorrentFilesAsDefault()); - connect(checkPermDelete, &QCheckBox::clicked, this, &DeletionConfirmationDialog::updateRememberButtonState); - buttonBox->button(QDialogButtonBox::Cancel)->setFocus(); + m_ui->checkPermDelete->setChecked(defaultDeleteFiles || Preferences::instance()->deleteTorrentFilesAsDefault()); + connect(m_ui->checkPermDelete, &QCheckBox::clicked, this, &DeletionConfirmationDialog::updateRememberButtonState); + m_ui->buttonBox->button(QDialogButtonBox::Cancel)->setFocus(); Utils::Gui::resize(this); } + ~DeletionConfirmationDialog() + { + delete m_ui; + } + bool shouldDeleteLocalFiles() const { - return checkPermDelete->isChecked(); + return m_ui->checkPermDelete->isChecked(); } static bool askForDeletionConfirmation(QWidget *parent, bool &deleteLocalFiles, const int &size, const QString &name) @@ -84,14 +88,17 @@ public: private slots: void updateRememberButtonState() { - rememberBtn->setEnabled(checkPermDelete->isChecked() != Preferences::instance()->deleteTorrentFilesAsDefault()); + m_ui->rememberBtn->setEnabled(m_ui->checkPermDelete->isChecked() != Preferences::instance()->deleteTorrentFilesAsDefault()); } void on_rememberBtn_clicked() { - Preferences::instance()->setDeleteTorrentFilesAsDefault(checkPermDelete->isChecked()); - rememberBtn->setEnabled(false); + Preferences::instance()->setDeleteTorrentFilesAsDefault(m_ui->checkPermDelete->isChecked()); + m_ui->rememberBtn->setEnabled(false); } + +private: + Ui::DeletionConfirmationDialog *m_ui; }; #endif // DELETIONCONFIRMATIONDIALOG_H diff --git a/src/gui/previewselectdialog.cpp b/src/gui/previewselectdialog.cpp index 153c579c2..6120cc2bc 100644 --- a/src/gui/previewselectdialog.cpp +++ b/src/gui/previewselectdialog.cpp @@ -40,22 +40,24 @@ #include "base/utils/fs.h" #include "base/utils/misc.h" #include "previewlistdelegate.h" +#include "ui_previewselectdialog.h" #include "utils.h" #define SETTINGS_KEY(name) "PreviewSelectDialog/" name PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, BitTorrent::TorrentHandle *const torrent) : QDialog(parent) + , m_ui(new Ui::PreviewSelectDialog) , m_torrent(torrent) , m_storeDialogSize(SETTINGS_KEY("Dimension")) , m_storeTreeHeaderState(SETTINGS_KEY("HeaderState")) { - setupUi(this); + m_ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); - buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Preview")); - connect(buttonBox, &QDialogButtonBox::accepted, this, &PreviewSelectDialog::previewButtonClicked); - connect(buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); + m_ui->buttonBox->button(QDialogButtonBox::Ok)->setText(tr("Preview")); + connect(m_ui->buttonBox, &QDialogButtonBox::accepted, this, &PreviewSelectDialog::previewButtonClicked); + connect(m_ui->buttonBox, &QDialogButtonBox::rejected, this, &QDialog::reject); Preferences *const pref = Preferences::instance(); // Preview list @@ -67,15 +69,15 @@ PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, BitTorrent::TorrentHan // This hack fixes reordering of first column with Qt5. // https://github.com/qtproject/qtbase/commit/e0fc088c0c8bc61dbcaf5928b24986cd61a22777 QTableView unused; - unused.setVerticalHeader(previewList->header()); - previewList->header()->setParent(previewList); + unused.setVerticalHeader(m_ui->previewList->header()); + m_ui->previewList->header()->setParent(m_ui->previewList); unused.setVerticalHeader(new QHeaderView(Qt::Horizontal)); - previewList->setModel(m_previewListModel); - previewList->hideColumn(FILE_INDEX); + m_ui->previewList->setModel(m_previewListModel); + m_ui->previewList->hideColumn(FILE_INDEX); m_listDelegate = new PreviewListDelegate(this); - previewList->setItemDelegate(m_listDelegate); - previewList->setAlternatingRowColors(pref->useAlternatingRowColors()); + m_ui->previewList->setItemDelegate(m_listDelegate); + m_ui->previewList->setAlternatingRowColors(pref->useAlternatingRowColors()); // Fill list in QVector fp = torrent->filesProgress(); int nbFiles = torrent->filesCount(); @@ -96,8 +98,8 @@ PreviewSelectDialog::PreviewSelectDialog(QWidget *parent, BitTorrent::TorrentHan connect(this, SIGNAL(readyToPreviewFile(QString)), parent, SLOT(previewFile(QString))); m_previewListModel->sort(NAME); - previewList->header()->setSortIndicator(0, Qt::AscendingOrder); - previewList->selectionModel()->select(m_previewListModel->index(0, NAME), QItemSelectionModel::Select | QItemSelectionModel::Rows); + m_ui->previewList->header()->setSortIndicator(0, Qt::AscendingOrder); + m_ui->previewList->selectionModel()->select(m_previewListModel->index(0, NAME), QItemSelectionModel::Select | QItemSelectionModel::Rows); // Restore dialog state loadWindowState(); @@ -119,11 +121,12 @@ PreviewSelectDialog::~PreviewSelectDialog() delete m_previewListModel; delete m_listDelegate; + delete m_ui; } void PreviewSelectDialog::previewButtonClicked() { - QModelIndexList selectedIndexes = previewList->selectionModel()->selectedRows(FILE_INDEX); + QModelIndexList selectedIndexes = m_ui->previewList->selectionModel()->selectedRows(FILE_INDEX); if (selectedIndexes.isEmpty()) return; // Flush data @@ -146,7 +149,7 @@ void PreviewSelectDialog::saveWindowState() // Persist dialog size m_storeDialogSize = size(); // Persist TreeView Header state - m_storeTreeHeaderState = previewList->header()->saveState(); + m_storeTreeHeaderState = m_ui->previewList->header()->saveState(); } void PreviewSelectDialog::loadWindowState() @@ -156,7 +159,7 @@ void PreviewSelectDialog::loadWindowState() // Restore TreeView Header state if (!m_storeTreeHeaderState.value().isEmpty()) { - m_headerStateInitialized = previewList->header()->restoreState(m_storeTreeHeaderState); + m_headerStateInitialized = m_ui->previewList->header()->restoreState(m_storeTreeHeaderState); } } @@ -167,8 +170,8 @@ void PreviewSelectDialog::showEvent(QShowEvent *event) // Default size, have to be called after show(), because width is needed // Set Name column width to 60% of TreeView if (!m_headerStateInitialized) { - int nameSize = (previewList->size().width() * 0.6); - previewList->header()->resizeSection(0, nameSize); + int nameSize = (m_ui->previewList->size().width() * 0.6); + m_ui->previewList->header()->resizeSection(0, nameSize); m_headerStateInitialized = true; } } diff --git a/src/gui/previewselectdialog.h b/src/gui/previewselectdialog.h index 1b9e6bb47..a9dc54749 100644 --- a/src/gui/previewselectdialog.h +++ b/src/gui/previewselectdialog.h @@ -32,7 +32,6 @@ #include #include "base/settingvalue.h" -#include "ui_previewselectdialog.h" class QStandardItemModel; @@ -40,9 +39,13 @@ namespace BitTorrent { class TorrentHandle; } +namespace Ui +{ + class PreviewSelectDialog; +} class PreviewListDelegate; -class PreviewSelectDialog : public QDialog, private Ui::preview +class PreviewSelectDialog : public QDialog { Q_OBJECT @@ -73,6 +76,7 @@ private: void loadWindowState(); void saveWindowState(); + Ui::PreviewSelectDialog *m_ui; QStandardItemModel *m_previewListModel; PreviewListDelegate *m_listDelegate; BitTorrent::TorrentHandle *const m_torrent; diff --git a/src/gui/previewselectdialog.ui b/src/gui/previewselectdialog.ui index be7873d97..f37b0af45 100644 --- a/src/gui/previewselectdialog.ui +++ b/src/gui/previewselectdialog.ui @@ -1,7 +1,7 @@ - preview - + PreviewSelectDialog + 0 diff --git a/src/gui/transferlistwidget.cpp b/src/gui/transferlistwidget.cpp index aeef91e4a..218de9795 100644 --- a/src/gui/transferlistwidget.cpp +++ b/src/gui/transferlistwidget.cpp @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include diff --git a/src/gui/transferlistwidget.h b/src/gui/transferlistwidget.h index ff29b97a3..1c50a4d6c 100644 --- a/src/gui/transferlistwidget.h +++ b/src/gui/transferlistwidget.h @@ -38,8 +38,6 @@ namespace BitTorrent } class QShortcut; -class QSortFilterProxyModel; -class QStandardItemModel; class MainWindow; class TransferListDelegate;