qBittorrent
searchjobwidget.h
Go to the documentation of this file.
1
/*
2
* Bittorrent Client using Qt and libtorrent.
3
* Copyright (C) 2018 Vladimir Golovnev <
[email protected]
>
4
* Copyright (C) 2006 Christophe Dumez <
[email protected]
>
5
*
6
* This program is free software; you can redistribute it and/or
7
* modify it under the terms of the GNU General Public License
8
* as published by the Free Software Foundation; either version 2
9
* of the License, or (at your option) any later version.
10
*
11
* This program is distributed in the hope that it will be useful,
12
* but WITHOUT ANY WARRANTY; without even the implied warranty of
13
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14
* GNU General Public License for more details.
15
*
16
* You should have received a copy of the GNU General Public License
17
* along with this program; if not, write to the Free Software
18
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19
*
20
* In addition, as a special exception, the copyright holders give permission to
21
* link this program with the OpenSSL project's "OpenSSL" library (or with
22
* modified versions of it that use the same license as the "OpenSSL" library),
23
* and distribute the linked executables. You must obey the GNU General Public
24
* License in all respects for all of the code used other than "OpenSSL". If you
25
* modify file(s), you may extend this exception to your version of the file(s),
26
* but you are not obligated to do so. If you do not wish to do so, delete this
27
* exception statement from your version.
28
*/
29
30
#pragma once
31
32
#include <QWidget>
33
34
#define ENGINE_URL_COLUMN 4
35
#define URL_COLUMN 5
36
37
class
QHeaderView;
38
class
QModelIndex;
39
class
QStandardItemModel;
40
41
class
LineEdit
;
42
class
SearchHandler
;
43
class
SearchSortModel
;
44
struct
SearchResult
;
45
46
template
<
typename
T>
class
SettingValue
;
47
48
namespace
Ui
49
{
50
class
SearchJobWidget
;
51
}
52
53
class
SearchJobWidget
final :
public
QWidget
54
{
55
Q_OBJECT
56
Q_DISABLE_COPY_MOVE(
SearchJobWidget
)
57
58
public
:
59
enum class
NameFilteringMode
60
{
61
Everywhere
,
62
OnlyNames
63
};
64
Q_ENUM(
NameFilteringMode
)
65
66
enum class
Status
67
{
68
Ongoing,
69
Finished,
70
Error,
71
Aborted,
72
NoResults
73
};
74
75
explicit
SearchJobWidget
(
SearchHandler
*searchHandler, QWidget *parent =
nullptr
);
76
~SearchJobWidget
()
override
;
77
78
Status
status
()
const
;
79
int
visibleResultsCount
()
const
;
80
LineEdit
*
lineEditSearchResultsFilter
()
const
;
81
82
void
cancelSearch
();
83
84
signals:
85
void
resultsCountUpdated
();
86
void
statusChanged
();
87
88
protected
:
89
void
keyPressEvent
(QKeyEvent *event)
override
;
90
91
private
:
92
enum class
AddTorrentOption
93
{
94
Default
,
95
ShowDialog
,
96
SkipDialog
,
97
};
98
99
void
loadSettings
();
100
void
saveSettings
()
const
;
101
void
updateFilter
();
102
void
filterSearchResults
(
const
QString &name);
103
void
showFilterContextMenu
(
const
QPoint &);
104
void
contextMenuEvent
(QContextMenuEvent *event)
override
;
105
void
displayToggleColumnsMenu
(
const
QPoint &);
106
void
onItemDoubleClicked
(
const
QModelIndex &index);
107
void
searchFinished
(
bool
cancelled);
108
void
searchFailed
();
109
void
appendSearchResults
(
const
QVector<SearchResult> &results);
110
void
updateResultsCount
();
111
void
setStatus
(
Status
value
);
112
void
downloadTorrent
(
const
QModelIndex &rowIndex,
AddTorrentOption
option =
AddTorrentOption::Default
);
113
void
addTorrentToSession
(
const
QString &
source
,
AddTorrentOption
option =
AddTorrentOption::Default
);
114
void
fillFilterComboBoxes
();
115
NameFilteringMode
filteringMode
()
const
;
116
QHeaderView *
header
()
const
;
117
void
setRowColor
(
int
row,
const
QColor &color);
118
119
void
downloadTorrents
(
AddTorrentOption
option =
AddTorrentOption::Default
);
120
void
openTorrentPages
()
const
;
121
void
copyTorrentURLs
()
const
;
122
void
copyTorrentDownloadLinks
()
const
;
123
void
copyTorrentNames
()
const
;
124
void
copyField
(
int
column)
const
;
125
126
static
QString
statusText
(
Status
st);
127
static
SettingValue<NameFilteringMode>
&
nameFilteringModeSetting
();
128
129
Ui::SearchJobWidget *
m_ui
;
130
SearchHandler
*
m_searchHandler
;
131
QStandardItemModel *
m_searchListModel
;
132
SearchSortModel
*
m_proxyModel
;
133
LineEdit
*
m_lineEditSearchResultsFilter
;
134
Status
m_status
=
Status::Ongoing
;
135
bool
m_noSearchResults
=
true
;
136
};
137
138
Q_DECLARE_METATYPE(
SearchJobWidget::NameFilteringMode
)
LineEdit
Definition:
lineedit.h:17
SearchHandler
Definition:
searchhandler.h:55
SearchJobWidget
Definition:
searchjobwidget.h:54
SearchJobWidget::m_proxyModel
SearchSortModel * m_proxyModel
Definition:
searchjobwidget.h:132
SearchJobWidget::filteringMode
NameFilteringMode filteringMode() const
Definition:
searchjobwidget.cpp:438
SearchJobWidget::searchFailed
void searchFailed()
Definition:
searchjobwidget.cpp:505
SearchJobWidget::openTorrentPages
void openTorrentPages() const
Definition:
searchjobwidget.cpp:221
SearchJobWidget::m_lineEditSearchResultsFilter
LineEdit * m_lineEditSearchResultsFilter
Definition:
searchjobwidget.h:133
SearchJobWidget::setRowColor
void setRowColor(int row, const QColor &color)
Definition:
searchjobwidget.cpp:185
SearchJobWidget::statusText
static QString statusText(Status st)
Definition:
searchjobwidget.cpp:419
SearchJobWidget::copyTorrentURLs
void copyTorrentURLs() const
Definition:
searchjobwidget.cpp:233
SearchJobWidget::visibleResultsCount
int visibleResultsCount() const
Definition:
searchjobwidget.cpp:199
SearchJobWidget::header
QHeaderView * header() const
Definition:
searchjobwidget.cpp:179
SearchJobWidget::AddTorrentOption
AddTorrentOption
Definition:
searchjobwidget.h:93
SearchJobWidget::AddTorrentOption::SkipDialog
@ SkipDialog
SearchJobWidget::AddTorrentOption::ShowDialog
@ ShowDialog
SearchJobWidget::AddTorrentOption::Default
@ Default
SearchJobWidget::NameFilteringMode
NameFilteringMode
Definition:
searchjobwidget.h:60
SearchJobWidget::NameFilteringMode::Everywhere
@ Everywhere
SearchJobWidget::NameFilteringMode::OnlyNames
@ OnlyNames
SearchJobWidget::displayToggleColumnsMenu
void displayToggleColumnsMenu(const QPoint &)
Definition:
searchjobwidget.cpp:453
SearchJobWidget::~SearchJobWidget
~SearchJobWidget() override
Definition:
searchjobwidget.cpp:168
SearchJobWidget::status
Status status() const
Definition:
searchjobwidget.cpp:194
SearchJobWidget::statusChanged
void statusChanged()
SearchJobWidget::Status
Status
Definition:
searchjobwidget.h:67
SearchJobWidget::Status::Ongoing
@ Ongoing
SearchJobWidget::copyTorrentNames
void copyTorrentNames() const
Definition:
searchjobwidget.cpp:243
SearchJobWidget::loadSettings
void loadSettings()
Definition:
searchjobwidget.cpp:443
SearchJobWidget::m_noSearchResults
bool m_noSearchResults
Definition:
searchjobwidget.h:135
SearchJobWidget::appendSearchResults
void appendSearchResults(const QVector< SearchResult > &results)
Definition:
searchjobwidget.cpp:510
SearchJobWidget::m_status
Status m_status
Definition:
searchjobwidget.h:134
SearchJobWidget::downloadTorrent
void downloadTorrent(const QModelIndex &rowIndex, AddTorrentOption option=AddTorrentOption::Default)
Definition:
searchjobwidget.cpp:274
SearchJobWidget::downloadTorrents
void downloadTorrents(AddTorrentOption option=AddTorrentOption::Default)
Definition:
searchjobwidget.cpp:214
SearchJobWidget::updateResultsCount
void updateResultsCount()
Definition:
searchjobwidget.cpp:305
SearchJobWidget::keyPressEvent
void keyPressEvent(QKeyEvent *event) override
Definition:
searchjobwidget.cpp:548
SearchJobWidget::showFilterContextMenu
void showFilterContextMenu(const QPoint &)
Definition:
searchjobwidget.cpp:376
SearchJobWidget::saveSettings
void saveSettings() const
Definition:
searchjobwidget.cpp:448
SearchJobWidget::setStatus
void setStatus(Status value)
Definition:
searchjobwidget.cpp:265
SearchJobWidget::filterSearchResults
void filterSearchResults(const QString &name)
Definition:
searchjobwidget.cpp:368
SearchJobWidget::searchFinished
void searchFinished(bool cancelled)
Definition:
searchjobwidget.cpp:495
SearchJobWidget::m_searchHandler
SearchHandler * m_searchHandler
Definition:
searchjobwidget.h:130
SearchJobWidget::cancelSearch
void cancelSearch()
Definition:
searchjobwidget.cpp:209
SearchJobWidget::addTorrentToSession
void addTorrentToSession(const QString &source, AddTorrentOption option=AddTorrentOption::Default)
Definition:
searchjobwidget.cpp:295
SearchJobWidget::nameFilteringModeSetting
static SettingValue< NameFilteringMode > & nameFilteringModeSetting()
Definition:
searchjobwidget.cpp:542
SearchJobWidget::m_searchListModel
QStandardItemModel * m_searchListModel
Definition:
searchjobwidget.h:131
SearchJobWidget::m_ui
Ui::SearchJobWidget * m_ui
Definition:
searchjobwidget.h:129
SearchJobWidget::resultsCountUpdated
void resultsCountUpdated()
SearchJobWidget::onItemDoubleClicked
void onItemDoubleClicked(const QModelIndex &index)
Definition:
searchjobwidget.cpp:174
SearchJobWidget::lineEditSearchResultsFilter
LineEdit * lineEditSearchResultsFilter() const
Definition:
searchjobwidget.cpp:204
SearchJobWidget::contextMenuEvent
void contextMenuEvent(QContextMenuEvent *event) override
Definition:
searchjobwidget.cpp:393
SearchJobWidget::copyTorrentDownloadLinks
void copyTorrentDownloadLinks() const
Definition:
searchjobwidget.cpp:238
SearchJobWidget::fillFilterComboBoxes
void fillFilterComboBoxes()
Definition:
searchjobwidget.cpp:333
SearchJobWidget::SearchJobWidget
SearchJobWidget(SearchHandler *searchHandler, QWidget *parent=nullptr)
Definition:
searchjobwidget.cpp:57
SearchJobWidget::updateFilter
void updateFilter()
Definition:
searchjobwidget.cpp:316
SearchJobWidget::copyField
void copyField(int column) const
Definition:
searchjobwidget.cpp:248
SearchSortModel
Definition:
searchsortmodel.h:37
SettingValue
Definition:
settingvalue.h:39
Ui
Definition:
stacktracedialog.h:35
anonymous_namespace{misc.cpp}::source
const char * source
Definition:
misc.cpp:71
anonymous_namespace{preferences.cpp}::value
T value(const QString &key, const T &defaultValue={})
Definition:
preferences.cpp:64
SearchResult
Definition:
searchhandler.h:42
src
gui
search
searchjobwidget.h
Generated on Wed May 4 2022 08:51:14 for qBittorrent by
1.9.1