mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2026-01-04 06:32:29 -06:00
Change file names and classes names to match them
This commit is contained in:
@@ -1,19 +1,24 @@
|
||||
add_library(qbt_searchengine STATIC
|
||||
pluginselectdlg.ui
|
||||
pluginsourcedlg.ui
|
||||
searchwidget.ui
|
||||
pluginselectdlg.h
|
||||
pluginsourcedlg.h
|
||||
# headers
|
||||
pluginselectdialog.h
|
||||
pluginsourcedialog.h
|
||||
searchjobwidget.h
|
||||
searchlistdelegate.h
|
||||
searchsortmodel.h
|
||||
searchtab.h
|
||||
searchwidget.h
|
||||
pluginselectdlg.cpp
|
||||
pluginsourcedlg.cpp
|
||||
|
||||
# sources
|
||||
pluginselectdialog.cpp
|
||||
pluginsourcedialog.cpp
|
||||
searchjobwidget.cpp
|
||||
searchlistdelegate.cpp
|
||||
searchsortmodel.cpp
|
||||
searchtab.cpp
|
||||
searchwidget.cpp
|
||||
|
||||
# forms
|
||||
pluginselectdialog.ui
|
||||
pluginsourcedialog.ui
|
||||
searchwidget.ui
|
||||
)
|
||||
|
||||
set(QBT_SEARCHENGINE_RESOURCES
|
||||
|
||||
@@ -27,7 +27,7 @@
|
||||
* exception statement from your version.
|
||||
*/
|
||||
|
||||
#include "pluginselectdlg.h"
|
||||
#include "pluginselectdialog.h"
|
||||
|
||||
#include <QClipboard>
|
||||
#include <QDropEvent>
|
||||
@@ -45,9 +45,9 @@
|
||||
#include "base/utils/misc.h"
|
||||
#include "autoexpandabledialog.h"
|
||||
#include "guiiconprovider.h"
|
||||
#include "pluginsourcedlg.h"
|
||||
#include "pluginsourcedialog.h"
|
||||
#include "searchwidget.h"
|
||||
#include "ui_pluginselectdlg.h"
|
||||
#include "ui_pluginselectdialog.h"
|
||||
#include "utils.h"
|
||||
|
||||
enum PluginColumns
|
||||
@@ -59,9 +59,9 @@ enum PluginColumns
|
||||
PLUGIN_ID
|
||||
};
|
||||
|
||||
PluginSelectDlg::PluginSelectDlg(SearchPluginManager *pluginManager, QWidget *parent)
|
||||
PluginSelectDialog::PluginSelectDialog(SearchPluginManager *pluginManager, QWidget *parent)
|
||||
: QDialog(parent)
|
||||
, m_ui(new Ui::PluginSelectDlg())
|
||||
, m_ui(new Ui::PluginSelectDialog())
|
||||
, m_pluginManager(pluginManager)
|
||||
, m_asyncOps(0)
|
||||
, m_pendingUpdates(0)
|
||||
@@ -82,29 +82,29 @@ PluginSelectDlg::PluginSelectDlg(SearchPluginManager *pluginManager, QWidget *pa
|
||||
|
||||
m_ui->actionUninstall->setIcon(GuiIconProvider::instance()->getIcon("list-remove"));
|
||||
|
||||
connect(m_ui->actionEnable, &QAction::toggled, this, &PluginSelectDlg::enableSelection);
|
||||
connect(m_ui->pluginsTree, &QTreeWidget::customContextMenuRequested, this, &PluginSelectDlg::displayContextMenu);
|
||||
connect(m_ui->pluginsTree, &QTreeWidget::itemDoubleClicked, this, &PluginSelectDlg::togglePluginState);
|
||||
connect(m_ui->actionEnable, &QAction::toggled, this, &PluginSelectDialog::enableSelection);
|
||||
connect(m_ui->pluginsTree, &QTreeWidget::customContextMenuRequested, this, &PluginSelectDialog::displayContextMenu);
|
||||
connect(m_ui->pluginsTree, &QTreeWidget::itemDoubleClicked, this, &PluginSelectDialog::togglePluginState);
|
||||
|
||||
loadSupportedSearchPlugins();
|
||||
|
||||
connect(m_pluginManager, &SearchPluginManager::pluginInstalled, this, &PluginSelectDlg::pluginInstalled);
|
||||
connect(m_pluginManager, &SearchPluginManager::pluginInstallationFailed, this, &PluginSelectDlg::pluginInstallationFailed);
|
||||
connect(m_pluginManager, &SearchPluginManager::pluginUpdated, this, &PluginSelectDlg::pluginUpdated);
|
||||
connect(m_pluginManager, &SearchPluginManager::pluginUpdateFailed, this, &PluginSelectDlg::pluginUpdateFailed);
|
||||
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFinished, this, &PluginSelectDlg::checkForUpdatesFinished);
|
||||
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFailed, this, &PluginSelectDlg::checkForUpdatesFailed);
|
||||
connect(m_pluginManager, &SearchPluginManager::pluginInstalled, this, &PluginSelectDialog::pluginInstalled);
|
||||
connect(m_pluginManager, &SearchPluginManager::pluginInstallationFailed, this, &PluginSelectDialog::pluginInstallationFailed);
|
||||
connect(m_pluginManager, &SearchPluginManager::pluginUpdated, this, &PluginSelectDialog::pluginUpdated);
|
||||
connect(m_pluginManager, &SearchPluginManager::pluginUpdateFailed, this, &PluginSelectDialog::pluginUpdateFailed);
|
||||
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFinished, this, &PluginSelectDialog::checkForUpdatesFinished);
|
||||
connect(m_pluginManager, &SearchPluginManager::checkForUpdatesFailed, this, &PluginSelectDialog::checkForUpdatesFailed);
|
||||
|
||||
Utils::Gui::resize(this);
|
||||
show();
|
||||
}
|
||||
|
||||
PluginSelectDlg::~PluginSelectDlg()
|
||||
PluginSelectDialog::~PluginSelectDialog()
|
||||
{
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
void PluginSelectDlg::dropEvent(QDropEvent *event)
|
||||
void PluginSelectDialog::dropEvent(QDropEvent *event)
|
||||
{
|
||||
event->acceptProposedAction();
|
||||
|
||||
@@ -133,7 +133,7 @@ void PluginSelectDlg::dropEvent(QDropEvent *event)
|
||||
}
|
||||
|
||||
// Decode if we accept drag 'n drop or not
|
||||
void PluginSelectDlg::dragEnterEvent(QDragEnterEvent *event)
|
||||
void PluginSelectDialog::dragEnterEvent(QDragEnterEvent *event)
|
||||
{
|
||||
QString mime;
|
||||
foreach (mime, event->mimeData()->formats()) {
|
||||
@@ -145,13 +145,13 @@ void PluginSelectDlg::dragEnterEvent(QDragEnterEvent *event)
|
||||
}
|
||||
}
|
||||
|
||||
void PluginSelectDlg::on_updateButton_clicked()
|
||||
void PluginSelectDialog::on_updateButton_clicked()
|
||||
{
|
||||
startAsyncOp();
|
||||
m_pluginManager->checkForUpdates();
|
||||
}
|
||||
|
||||
void PluginSelectDlg::togglePluginState(QTreeWidgetItem *item, int)
|
||||
void PluginSelectDialog::togglePluginState(QTreeWidgetItem *item, int)
|
||||
{
|
||||
PluginInfo *plugin = m_pluginManager->pluginInfo(item->text(PLUGIN_ID));
|
||||
m_pluginManager->enablePlugin(plugin->name, !plugin->enabled);
|
||||
@@ -165,7 +165,7 @@ void PluginSelectDlg::togglePluginState(QTreeWidgetItem *item, int)
|
||||
}
|
||||
}
|
||||
|
||||
void PluginSelectDlg::displayContextMenu(const QPoint&)
|
||||
void PluginSelectDialog::displayContextMenu(const QPoint&)
|
||||
{
|
||||
QMenu myContextMenu(this);
|
||||
// Enable/disable pause/start action given the DL state
|
||||
@@ -180,12 +180,12 @@ void PluginSelectDlg::displayContextMenu(const QPoint&)
|
||||
myContextMenu.exec(QCursor::pos());
|
||||
}
|
||||
|
||||
void PluginSelectDlg::on_closeButton_clicked()
|
||||
void PluginSelectDialog::on_closeButton_clicked()
|
||||
{
|
||||
close();
|
||||
}
|
||||
|
||||
void PluginSelectDlg::on_actionUninstall_triggered()
|
||||
void PluginSelectDialog::on_actionUninstall_triggered()
|
||||
{
|
||||
bool error = false;
|
||||
foreach (QTreeWidgetItem *item, m_ui->pluginsTree->selectedItems()) {
|
||||
@@ -210,7 +210,7 @@ void PluginSelectDlg::on_actionUninstall_triggered()
|
||||
QMessageBox::information(this, tr("Uninstall success"), tr("All selected plugins were uninstalled successfully"));
|
||||
}
|
||||
|
||||
void PluginSelectDlg::enableSelection(bool enable)
|
||||
void PluginSelectDialog::enableSelection(bool enable)
|
||||
{
|
||||
foreach (QTreeWidgetItem *item, m_ui->pluginsTree->selectedItems()) {
|
||||
int index = m_ui->pluginsTree->indexOfTopLevelItem(item);
|
||||
@@ -229,7 +229,7 @@ void PluginSelectDlg::enableSelection(bool enable)
|
||||
}
|
||||
|
||||
// Set the color of a row in data model
|
||||
void PluginSelectDlg::setRowColor(int row, QString color)
|
||||
void PluginSelectDialog::setRowColor(int row, QString color)
|
||||
{
|
||||
QTreeWidgetItem *item = m_ui->pluginsTree->topLevelItem(row);
|
||||
for (int i = 0; i < m_ui->pluginsTree->columnCount(); ++i) {
|
||||
@@ -237,7 +237,7 @@ void PluginSelectDlg::setRowColor(int row, QString color)
|
||||
}
|
||||
}
|
||||
|
||||
QList<QTreeWidgetItem*> PluginSelectDlg::findItemsWithUrl(QString url)
|
||||
QList<QTreeWidgetItem*> PluginSelectDialog::findItemsWithUrl(QString url)
|
||||
{
|
||||
QList<QTreeWidgetItem*> res;
|
||||
|
||||
@@ -250,7 +250,7 @@ QList<QTreeWidgetItem*> PluginSelectDlg::findItemsWithUrl(QString url)
|
||||
return res;
|
||||
}
|
||||
|
||||
QTreeWidgetItem *PluginSelectDlg::findItemWithID(QString id)
|
||||
QTreeWidgetItem *PluginSelectDialog::findItemWithID(QString id)
|
||||
{
|
||||
for (int i = 0; i < m_ui->pluginsTree->topLevelItemCount(); ++i) {
|
||||
QTreeWidgetItem *item = m_ui->pluginsTree->topLevelItem(i);
|
||||
@@ -261,7 +261,7 @@ QTreeWidgetItem *PluginSelectDlg::findItemWithID(QString id)
|
||||
return 0;
|
||||
}
|
||||
|
||||
void PluginSelectDlg::loadSupportedSearchPlugins()
|
||||
void PluginSelectDialog::loadSupportedSearchPlugins()
|
||||
{
|
||||
// Some clean up first
|
||||
m_ui->pluginsTree->clear();
|
||||
@@ -269,7 +269,7 @@ void PluginSelectDlg::loadSupportedSearchPlugins()
|
||||
addNewPlugin(name);
|
||||
}
|
||||
|
||||
void PluginSelectDlg::addNewPlugin(QString pluginName)
|
||||
void PluginSelectDialog::addNewPlugin(QString pluginName)
|
||||
{
|
||||
QTreeWidgetItem *item = new QTreeWidgetItem(m_ui->pluginsTree);
|
||||
PluginInfo *plugin = m_pluginManager->pluginInfo(pluginName);
|
||||
@@ -294,27 +294,27 @@ void PluginSelectDlg::addNewPlugin(QString pluginName)
|
||||
using namespace Net;
|
||||
DownloadHandler *handler = DownloadManager::instance()->downloadUrl(plugin->url + "/favicon.ico", true);
|
||||
connect(handler, static_cast<void (DownloadHandler::*)(const QString &, const QString &)>(&DownloadHandler::downloadFinished)
|
||||
, this, &PluginSelectDlg::iconDownloaded);
|
||||
connect(handler, &DownloadHandler::downloadFailed, this, &PluginSelectDlg::iconDownloadFailed);
|
||||
, this, &PluginSelectDialog::iconDownloaded);
|
||||
connect(handler, &DownloadHandler::downloadFailed, this, &PluginSelectDialog::iconDownloadFailed);
|
||||
}
|
||||
item->setText(PLUGIN_VERSION, plugin->version);
|
||||
}
|
||||
|
||||
void PluginSelectDlg::startAsyncOp()
|
||||
void PluginSelectDialog::startAsyncOp()
|
||||
{
|
||||
++m_asyncOps;
|
||||
if (m_asyncOps == 1)
|
||||
setCursor(QCursor(Qt::WaitCursor));
|
||||
}
|
||||
|
||||
void PluginSelectDlg::finishAsyncOp()
|
||||
void PluginSelectDialog::finishAsyncOp()
|
||||
{
|
||||
--m_asyncOps;
|
||||
if (m_asyncOps == 0)
|
||||
setCursor(QCursor(Qt::ArrowCursor));
|
||||
}
|
||||
|
||||
void PluginSelectDlg::finishPluginUpdate()
|
||||
void PluginSelectDialog::finishPluginUpdate()
|
||||
{
|
||||
--m_pendingUpdates;
|
||||
if (m_pendingUpdates == 0 && !m_updatedPlugins.isEmpty()) {
|
||||
@@ -324,14 +324,14 @@ void PluginSelectDlg::finishPluginUpdate()
|
||||
}
|
||||
}
|
||||
|
||||
void PluginSelectDlg::on_installButton_clicked()
|
||||
void PluginSelectDialog::on_installButton_clicked()
|
||||
{
|
||||
PluginSourceDlg *dlg = new PluginSourceDlg(this);
|
||||
connect(dlg, &PluginSourceDlg::askForLocalFile, this, &PluginSelectDlg::askForLocalPlugin);
|
||||
connect(dlg, &PluginSourceDlg::askForUrl, this, &PluginSelectDlg::askForPluginUrl);
|
||||
PluginSourceDialog *dlg = new PluginSourceDialog(this);
|
||||
connect(dlg, &PluginSourceDialog::askForLocalFile, this, &PluginSelectDialog::askForLocalPlugin);
|
||||
connect(dlg, &PluginSourceDialog::askForUrl, this, &PluginSelectDialog::askForPluginUrl);
|
||||
}
|
||||
|
||||
void PluginSelectDlg::askForPluginUrl()
|
||||
void PluginSelectDialog::askForPluginUrl()
|
||||
{
|
||||
bool ok = false;
|
||||
QString clipTxt = qApp->clipboard()->text();
|
||||
@@ -357,7 +357,7 @@ void PluginSelectDlg::askForPluginUrl()
|
||||
}
|
||||
}
|
||||
|
||||
void PluginSelectDlg::askForLocalPlugin()
|
||||
void PluginSelectDialog::askForLocalPlugin()
|
||||
{
|
||||
QStringList pathsList = QFileDialog::getOpenFileNames(
|
||||
0, tr("Select search plugins"), QDir::homePath(),
|
||||
@@ -369,7 +369,7 @@ void PluginSelectDlg::askForLocalPlugin()
|
||||
}
|
||||
}
|
||||
|
||||
void PluginSelectDlg::iconDownloaded(const QString &url, QString filePath)
|
||||
void PluginSelectDialog::iconDownloaded(const QString &url, QString filePath)
|
||||
{
|
||||
filePath = Utils::Fs::fromNativePath(filePath);
|
||||
|
||||
@@ -409,12 +409,12 @@ void PluginSelectDlg::iconDownloaded(const QString &url, QString filePath)
|
||||
Utils::Fs::forceRemove(filePath);
|
||||
}
|
||||
|
||||
void PluginSelectDlg::iconDownloadFailed(const QString &url, const QString &reason)
|
||||
void PluginSelectDialog::iconDownloadFailed(const QString &url, const QString &reason)
|
||||
{
|
||||
qDebug("Could not download favicon: %s, reason: %s", qUtf8Printable(url), qUtf8Printable(reason));
|
||||
}
|
||||
|
||||
void PluginSelectDlg::checkForUpdatesFinished(const QHash<QString, PluginVersion> &updateInfo)
|
||||
void PluginSelectDialog::checkForUpdatesFinished(const QHash<QString, PluginVersion> &updateInfo)
|
||||
{
|
||||
finishAsyncOp();
|
||||
if (updateInfo.isEmpty()) {
|
||||
@@ -429,13 +429,13 @@ void PluginSelectDlg::checkForUpdatesFinished(const QHash<QString, PluginVersion
|
||||
}
|
||||
}
|
||||
|
||||
void PluginSelectDlg::checkForUpdatesFailed(const QString &reason)
|
||||
void PluginSelectDialog::checkForUpdatesFailed(const QString &reason)
|
||||
{
|
||||
finishAsyncOp();
|
||||
QMessageBox::warning(this, tr("Search plugin update"), tr("Sorry, couldn't check for plugin updates. %1").arg(reason));
|
||||
}
|
||||
|
||||
void PluginSelectDlg::pluginInstalled(const QString &name)
|
||||
void PluginSelectDialog::pluginInstalled(const QString &name)
|
||||
{
|
||||
addNewPlugin(name);
|
||||
finishAsyncOp();
|
||||
@@ -443,7 +443,7 @@ void PluginSelectDlg::pluginInstalled(const QString &name)
|
||||
finishPluginUpdate();
|
||||
}
|
||||
|
||||
void PluginSelectDlg::pluginInstallationFailed(const QString &name, const QString &reason)
|
||||
void PluginSelectDialog::pluginInstallationFailed(const QString &name, const QString &reason)
|
||||
{
|
||||
finishAsyncOp();
|
||||
QMessageBox::information(this, tr("Search plugin install")
|
||||
@@ -451,7 +451,7 @@ void PluginSelectDlg::pluginInstallationFailed(const QString &name, const QStrin
|
||||
finishPluginUpdate();
|
||||
}
|
||||
|
||||
void PluginSelectDlg::pluginUpdated(const QString &name)
|
||||
void PluginSelectDialog::pluginUpdated(const QString &name)
|
||||
{
|
||||
finishAsyncOp();
|
||||
PluginVersion version = m_pluginManager->pluginInfo(name)->version;
|
||||
@@ -461,7 +461,7 @@ void PluginSelectDlg::pluginUpdated(const QString &name)
|
||||
finishPluginUpdate();
|
||||
}
|
||||
|
||||
void PluginSelectDlg::pluginUpdateFailed(const QString &name, const QString &reason)
|
||||
void PluginSelectDialog::pluginUpdateFailed(const QString &name, const QString &reason)
|
||||
{
|
||||
finishAsyncOp();
|
||||
QMessageBox::information(this, tr("Search plugin update")
|
||||
@@ -27,8 +27,8 @@
|
||||
* exception statement from your version.
|
||||
*/
|
||||
|
||||
#ifndef PLUGINSELECTDLG_H
|
||||
#define PLUGINSELECTDLG_H
|
||||
#ifndef PLUGINSELECTDIALOG_H
|
||||
#define PLUGINSELECTDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
@@ -40,16 +40,16 @@ class QTreeWidgetItem;
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class PluginSelectDlg;
|
||||
class PluginSelectDialog;
|
||||
}
|
||||
|
||||
class PluginSelectDlg : public QDialog
|
||||
class PluginSelectDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PluginSelectDlg(SearchPluginManager *pluginManager, QWidget *parent = nullptr);
|
||||
~PluginSelectDlg();
|
||||
explicit PluginSelectDialog(SearchPluginManager *pluginManager, QWidget *parent = nullptr);
|
||||
~PluginSelectDialog();
|
||||
|
||||
QList<QTreeWidgetItem*> findItemsWithUrl(QString url);
|
||||
QTreeWidgetItem *findItemWithID(QString id);
|
||||
@@ -86,11 +86,11 @@ private:
|
||||
void finishAsyncOp();
|
||||
void finishPluginUpdate();
|
||||
|
||||
Ui::PluginSelectDlg *m_ui;
|
||||
Ui::PluginSelectDialog *m_ui;
|
||||
SearchPluginManager *m_pluginManager;
|
||||
QStringList m_updatedPlugins;
|
||||
int m_asyncOps;
|
||||
int m_pendingUpdates;
|
||||
};
|
||||
|
||||
#endif // PLUGINSELECTDLG_H
|
||||
#endif // PLUGINSELECTDIALOG_H
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>PluginSelectDlg</class>
|
||||
<widget class="QDialog" name="PluginSelectDlg">
|
||||
<class>PluginSelectDialog</class>
|
||||
<widget class="QDialog" name="PluginSelectDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
@@ -26,14 +26,14 @@
|
||||
* exception statement from your version.
|
||||
*/
|
||||
|
||||
#include "pluginsourcedlg.h"
|
||||
#include "pluginsourcedialog.h"
|
||||
|
||||
#include "ui_pluginsourcedlg.h"
|
||||
#include "ui_pluginsourcedialog.h"
|
||||
#include "utils.h"
|
||||
|
||||
PluginSourceDlg::PluginSourceDlg(QWidget *parent)
|
||||
PluginSourceDialog::PluginSourceDialog(QWidget *parent)
|
||||
: QDialog(parent)
|
||||
, m_ui(new Ui::PluginSourceDlg())
|
||||
, m_ui(new Ui::PluginSourceDialog())
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
@@ -42,18 +42,18 @@ PluginSourceDlg::PluginSourceDlg(QWidget *parent)
|
||||
show();
|
||||
}
|
||||
|
||||
PluginSourceDlg::~PluginSourceDlg()
|
||||
PluginSourceDialog::~PluginSourceDialog()
|
||||
{
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
void PluginSourceDlg::on_localButton_clicked()
|
||||
void PluginSourceDialog::on_localButton_clicked()
|
||||
{
|
||||
emit askForLocalFile();
|
||||
close();
|
||||
}
|
||||
|
||||
void PluginSourceDlg::on_urlButton_clicked()
|
||||
void PluginSourceDialog::on_urlButton_clicked()
|
||||
{
|
||||
emit askForUrl();
|
||||
close();
|
||||
@@ -26,23 +26,23 @@
|
||||
* exception statement from your version.
|
||||
*/
|
||||
|
||||
#ifndef PLUGINSOURCEDLG_H
|
||||
#define PLUGINSOURCEDLG_H
|
||||
#ifndef PLUGINSOURCEDIALOG_H
|
||||
#define PLUGINSOURCEDIALOG_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class PluginSourceDlg;
|
||||
class PluginSourceDialog;
|
||||
}
|
||||
|
||||
class PluginSourceDlg : public QDialog
|
||||
class PluginSourceDialog : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit PluginSourceDlg(QWidget *parent = nullptr);
|
||||
~PluginSourceDlg();
|
||||
explicit PluginSourceDialog(QWidget *parent = nullptr);
|
||||
~PluginSourceDialog();
|
||||
|
||||
signals:
|
||||
void askForUrl();
|
||||
@@ -53,7 +53,7 @@ private slots:
|
||||
void on_urlButton_clicked();
|
||||
|
||||
private:
|
||||
Ui::PluginSourceDlg *m_ui;
|
||||
Ui::PluginSourceDialog *m_ui;
|
||||
};
|
||||
|
||||
#endif // PLUGINSOURCEDLG_H
|
||||
#endif // PLUGINSOURCEDIALOG_H
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>PluginSourceDlg</class>
|
||||
<widget class="QDialog" name="PluginSourceDlg">
|
||||
<class>PluginSourceDialog</class>
|
||||
<widget class="QDialog" name="PluginSourceDialog">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
@@ -27,7 +27,7 @@
|
||||
* exception statement from your version.
|
||||
*/
|
||||
|
||||
#include "searchtab.h"
|
||||
#include "searchjobwidget.h"
|
||||
|
||||
#include <QApplication>
|
||||
#include <QClipboard>
|
||||
@@ -54,11 +54,11 @@
|
||||
#include "guiiconprovider.h"
|
||||
#include "searchlistdelegate.h"
|
||||
#include "searchsortmodel.h"
|
||||
#include "ui_searchtab.h"
|
||||
#include "ui_searchjobwidget.h"
|
||||
|
||||
SearchTab::SearchTab(SearchHandler *searchHandler, QWidget *parent)
|
||||
SearchJobWidget::SearchJobWidget(SearchHandler *searchHandler, QWidget *parent)
|
||||
: QWidget(parent)
|
||||
, m_ui(new Ui::SearchTab)
|
||||
, m_ui(new Ui::SearchJobWidget)
|
||||
, m_searchHandler(searchHandler)
|
||||
{
|
||||
m_ui->setupUi(this);
|
||||
@@ -120,61 +120,61 @@ SearchTab::SearchTab(SearchHandler *searchHandler, QWidget *parent)
|
||||
m_ui->resultsBrowser->resizeColumnToContents(i);
|
||||
|
||||
header()->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(header(), &QWidget::customContextMenuRequested, this, &SearchTab::displayToggleColumnsMenu);
|
||||
connect(header(), &QHeaderView::sectionResized, this, &SearchTab::saveSettings);
|
||||
connect(header(), &QHeaderView::sectionMoved, this, &SearchTab::saveSettings);
|
||||
connect(header(), &QHeaderView::sortIndicatorChanged, this, &SearchTab::saveSettings);
|
||||
connect(header(), &QWidget::customContextMenuRequested, this, &SearchJobWidget::displayToggleColumnsMenu);
|
||||
connect(header(), &QHeaderView::sectionResized, this, &SearchJobWidget::saveSettings);
|
||||
connect(header(), &QHeaderView::sectionMoved, this, &SearchJobWidget::saveSettings);
|
||||
connect(header(), &QHeaderView::sortIndicatorChanged, this, &SearchJobWidget::saveSettings);
|
||||
|
||||
fillFilterComboBoxes();
|
||||
|
||||
updateFilter();
|
||||
|
||||
connect(m_ui->filterMode, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged)
|
||||
, this, &SearchTab::updateFilter);
|
||||
connect(m_ui->minSeeds, &QAbstractSpinBox::editingFinished, this, &SearchTab::updateFilter);
|
||||
, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->minSeeds, &QAbstractSpinBox::editingFinished, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->minSeeds, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged)
|
||||
, this, &SearchTab::updateFilter);
|
||||
connect(m_ui->maxSeeds, &QAbstractSpinBox::editingFinished, this, &SearchTab::updateFilter);
|
||||
, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->maxSeeds, &QAbstractSpinBox::editingFinished, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->maxSeeds, static_cast<void (QSpinBox::*)(int)>(&QSpinBox::valueChanged)
|
||||
, this, &SearchTab::updateFilter);
|
||||
connect(m_ui->minSize, &QAbstractSpinBox::editingFinished, this, &SearchTab::updateFilter);
|
||||
, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->minSize, &QAbstractSpinBox::editingFinished, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->minSize, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged)
|
||||
, this, &SearchTab::updateFilter);
|
||||
connect(m_ui->maxSize, &QAbstractSpinBox::editingFinished, this, &SearchTab::updateFilter);
|
||||
, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->maxSize, &QAbstractSpinBox::editingFinished, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->maxSize, static_cast<void (QDoubleSpinBox::*)(double)>(&QDoubleSpinBox::valueChanged)
|
||||
, this, &SearchTab::updateFilter);
|
||||
, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->minSizeUnit, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged)
|
||||
, this, &SearchTab::updateFilter);
|
||||
, this, &SearchJobWidget::updateFilter);
|
||||
connect(m_ui->maxSizeUnit, static_cast<void (QComboBox::*)(int)>(&QComboBox::currentIndexChanged)
|
||||
, this, &SearchTab::updateFilter);
|
||||
, this, &SearchJobWidget::updateFilter);
|
||||
|
||||
connect(m_ui->resultsBrowser, &QAbstractItemView::doubleClicked, this, &SearchTab::onItemDoubleClicked);
|
||||
connect(m_ui->resultsBrowser, &QAbstractItemView::doubleClicked, this, &SearchJobWidget::onItemDoubleClicked);
|
||||
|
||||
connect(searchHandler, &SearchHandler::newSearchResults, this, &SearchTab::appendSearchResults);
|
||||
connect(searchHandler, &SearchHandler::searchFinished, this, &SearchTab::searchFinished);
|
||||
connect(searchHandler, &SearchHandler::searchFailed, this, &SearchTab::searchFailed);
|
||||
connect(searchHandler, &SearchHandler::newSearchResults, this, &SearchJobWidget::appendSearchResults);
|
||||
connect(searchHandler, &SearchHandler::searchFinished, this, &SearchJobWidget::searchFinished);
|
||||
connect(searchHandler, &SearchHandler::searchFailed, this, &SearchJobWidget::searchFailed);
|
||||
connect(this, &QObject::destroyed, searchHandler, &QObject::deleteLater);
|
||||
}
|
||||
|
||||
SearchTab::~SearchTab()
|
||||
SearchJobWidget::~SearchJobWidget()
|
||||
{
|
||||
saveSettings();
|
||||
delete m_ui;
|
||||
}
|
||||
|
||||
void SearchTab::onItemDoubleClicked(const QModelIndex &index)
|
||||
void SearchJobWidget::onItemDoubleClicked(const QModelIndex &index)
|
||||
{
|
||||
setRowColor(index.row(), QApplication::palette().color(QPalette::LinkVisited));
|
||||
downloadTorrent(index);
|
||||
}
|
||||
|
||||
QHeaderView *SearchTab::header() const
|
||||
QHeaderView *SearchJobWidget::header() const
|
||||
{
|
||||
return m_ui->resultsBrowser->header();
|
||||
}
|
||||
|
||||
// Set the color of a row in data model
|
||||
void SearchTab::setRowColor(int row, const QColor &color)
|
||||
void SearchJobWidget::setRowColor(int row, const QColor &color)
|
||||
{
|
||||
m_proxyModel->setDynamicSortFilter(false);
|
||||
for (int i = 0; i < m_proxyModel->columnCount(); ++i)
|
||||
@@ -183,29 +183,29 @@ void SearchTab::setRowColor(int row, const QColor &color)
|
||||
m_proxyModel->setDynamicSortFilter(true);
|
||||
}
|
||||
|
||||
SearchTab::Status SearchTab::status() const
|
||||
SearchJobWidget::Status SearchJobWidget::status() const
|
||||
{
|
||||
return m_status;
|
||||
}
|
||||
|
||||
int SearchTab::visibleResultsCount() const
|
||||
int SearchJobWidget::visibleResultsCount() const
|
||||
{
|
||||
return m_proxyModel->rowCount();
|
||||
}
|
||||
|
||||
void SearchTab::cancelSearch()
|
||||
void SearchJobWidget::cancelSearch()
|
||||
{
|
||||
m_searchHandler->cancelSearch();
|
||||
}
|
||||
|
||||
void SearchTab::downloadTorrents()
|
||||
void SearchJobWidget::downloadTorrents()
|
||||
{
|
||||
const QModelIndexList rows {m_ui->resultsBrowser->selectionModel()->selectedRows()};
|
||||
for (const QModelIndex &rowIndex : rows)
|
||||
downloadTorrent(rowIndex);
|
||||
}
|
||||
|
||||
void SearchTab::openTorrentPages()
|
||||
void SearchJobWidget::openTorrentPages()
|
||||
{
|
||||
const QModelIndexList rows {m_ui->resultsBrowser->selectionModel()->selectedRows()};
|
||||
for (const QModelIndex &rowIndex : rows) {
|
||||
@@ -216,7 +216,7 @@ void SearchTab::openTorrentPages()
|
||||
}
|
||||
}
|
||||
|
||||
void SearchTab::copyTorrentURLs()
|
||||
void SearchJobWidget::copyTorrentURLs()
|
||||
{
|
||||
const QModelIndexList rows {m_ui->resultsBrowser->selectionModel()->selectedRows()};
|
||||
QStringList urls;
|
||||
@@ -233,7 +233,7 @@ void SearchTab::copyTorrentURLs()
|
||||
}
|
||||
}
|
||||
|
||||
void SearchTab::setStatus(Status value)
|
||||
void SearchJobWidget::setStatus(Status value)
|
||||
{
|
||||
if (m_status == value) return;
|
||||
|
||||
@@ -242,7 +242,7 @@ void SearchTab::setStatus(Status value)
|
||||
emit statusChanged();
|
||||
}
|
||||
|
||||
void SearchTab::downloadTorrent(const QModelIndex &rowIndex)
|
||||
void SearchJobWidget::downloadTorrent(const QModelIndex &rowIndex)
|
||||
{
|
||||
const QString torrentUrl = m_proxyModel->data(
|
||||
m_proxyModel->index(rowIndex.row(), SearchSortModel::DL_LINK)).toString();
|
||||
@@ -254,12 +254,12 @@ void SearchTab::downloadTorrent(const QModelIndex &rowIndex)
|
||||
}
|
||||
else {
|
||||
SearchDownloadHandler *downloadHandler = m_searchHandler->manager()->downloadTorrent(siteUrl, torrentUrl);
|
||||
connect(downloadHandler, &SearchDownloadHandler::downloadFinished, this, &SearchTab::addTorrentToSession);
|
||||
connect(downloadHandler, &SearchDownloadHandler::downloadFinished, this, &SearchJobWidget::addTorrentToSession);
|
||||
connect(downloadHandler, &SearchDownloadHandler::downloadFinished, downloadHandler, &SearchDownloadHandler::deleteLater);
|
||||
}
|
||||
}
|
||||
|
||||
void SearchTab::addTorrentToSession(const QString &source)
|
||||
void SearchJobWidget::addTorrentToSession(const QString &source)
|
||||
{
|
||||
if (source.isEmpty()) return;
|
||||
|
||||
@@ -269,7 +269,7 @@ void SearchTab::addTorrentToSession(const QString &source)
|
||||
BitTorrent::Session::instance()->addTorrent(source);
|
||||
}
|
||||
|
||||
void SearchTab::updateResultsCount()
|
||||
void SearchJobWidget::updateResultsCount()
|
||||
{
|
||||
const int totalResults = m_searchListModel->rowCount();
|
||||
const int filteredResults = m_proxyModel->rowCount();
|
||||
@@ -280,7 +280,7 @@ void SearchTab::updateResultsCount()
|
||||
emit resultsCountUpdated();
|
||||
}
|
||||
|
||||
void SearchTab::updateFilter()
|
||||
void SearchJobWidget::updateFilter()
|
||||
{
|
||||
using Utils::Misc::SizeUnit;
|
||||
|
||||
@@ -297,7 +297,7 @@ void SearchTab::updateFilter()
|
||||
updateResultsCount();
|
||||
}
|
||||
|
||||
void SearchTab::fillFilterComboBoxes()
|
||||
void SearchJobWidget::fillFilterComboBoxes()
|
||||
{
|
||||
using Utils::Misc::SizeUnit;
|
||||
QStringList unitStrings;
|
||||
@@ -330,7 +330,7 @@ void SearchTab::fillFilterComboBoxes()
|
||||
m_ui->filterMode->setCurrentIndex((index == -1) ? 0 : index);
|
||||
}
|
||||
|
||||
QString SearchTab::statusText(SearchTab::Status st)
|
||||
QString SearchJobWidget::statusText(SearchJobWidget::Status st)
|
||||
{
|
||||
switch (st) {
|
||||
case Status::Ongoing:
|
||||
@@ -348,22 +348,22 @@ QString SearchTab::statusText(SearchTab::Status st)
|
||||
}
|
||||
}
|
||||
|
||||
SearchTab::NameFilteringMode SearchTab::filteringMode() const
|
||||
SearchJobWidget::NameFilteringMode SearchJobWidget::filteringMode() const
|
||||
{
|
||||
return static_cast<NameFilteringMode>(m_ui->filterMode->itemData(m_ui->filterMode->currentIndex()).toInt());
|
||||
}
|
||||
|
||||
void SearchTab::loadSettings()
|
||||
void SearchJobWidget::loadSettings()
|
||||
{
|
||||
header()->restoreState(Preferences::instance()->getSearchTabHeaderState());
|
||||
}
|
||||
|
||||
void SearchTab::saveSettings() const
|
||||
void SearchJobWidget::saveSettings() const
|
||||
{
|
||||
Preferences::instance()->setSearchTabHeaderState(header()->saveState());
|
||||
}
|
||||
|
||||
void SearchTab::displayToggleColumnsMenu(const QPoint&)
|
||||
void SearchJobWidget::displayToggleColumnsMenu(const QPoint&)
|
||||
{
|
||||
QMenu hideshowColumn(this);
|
||||
hideshowColumn.setTitle(tr("Column visibility"));
|
||||
@@ -398,7 +398,7 @@ void SearchTab::displayToggleColumnsMenu(const QPoint&)
|
||||
}
|
||||
}
|
||||
|
||||
void SearchTab::searchFinished(bool cancelled)
|
||||
void SearchJobWidget::searchFinished(bool cancelled)
|
||||
{
|
||||
if (cancelled)
|
||||
setStatus(Status::Aborted);
|
||||
@@ -408,12 +408,12 @@ void SearchTab::searchFinished(bool cancelled)
|
||||
setStatus(Status::Finished);
|
||||
}
|
||||
|
||||
void SearchTab::searchFailed()
|
||||
void SearchJobWidget::searchFailed()
|
||||
{
|
||||
setStatus(Status::Error);
|
||||
}
|
||||
|
||||
void SearchTab::appendSearchResults(const QList<SearchResult> &results)
|
||||
void SearchJobWidget::appendSearchResults(const QList<SearchResult> &results)
|
||||
{
|
||||
for (const SearchResult &result : results) {
|
||||
// Add item to search result list
|
||||
@@ -432,7 +432,7 @@ void SearchTab::appendSearchResults(const QList<SearchResult> &results)
|
||||
updateResultsCount();
|
||||
}
|
||||
|
||||
CachedSettingValue<SearchTab::NameFilteringMode> &SearchTab::nameFilteringModeSetting()
|
||||
CachedSettingValue<SearchJobWidget::NameFilteringMode> &SearchJobWidget::nameFilteringModeSetting()
|
||||
{
|
||||
static CachedSettingValue<NameFilteringMode> setting("Search/FilteringMode", NameFilteringMode::OnlyNames);
|
||||
return setting;
|
||||
@@ -50,13 +50,13 @@ struct SearchResult;
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
class SearchTab;
|
||||
class SearchJobWidget;
|
||||
}
|
||||
|
||||
class SearchTab : public QWidget
|
||||
class SearchJobWidget : public QWidget
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_DISABLE_COPY(SearchTab)
|
||||
Q_DISABLE_COPY(SearchJobWidget)
|
||||
|
||||
public:
|
||||
enum class NameFilteringMode
|
||||
@@ -75,8 +75,8 @@ public:
|
||||
NoResults
|
||||
};
|
||||
|
||||
explicit SearchTab(SearchHandler *searchHandler, QWidget *parent = nullptr);
|
||||
~SearchTab() override;
|
||||
explicit SearchJobWidget(SearchHandler *searchHandler, QWidget *parent = nullptr);
|
||||
~SearchJobWidget() override;
|
||||
|
||||
Status status() const;
|
||||
int visibleResultsCount() const;
|
||||
@@ -112,7 +112,7 @@ private:
|
||||
static QString statusText(Status st);
|
||||
static CachedSettingValue<NameFilteringMode> &nameFilteringModeSetting();
|
||||
|
||||
Ui::SearchTab *m_ui;
|
||||
Ui::SearchJobWidget *m_ui;
|
||||
SearchHandler *m_searchHandler;
|
||||
QStandardItemModel *m_searchListModel;
|
||||
SearchSortModel *m_proxyModel;
|
||||
@@ -121,4 +121,4 @@ private:
|
||||
bool m_noSearchResults = true;
|
||||
};
|
||||
|
||||
Q_DECLARE_METATYPE(SearchTab::NameFilteringMode)
|
||||
Q_DECLARE_METATYPE(SearchJobWidget::NameFilteringMode)
|
||||
@@ -1,7 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<ui version="4.0">
|
||||
<class>SearchTab</class>
|
||||
<widget class="QWidget" name="SearchTab">
|
||||
<class>SearchJobWidget</class>
|
||||
<widget class="QWidget" name="SearchJobWidget">
|
||||
<property name="geometry">
|
||||
<rect>
|
||||
<x>0</x>
|
||||
@@ -61,10 +61,10 @@
|
||||
#include "addnewtorrentdialog.h"
|
||||
#include "guiiconprovider.h"
|
||||
#include "mainwindow.h"
|
||||
#include "pluginselectdlg.h"
|
||||
#include "pluginselectdialog.h"
|
||||
#include "searchlistdelegate.h"
|
||||
#include "searchsortmodel.h"
|
||||
#include "searchtab.h"
|
||||
#include "searchjobwidget.h"
|
||||
#include "ui_searchwidget.h"
|
||||
|
||||
#define SEARCHHISTORY_MAXSIZE 50
|
||||
@@ -72,18 +72,18 @@
|
||||
|
||||
namespace
|
||||
{
|
||||
QString statusIconName(SearchTab::Status st)
|
||||
QString statusIconName(SearchJobWidget::Status st)
|
||||
{
|
||||
switch (st) {
|
||||
case SearchTab::Status::Ongoing:
|
||||
case SearchJobWidget::Status::Ongoing:
|
||||
return QLatin1String("task-ongoing");
|
||||
case SearchTab::Status::Finished:
|
||||
case SearchJobWidget::Status::Finished:
|
||||
return QLatin1String("task-complete");
|
||||
case SearchTab::Status::Aborted:
|
||||
case SearchJobWidget::Status::Aborted:
|
||||
return QLatin1String("task-reject");
|
||||
case SearchTab::Status::Error:
|
||||
case SearchJobWidget::Status::Error:
|
||||
return QLatin1String("task-attention");
|
||||
case SearchTab::Status::NoResults:
|
||||
case SearchJobWidget::Status::NoResults:
|
||||
return QLatin1String("task-attention");
|
||||
default:
|
||||
return QString();
|
||||
@@ -267,7 +267,7 @@ void SearchWidget::selectMultipleBox(int index)
|
||||
|
||||
void SearchWidget::on_pluginsButton_clicked()
|
||||
{
|
||||
new PluginSelectDlg(SearchPluginManager::instance(), this);
|
||||
new PluginSelectDialog(SearchPluginManager::instance(), this);
|
||||
}
|
||||
|
||||
void SearchWidget::searchTextEdited(QString)
|
||||
@@ -323,7 +323,7 @@ void SearchWidget::on_searchButton_clicked()
|
||||
auto *searchHandler = SearchPluginManager::instance()->startSearch(pattern, selectedCategory(), plugins);
|
||||
|
||||
// Tab Addition
|
||||
auto *newTab = new SearchTab(searchHandler, this);
|
||||
auto *newTab = new SearchJobWidget(searchHandler, this);
|
||||
m_allTabs.append(newTab);
|
||||
|
||||
QString tabName = pattern;
|
||||
@@ -331,8 +331,8 @@ void SearchWidget::on_searchButton_clicked()
|
||||
m_ui->tabWidget->addTab(newTab, tabName);
|
||||
m_ui->tabWidget->setCurrentWidget(newTab);
|
||||
|
||||
connect(newTab, &SearchTab::resultsCountUpdated, this, &SearchWidget::resultsCountUpdated);
|
||||
connect(newTab, &SearchTab::statusChanged
|
||||
connect(newTab, &SearchJobWidget::resultsCountUpdated, this, &SearchWidget::resultsCountUpdated);
|
||||
connect(newTab, &SearchJobWidget::statusChanged
|
||||
, m_tabStatusChangedMapper, static_cast<void (QSignalMapper::*)()>(&QSignalMapper::map));
|
||||
m_tabStatusChangedMapper->setMapping(newTab, newTab);
|
||||
|
||||
@@ -351,13 +351,13 @@ void SearchWidget::tabStatusChanged(QWidget *tab)
|
||||
const int tabIndex = m_ui->tabWidget->indexOf(tab);
|
||||
m_ui->tabWidget->setTabToolTip(tabIndex, tab->statusTip());
|
||||
m_ui->tabWidget->setTabIcon(tabIndex, GuiIconProvider::instance()->getIcon(
|
||||
statusIconName(static_cast<SearchTab *>(tab)->status())));
|
||||
statusIconName(static_cast<SearchJobWidget *>(tab)->status())));
|
||||
|
||||
if ((tab == m_activeSearchTab) && (m_activeSearchTab->status() != SearchTab::Status::Ongoing)) {
|
||||
Q_ASSERT(m_activeSearchTab->status() != SearchTab::Status::Ongoing);
|
||||
if ((tab == m_activeSearchTab) && (m_activeSearchTab->status() != SearchJobWidget::Status::Ongoing)) {
|
||||
Q_ASSERT(m_activeSearchTab->status() != SearchJobWidget::Status::Ongoing);
|
||||
|
||||
if (m_mainWindow->isNotificationsEnabled() && (m_mainWindow->currentTabWidget() != this)) {
|
||||
if (m_activeSearchTab->status() == SearchTab::Status::Error)
|
||||
if (m_activeSearchTab->status() == SearchJobWidget::Status::Error)
|
||||
m_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Search has failed"));
|
||||
else
|
||||
m_mainWindow->showNotificationBaloon(tr("Search Engine"), tr("Search has finished"));
|
||||
@@ -370,7 +370,7 @@ void SearchWidget::tabStatusChanged(QWidget *tab)
|
||||
|
||||
void SearchWidget::closeTab(int index)
|
||||
{
|
||||
SearchTab *tab = m_allTabs.takeAt(index);
|
||||
SearchJobWidget *tab = m_allTabs.takeAt(index);
|
||||
if (tab == m_activeSearchTab)
|
||||
m_ui->searchButton->setText(tr("Search"));
|
||||
|
||||
|
||||
@@ -37,7 +37,7 @@ class QSignalMapper;
|
||||
class QTabWidget;
|
||||
|
||||
class MainWindow;
|
||||
class SearchTab;
|
||||
class SearchJobWidget;
|
||||
|
||||
namespace Ui
|
||||
{
|
||||
@@ -80,9 +80,9 @@ private:
|
||||
|
||||
Ui::SearchWidget *m_ui;
|
||||
QSignalMapper *m_tabStatusChangedMapper;
|
||||
QPointer<SearchTab> m_currentSearchTab; // Selected tab
|
||||
QPointer<SearchTab> m_activeSearchTab; // Tab with running search
|
||||
QList<SearchTab *> m_allTabs; // To store all tabs
|
||||
QPointer<SearchJobWidget> m_currentSearchTab; // Selected tab
|
||||
QPointer<SearchJobWidget> m_activeSearchTab; // Tab with running search
|
||||
QList<SearchJobWidget *> m_allTabs; // To store all tabs
|
||||
MainWindow *m_mainWindow;
|
||||
bool m_isNewQueryString;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user