Commit graph

201 commits

Author SHA1 Message Date
sledgehammer999
6c9a4df515
Merge pull request #8538 from thalieht/searchFilter
Add a name filter for search results
2018-08-12 16:44:53 +03:00
thalieht
c55daeec38 Set "enter" as shortcut to download the selected torrents in search job 2018-07-29 21:42:21 +03:00
thalieht
ae03ecea21 Add hotkey for toggling focus between the search LineEdits 2018-07-14 09:26:24 +03:00
thalieht
df9aa6dc36 Add a name filter for search results
Closes #8226
2018-07-14 09:26:24 +03:00
Thomas Piccirello
b2ffd6e03b Instantiate SearchPluginManager with other application components 2018-07-11 20:11:33 -04:00
sledgehammer999
de8050701d
Revert email address changes in copyright notices 2018-07-10 00:37:44 +03:00
thalieht
456270bbb1 Delete several unused #include 2018-07-03 08:38:32 +03:00
thalieht
eb508d67ef Fix coding style 2018-07-03 08:38:32 +03:00
thalieht
6d4434ad66 Convert the names used in ui and c++ files from snake_case to camelCase 2018-07-03 08:38:32 +03:00
Vladimir Golovnev
b0afa33e22
Merge pull request #9125 from glassez/downloader
Implement "Sequential downloading" feature. Closes #6835
2018-07-02 15:24:58 +03:00
Vladimir Golovnev (Glassez)
112a9bcfa2
Use new DownloadManager interface 2018-06-29 15:48:17 +03:00
Chocobo1
3e6c8a05dd
Reduce queries to python version
Instead of doing at least 2 queries for python infos, now requires only
1 query (in ideal condition), and the result is cached.
2018-06-24 19:41:44 +08:00
Chocobo1
51e82762c5
Move related functions to Utils::Python 2018-06-24 06:21:15 +08:00
thalieht
d34ddb2e3c Change file names and classes names to match them 2018-06-15 20:12:59 +03:00
Mike Tzou
da87c2d9ae
Merge pull request #9060 from Chocobo1/preinc
Replace post-increment with pre-increment
2018-06-09 12:40:30 +08:00
Chocobo1
5ddbf9bba9
Replace post-increment with pre-increment
And post-decrement with pre-decrement.
2018-06-08 08:44:06 +08:00
Eugene Shalygin
04aea413ba
Merge pull request #9055 from zeule/cmake
Update CMake build scripts
2018-06-07 21:31:09 +02:00
Eugene Shalygin
fa770871e9 Refactor CMake build scripts
1. Use FeatureSummary module to show configuration results.

2. Invert option()/find_package() relationship: instead of
calling find_package(... REQUIRED) when option is set, rely on optional
find package call and PackageName_FOUND variable.

3. Refactor handling options that result in simple preprocessor defines
(actually copy the snippet from libtorrent) so that everything is done
in a single function call.

4. Populate target properties in order to get rid of
include_directories() calls.
2018-06-05 11:39:11 +02:00
Vladimir Golovnev
e61c882fee
Merge pull request #9015 from thalieht/style
Fix coding style
2018-06-03 14:48:04 +03:00
thalieht
356d6a6589 Fix coding style 2018-05-31 19:45:09 +03:00
Chocobo1
09f759355f
Replace QRegExp with QRegularExpression
Revise `static` keyword usage, static is added to frequently used
instances.
2018-05-31 22:56:49 +08:00
Chocobo1
c22e6b4502
Cleanup header include order
Add missing header.
Cleanup license.
2018-05-31 22:56:25 +08:00
thalieht
6b4455e13d Use qt5 connect() syntax 2018-05-09 16:08:22 +03:00
thalieht
3e4099fe5b Replace the zeroing of pointers with nullptr 2018-04-15 13:06:31 +03:00
Chocobo1
37ea01bd44
Use lightweight printf instead of iostream
Using iostream usually adds a lot of other operators (<<, endl), whereas
*printf takes only 1 function call.

Also use qUtf8Printable whenever possible.
2018-03-31 03:21:53 +08:00
Vladimir Golovnev
a5294e1e08
Merge pull request #8558 from luis-pereira/containter-anti-pattern
Don't create temporary containers just to iterate over them
2018-03-19 13:06:01 +03:00
Luís Pereira
ac42ccb5e4
Don't create temporary containers just to iterate over them
Stops temporary containers being created needlessly due to API misuse.
For example, it’s common for developers to assume QHash::values() and
QHash::keys() are free and abuse them, failing to realize their
implementation internally actually iterates the whole container, allocates
memory, and fills a new QList.

Added a removeIf generic algorithm, similar to std ones. We can't use std
algorithms with Qt dictionaries because Qt iterators have different
behavior from the std ones.

Found using clazy.
2018-03-18 16:22:12 +03:00
Chocobo1
423511765a
Fix typo 2018-03-14 23:37:08 +08:00
Thomas Piccirello
7278625f53 Calculate supported categories based on selected plugin 2018-03-12 01:33:45 -04:00
Chocobo1
0457fd260e
Avoid temporary QString allocations
This fixes clazy warning: Use multi-arg instead [-Wclazy-qstring-arg]
2018-03-07 20:06:00 +08:00
Vladimir Golovnev (Glassez)
279bce2014
Make SearchManager singleton 2018-02-23 20:26:32 +03:00
Vladimir Golovnev (Glassez)
f3d370870d
Improve Search handling
Legacy SearchEngine class really has three roles:
  1. Manage search plugins,
  2. Handle the search job, and
  3. Handle the download of the torrent file using the search plugin.
Now it is splitted into 3 classes: SearchManager, SearchHandler and
SearchDownloadHandler.
Search GUI is also improved.
2018-02-23 20:15:25 +03:00
Tom Piccirello
e6a1b72354 Only add search separators as needed 2018-01-16 00:22:51 -05:00
Chocobo1
fb698896c9
Fix translation context.
Partially addresses #8220.

Also sort include headers
2018-01-07 23:01:22 +08:00
Chocobo1
c2c0dd2717
Fix column size too narrow on resize
Instead of giving a value, just resize to the content size
2017-12-24 21:54:56 +08:00
Chocobo1
27cf98a962
Resize dialog size on high DPI monitors 2017-12-24 21:54:56 +08:00
sledgehammer999
99abc21dab
Simplify sorting code. 2017-12-21 15:26:38 +02:00
Chocobo1
86c5a8df75
Partial revert eac8838dc2. Fixes #7952.
mapFromSource() didn't work as expected, when used in lessThan(), it sometimes
returns an invalid QModelIndex.
A crash is observed when filtering source model via filterAcceptsRow() in #7952,
the crash is due to endless recursive of filterAcceptsRow() & lessThan() calling
each other and mapFromSource() is the culprit of it.
2017-12-04 17:40:44 +08:00
Mike Tzou
eac8838dc2
[GUI] Implement stable sort (#7703)
* NaturalCompare now returns compare result instead of "less than" result
* Change to stable sort in GUI components
* Add Utils::String::naturalLessThan() helper function
* Use Qt::CaseSensitivity type
2017-11-30 17:10:30 +08:00
Nick Korotysh
4c8dd0ca9d allow search plugins sorting. closes #7526 2017-10-03 16:57:09 +03:00
sledgehammer999
8d913d77dd Merge pull request #7266 from Chocobo1/coverity
Fix issues found by coverity scan
2017-08-13 20:10:04 +03:00
Vladimir Golovnev (qlassez)
cff6a64e9f
Use qUtf8Printable() for logging strings
qDebug(), qInfo(), qWarning(), qCritical(), qFatal() expect %s arguments
to be UTF-8 encoded, while qPrintable() converts to local 8-bit encoding.
Therefore qUtf8Printable() should be used for logging strings instead of
qPrintable().
2017-08-13 16:14:57 +03:00
Chocobo1
91b2b14ba5
Initialize variables
Remove unused variable
2017-08-13 15:28:36 +08:00
Chocobo1
24a69a9fe7 Fix crash when exiting qbt with search plugin dialog open
Avoid emitting signal in destructor
2017-07-20 13:26:36 +08:00
vit9696
d25467d3e6 Various macOS UI improvements 2017-07-15 20:49:40 +03:00
Eugene Shalygin
a22d2f0139 Implement enum support in CachedSettingValue
Enums are stored as strings, that improves configuration file
readability and maintainability. String values are obtained via
QMetaEnum, and since with Qt 5.5 QMetaEnum::fromType() includes a
static_assert, this has to be a safe method.
2017-07-05 12:41:58 +02:00
Eugene Shalygin
62be2d7400 cmake: fix build 2017-07-03 10:36:42 +02:00
sledgehammer999
a77e1c9f36
Use qt5 connect style for searchengine, pluginselectdlg and searchwidget. 2017-06-22 18:54:30 +03:00
sledgehammer999
dee0b63cc5
Aggregate installed/updated plugin names and use a single messagebox to inform the user. 2017-06-22 18:54:29 +03:00
sledgehammer999
c2a2d306da
Use alternative method for plugin favicon validity. Drop unnecessary code. 2017-06-22 18:54:28 +03:00
sledgehammer999
34c29b78f9
Update the backend when a new plugin favicon is downloaded. 2017-06-15 22:32:43 +03:00
sledgehammer999
8c98c8cb3f
Put copyright warning message to the search plugin dialog. 2017-06-15 22:32:42 +03:00
sledgehammer999
fc543b9db6
Display instructions when no search plugin is installed. 2017-06-15 22:32:41 +03:00
Chocobo1
42c17ea5ce Fix argument name differ in definition & declaration 2017-05-09 14:12:36 +08:00
sledgehammer999
d61fc7e820 Merge pull request #3858 from Chocobo1/screen_center
Fix dialogs didn't position on the correct screen
2017-05-07 22:17:55 +03:00
Chocobo1
3e964212ac Fix signaling to checkForUpdatesFinished() failed.
Fixup of 14e168039c.
2017-05-02 20:33:21 +08:00
Chocobo1
fb9ebce9c6 Fix pluginselectdlg position
Fix peerlistwidget position
Fix mainwindow position
2017-05-01 15:32:08 +08:00
Chocobo1
de54fa2c30 Fix addnewtorrentdialog position
Fix messageBox position
2017-05-01 14:48:10 +08:00
Eugene Shalygin
14e168039c Use explicit class for search plugin versions 2017-04-21 09:47:08 +02:00
sledgehammer999
ae0a9d74c4 Merge pull request #6487 from Chocobo1/ui
GUI polish
2017-04-18 04:01:13 +03:00
Eugene Shalygin
4e1b7c3b87 Remove generated include from headers
Not only fixes compilation with CMake 3.8 (without messing with include
paths) but makes sources cleaner.
2017-04-17 16:31:19 +02:00
Chocobo1
812bd4c83a Uncrustify 2017-04-05 17:39:44 +08:00
Chocobo1
59556dfc6a Cleanup & refactor 2017-04-05 17:36:47 +08:00
Chocobo1
86e82c71e5 Setup parent pointer
Rely on Qt to do the delete, since the parent ownership is setup
correctly.
2017-04-05 17:36:36 +08:00
Chocobo1
a16c557137 Always draw background 2017-03-08 14:36:42 +08:00
Eugene Shalygin
e64bb1de8c Drop Qt 4 support 2017-03-05 22:24:59 +01:00
sledgehammer999
eb3f4b8490 Merge pull request #6283 from Chocobo1/sort
Use case-insensitive sort for Name column in Search tab. Closes #407.
2017-01-25 23:07:11 +02:00
Chocobo1
4669a99617 Use case-insensitive sort for Name column in Search tab. Closes #407. 2017-01-22 11:48:01 +08:00
sledgehammer999
68ecbf4185 Merge pull request #5420 from thalieht/alignment
Changes and additions in search, peerlist, transferlist
2017-01-21 02:58:32 +02:00
sledgehammer999
ba03fb30f3 Merge pull request #5987 from Chocobo1/temp_dir
Put temp files in .qBittorrent directory
2017-01-19 01:33:57 +02:00
thalieht
9f06d0d47b SearchTab: can now save sorting column changes 2016-12-07 18:39:03 +02:00
thalieht
c90794878f SearchTab: Allow to toggle columns in searchtab 2016-12-07 18:19:54 +02:00
thalieht
b2144f7928 SearchTab: use saveSettings() and loadSettings() to handle header state 2016-12-07 18:19:54 +02:00
thalieht
5255719661 SearchTab: align text to the right in columns that handle numbers 2016-12-07 17:47:51 +02:00
Chocobo1
ce3c53b3c4 Replace deprecated classes 2016-12-07 01:31:44 +08:00
Chocobo1
d84461c9b2 Remove unused header 2016-11-29 17:31:14 +08:00
ngosang
204f3d8542 Minor changes in Search UI 2016-05-30 22:51:09 +02:00
Eugene Shalygin
f05793c2e3 Use QPalette::LinkVisited color for downloaded items in search results 2016-05-26 22:51:33 +02:00
Chocobo1
b4bdfa7b2b Use QString::localeAwareCompare for comparsion 2016-05-24 10:44:42 +08:00
sledgehammer999
9c5a5fc83d Merge pull request #3908 from Chocobo1/rm_nsort
Replace `naturalSort()` with `naturalCompare()`.
2016-05-08 11:12:51 -05:00
Chocobo1
5906a4a2de Add case-sensitive & case-insensitive natural sort helper function
Fix helper function not being thread-safe
Use QBT_USES_QT5 define
2016-05-08 23:59:06 +08:00
sledgehammer999
ef6e848756 Display notifications when a torrent is added. Closes #334 and #915. 2016-04-25 20:07:26 +03:00
Chocobo1
d65ff87148 Replace naturalSort() with naturalCompare(). 2016-04-18 14:27:44 +08:00
sledgehammer999
32490f1ef6 Merge pull request #4995 from Chocobo1/border
Search UI tweaks
2016-04-13 07:11:31 -05:00
Vladimir Golovnev (Glassez)
a9e63283cc Use nova2dl.py script instead of DownloadManager
Closes #5026
2016-04-13 08:06:06 +03:00
sledgehammer999
50f7c734cb Merge pull request #5101 from evsh/deduplicate-search-download-code
Remove duplicated code from search tab and widget
2016-04-12 15:31:25 -05:00
Chocobo1
216d98844b Move m_searchPattern widget from code to .ui file 2016-04-12 16:14:09 +08:00
Chocobo1
a52f9d4ef9 [Search] Add seperator for categories & plugins
Sort categories & plugins entries
Rename & reorder entries
Use full name for plugins
2016-04-12 16:14:08 +08:00
Chocobo1
231262ad8e [Search] match combobox height to button height 2016-04-12 11:38:27 +08:00
Chocobo1
2d6669b88d [Search] minor cleanups 2016-04-12 11:38:27 +08:00
Vladimir Golovnev (Glassez)
1760beed17 Fix MainWindow coding style (Issue #2192) 2016-04-11 19:15:50 +03:00
Eugene Shalygin
5063940138 Remove duplicated code from search tab and widget
Both download handlers (in the tab and widget classes) convert model
index into an URL, set row color, and call download function.
Make the download button handler (in the SearchWidget class) call the
slot of the SearchTab class.
2016-04-11 14:00:50 +02:00
Eugene Shalygin
b6b819a2a1 Optimize widgets inside of the search tab
Since we already have searchtab.ui, let's set up all the widgets there.
Additionally, save a bit of vertical space by putting results label in
a row with the filter widgets.
2016-04-04 02:10:09 +02:00
Eugene Shalygin
1336cb7a61 Implement search filters in the proxy model. Partially closes #972 2016-04-04 02:09:32 +02:00
sledgehammer999
15ec515872 Merge pull request #4877 from evsh/cmake
add basic cmake support
2016-03-04 17:30:08 -06:00
Vladimir Golovnev (Glassez)
dd34663224 Implement Advanced Saving Management subsystem
Closes #4696
2016-03-04 19:59:53 +03:00
Eugene Shalygin
64daecb266 add basic cmake support 2016-02-29 12:53:43 +01:00
Vladimir Golovnev (Glassez)
c6ca877b72 Fix unitialized scalar fields 2016-01-13 20:25:06 +03:00
Vladimir Golovnev (Glassez)
ac365c5efb Fix coding style (Issue #2192). 2015-12-20 21:52:26 +03:00
Vladimir Golovnev (Glassez)
54979e6b53 Move basic search-related code into Core.
Also use qBittorrent torrent file download routines instead of
nova2dl.py script.
2015-12-20 19:20:59 +03:00
Vladimir Golovnev (Glassez)
8754fd5646 Move Search-related files into Gui. 2015-12-06 21:25:40 +03:00