Commit graph

417 commits

Author SHA1 Message Date
thalieht
5f415c292d Show any multiple connections from the same IP in peer list
The uniqueness of peers is now determined by their
IP, port and connection type (uTP etc.) instead of just their IP
2020-01-29 20:40:10 +02:00
sledgehammer999
f672df1cf1
Merge pull request #11278 from Piccirello/country_region
Rename Country column to "Country / Region"
2019-12-23 21:54:30 +02:00
Prince Gupta
6258c1e65b Align Properties tab bar correctly on window resize 2019-12-16 15:42:50 +05:30
Thomas Piccirello
33a3624652 Rename Country column to "Country / Region"
Not all flags displayed strictly belong to countries.
2019-12-03 23:05:38 -08:00
warren
b37795d344 Expand single-item folders in torrent content 2019-12-02 21:56:44 +05:00
Chocobo1
4a71b78e2d
Group related code together
And also rename local variables.
2019-09-23 19:18:14 +08:00
Chocobo1
2152a81d11
Add ability to open file via keypad Enter
Closes #11260.
2019-09-23 19:18:07 +08:00
Chocobo1
f1243871b0
Remove redundant HTML escaping
The text widget is already set to plaintext and doing HTML escaping will
not give us more security but only makes it harder to read.
2019-09-15 14:40:34 +08:00
Chocobo1
0d5b0b9542
Replace deprecated macro
Q_OS_MAC is deprecated and the replacement is Q_OS_MACOS.
2019-09-05 20:16:18 +08:00
Chocobo1
2396ef5bd6
Move error logging of adding peers to the proper place 2019-09-04 16:09:24 +08:00
Chocobo1
60df790b82
Initialize pointers
Fixup aeabd2d625.
2019-08-28 13:08:36 +08:00
Chocobo1
aeabd2d625
Clean up PeerListWidget class 2019-08-27 14:30:03 +08:00
Mike Tzou
2427f5d324
Merge pull request #11041 from Chocobo1/splitRef
Revise operations in TorrentHandle class
2019-08-09 12:27:44 +08:00
Chocobo1
8d6b9b6181
Revise sort model and delegate code 2019-08-08 22:17:18 +08:00
Chocobo1
061219d0a2
Simplify code 2019-08-08 21:25:28 +08:00
Chocobo1
b5b678c58f
Replace QString::split() by faster alternatives 2019-08-08 18:57:54 +08:00
Chocobo1
e90a2c00a5
Replace QList by QVector 2019-08-05 20:56:15 +08:00
Mike Tzou
c0fc4e6d90
Merge pull request #10993 from Piccirello/adjust-verbiage
Adjust wording to sound more natural
2019-07-31 14:24:58 +08:00
Tom Piccirello
eaa700791b
Adjust wording to sound more natural 2019-07-29 00:31:09 -07:00
Chocobo1
7ab3479a34
Replace static_cast by qOverload 2019-07-26 22:32:18 +08:00
Vladimir Golovnev (Glassez)
ad6a40d5f4
Extract PeerAddress class into separate file 2019-07-23 06:27:35 +03:00
Chocobo1
07263d2d70
Move implementation to its own file 2019-07-18 00:30:44 +08:00
Mike Tzou
1e70c52e7a
Merge pull request #10934 from Chocobo1/delete
Rely on Qt ownership to delete class members
2019-07-17 12:02:30 +08:00
Chocobo1
e74b984a0a
Rely on Qt ownership to delete class members 2019-07-16 18:42:26 +08:00
Prince Gupta
8267a4fef9 Incorporate GuiIconProvider inside UIThemeManager 2019-07-16 09:31:33 +05:30
Chocobo1
032883e278
Move LineEdit files out of subfolder 2019-07-13 19:46:53 +08:00
Chocobo1
cc663746eb
Forward declare some classes 2019-07-13 19:38:37 +08:00
Chocobo1
599bfc0735
Use Qt object ownership to handle QShortcut deletions 2019-07-13 13:24:27 +08:00
Chocobo1
662e1e6134
Clean up code in TrackerListWidget class 2019-07-13 12:53:26 +08:00
Chocobo1
4eff268095
Replace obsoleted QFontMetrics::width()
Qt 5.13 marked QFontMetrics::width() obsolete.
2019-07-01 14:48:53 +08:00
Chocobo1
412e326cf2
Avoid allocating a new menu/action manually 2019-06-24 11:02:35 +08:00
Chocobo1
4880dc812c
Use appropriate type 2019-06-19 18:52:24 +08:00
Chocobo1
516c968373
Support year unit in userFriendlyDuration() 2019-06-19 18:52:24 +08:00
Chocobo1
e83019bdfa
Set wheel event to accepted only if we handle it 2019-06-19 18:52:24 +08:00
Chocobo1
3748b995ff
Avoid creating unnecessary event loops
The `exec()` method will create another event loop and transfer
control over there which might introduce unexpected bugs.
2019-06-17 20:44:57 +08:00
Chocobo1
62ccfd37b2
Move renameSelectedFile(BitTorrent::TorrentHandle *) 2019-06-09 19:07:43 +08:00
thalieht
70f8882f87 Group Qt forward declarations separately from the others 2019-06-04 17:48:55 +03:00
thalieht
9995967fbf Remove some unused #include 2019-06-04 17:48:55 +03:00
thalieht
4370a7eb12 Forward declare in a few places 2019-06-04 17:48:55 +03:00
Chocobo1
ed6bb0efdc
Replace QList by QVector for tracker related operations 2019-05-22 12:57:22 +08:00
Chocobo1
e288de7ec1
Forward declare as much as possible 2019-05-19 12:06:18 +08:00
Chocobo1
c6f3da1097
Improve removeIf() to support set types
We can now replace QMutable*Iterator by removeIf() which usage is more consistent with other
algorithm functions.
2019-05-14 01:26:01 +08:00
dzmat
7de0f9abed Change number of time axis divisions from 5 to 6 for convenience 2019-04-22 00:15:13 +07:00
dzmat
0af17bf7e9 Add 12 hour and 24 hour speed graphs 2019-04-22 00:15:13 +07:00
Vladimir Golovnev (Glassez)
ead078a38e
Add preliminary support of libtorrent v1.2
libtorrent v1.2 should be built with deprecated features enabled.
2019-03-18 15:17:03 +03:00
thalieht
bcfa62cc76 Rename "#" column to "Tier" in the tracker list 2019-03-13 21:08:40 +02:00
Vladimir Golovnev
928ce940c9
Merge pull request #10346 from glassez/download-manager
Improve "Download manager"
2019-03-10 09:13:07 +03:00
Vladimir Golovnev (Glassez)
746916a963
Use DownloadHandler behind the scenes 2019-03-08 13:00:37 +03:00
Vladimir Golovnev (Glassez)
6cb15706f5
Reduce number of DownloadManager signals 2019-03-05 11:28:29 +03:00
Chocobo1
adbd34c795
Move helper functions to Utils::Gui namespace 2019-03-05 14:55:22 +08:00
Chocobo1
3dd969df64
Replace deprecated QSignalMapper class 2019-02-28 12:03:08 +08:00
thalieht
77aea3c59e Add const to a few pointer arguments 2019-02-25 17:05:15 +02:00
thalieht
d8cbc9266a Use 'auto' to avoid duplicating the type name 2019-02-16 18:54:17 +02:00
thalieht
947c7e1d64 Convert to range-based for loop 2019-02-16 16:53:26 +02:00
thalieht
8a3f942385 Don't use 'else' after return/break 2019-02-13 18:23:25 +02:00
Mike Tzou
78ab0e4ba9
Merge pull request #10220 from thalieht/const
Add const to many vars and arguments
2019-02-13 12:11:00 +08:00
thalieht
445adb0ab4 Convert pass-by-value arguments to const refs where applicable 2019-02-12 02:45:55 +02:00
thalieht
ca3ce87e06 Add const to many vars and arguments
Also remove const in declarations' arguments that are passed by value
2019-02-11 20:19:41 +02:00
Vladimir Golovnev (Glassez)
5a86c4ac52
Close context menu when content model is reset
Closes #9522.
2019-02-01 18:44:26 +03:00
Vladimir Golovnev (Glassez)
c631dbdaa1
Improve Properties widget
Drop redundant dependencies.
Refresh after BitTorrent session refreshing  (instead of using timer).
2019-01-28 12:42:12 +03:00
Nick Korotysh
bd1856594b
Draw progress bar in Fusion style on macOS systems
Qt has a bug QTBUG-72558, which leads to incorrect progress bar
position, when drawing it in delegate.
Also, since OS X 10.10 Yosemite macOS default style was changed,
and progress bars became very tiny and without text (percentage).
These two cases make qBittorrent look pretty awful, but drawing
progress bar in Fusion style solves both issues.
2019-01-02 10:01:32 +03:00
Chocobo1
2a84345835
Mark constructors as explicit 2018-12-26 12:04:40 +08:00
Thomas Piccirello
718f66e6a2 Remove condition for unsupported libtorrent version 2018-12-11 01:37:32 -05:00
Thomas Piccirello
c89e9d4354 Reorder and rename Tracker list context menu option
Adds an ellipses to indicate that the Edit option opens a dialog. Also moves Edit to top of the list to convey action's prominence.
2018-12-11 00:41:18 -05:00
Thomas Piccirello
b481787574 Rename Tracker List columns
"Received" renamed to "Peers", "Peers" renamed to "Leeches".
2018-12-11 00:41:18 -05:00
Thomas Piccirello
f27dc977e9 Replace prio namespace with FilePriority enum class 2018-12-10 23:21:09 -05:00
thalieht
1f36b8b89f Combine qAsConst() with copyAsConst() to asConst() 2018-11-28 23:41:23 +02:00
thalieht
6b1d26d555 Convert all foreach() to range-based for() 2018-11-28 23:40:12 +02:00
thalieht
d668a4fe6d Fix coding style for various things 2018-11-28 23:37:35 +02:00
Chocobo1
d866033a8e
Fix divide-by-zero crash
Previously here was using a cheap method to avoid divisor becoming < 0, but from
the crash stacktrace it seems this is not enough, now the divisor is properly
clamped to have 1 as the minimum.
Also it will now display "Unknown" for invalid calculation results.

Closes #9857.
2018-11-18 13:50:23 +08:00
Mike Tzou
2ce57b97be
Merge pull request #9799 from Chocobo1/removeCheckbox
Remove speed limit checkbox in Options dialog
2018-11-07 13:40:43 +08:00
dzmat
6fa64c81b7
Fix speed graph "high speeds" bug 2018-11-06 15:53:20 +03:00
Chocobo1
266ce1d226
Clean up SpeedLimitDialog class 2018-11-05 11:07:52 +08:00
dzmat
fabd7e34f5 Improve scaling of speed graphs
Make Y axis scale to fix on predetermined nice looking positions
2018-10-21 16:45:32 +07:00
dzmat
23d924643f Reduce horizontal graphs resolution
Rewrite averaging code and reduce horizontal graphs resolution for
30 minutes and 6 hours graphs to decrease CPU usage.
2018-10-13 18:28:38 +07:00
dzmat
2d0f0cb372 Allow to disable speed graphs 2018-10-08 23:51:02 +07:00
sledgehammer999
bfb1210c43
Merge pull request #9406 from thalieht/preselecttext
Preselect name without extension when renaming files
2018-09-11 14:33:25 +03:00
thalieht
94613c2fa2 Fix some warnings 2018-09-07 19:40:08 +03:00
thalieht
e2b46f01bb Show "N/A" if there is no scrape
Disambiguates whether the tracker send a response of 0 peers/seeds/downloaded or didn't send one at all.
2018-09-07 19:39:53 +03:00
thalieht
ffc2193df9 Preselect name without extension when renaming files
And preselect the whole string for everything else.
2018-09-05 16:55:42 +03:00
Chocobo1
56766dc08b
Avoid binding constant reference to returned object
In such cases, it makes no sense doing so.
2018-07-23 13:40:25 +08:00
Chocobo1
0217d5b4c0
Replace single-character string with character literal
Also remove unnecessary dynamic allocation.
2018-07-21 23:26:15 +08: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 (Glassez)
112a9bcfa2
Use new DownloadManager interface 2018-06-29 15:48:17 +03:00
thalieht
d34ddb2e3c Change file names and classes names to match them 2018-06-15 20:12:59 +03:00
thalieht
4022799881 Fix coding style 2018-06-12 07:17:05 +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
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
thalieht
586e1a0830 Move some connect() from propertieswidget to their corresponding widget 2018-05-09 16:08:22 +03:00
thalieht
6b4455e13d Use qt5 connect() syntax 2018-05-09 16:08:22 +03:00
Mike Tzou
99a1343b9d
Merge pull request #8862 from Chocobo1/cleanup
Code cleanups
2018-05-09 14:33:49 +08:00
Vladimir Golovnev
3a0e5e51df
Merge pull request #8761 from thalieht/nullptr
Replace the zeroing of pointers with nullptr
2018-05-08 17:10:37 +03:00
Chocobo1
defba23d61
Refactor code
Remove forward declarations of Qt types.
Fix header include order.
2018-05-08 12:18:18 +08:00
Mike Tzou
d8c14ffe97
Merge pull request #8814 from Chocobo1/tr_fix
Fix tr() related issues
2018-05-05 13:48:09 +08:00
Chocobo1
e423314ac2
Work around false-positive warning from lupdate
In short, lupdate will get confused when seeing `template <class T>`,
see: QTBUG-55478
2018-05-01 23:28:34 +08:00
Chocobo1
c61f641613
Fix untranslated string
Closes #8809.
2018-05-01 11:49:10 +08:00
thalieht
3e4099fe5b Replace the zeroing of pointers with nullptr 2018-04-15 13:06:31 +03:00
Chocobo1
898239a42e
Fix renaming completed files
Check whether the file is already downloaded before appending QB_EXT to
filename.

Closes #8039.
2018-04-12 14:13:59 +08:00
Chocobo1
a468c84b30
Fix warnings from unused variables 2018-03-12 14:36:28 +08:00
Chocobo1
08a2439f46
Check directly if container is empty or not 2018-03-11 23:12:16 +08:00
Chocobo1
6767487e40
Remove unused variable 2018-03-11 22:31:17 +08:00
Chocobo1
fdf3ebbb6c
Remove usage of deprecated functions
Also use proper type for storing date/time data
2018-03-09 19:20:58 +08: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
Luís Pereira
1a913c502b Prevent possible c++11 range-loop container detach
Explicit or implicit calls to begin() and end() cause a non-const
container to detach from shared data, ie. to perform a deep-copy to gain
a unique copy of the data.
That can be a expensive although unneeded operation.

In order to assist the developer a copyAsConst function is added.
copyAsConst returns a const copy of the object.

For lvalues just use qAsConst. It's only available on Qt 5.7.0. But we
added also for earlier versions. The developer can always use qAsConst.

Intended uses:

    QString s = ...;
    for (const auto &ch : qAsConst(s))
          process(ch);

    for (const auto &ch : copyAsConst(funcReturningQString()))
        process(ch);
2018-02-20 19:28:51 +00:00
Luís Pereira
44e4b5d238 Don't use qDeleteAll() on temporaries
qDeleteAll() is being used on an unnecessary temporary container created
by QHash::values().
Using qDeleteAll(mycontainer) instead.
2018-02-12 16:36:03 +00:00
Chocobo1
ec337a8a84
Sort filename lists in .pri files 2017-12-31 11:53:45 +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
Chocobo1
aaaa67050c
Fix gui issues on high DPI monitor
Fix LineEdit widget size issues
Up-scale the icons on statusbar
Up-scale the icons in options dialog. Closes #7729.
Fix small icons in cookie manager
Fix progress bar height
Fix small icons in confirm delete dialog
Fix small icons in options dialog
Fix small images in about dialog
2017-12-24 21:47:46 +08:00
Chocobo1
52ae118e3c
Tweak spacing 2017-12-24 21:47:46 +08:00
sledgehammer999
0a35adbdba
Merge pull request #8087 from sledgehammer999/fix_flag_sorting
Fix sorting of country flags column in Peers tab.
2017-12-23 19:15:44 +02:00
sledgehammer999
5156399c68
Fix sorting of country flags column in Peers tab. 2017-12-21 15:21:53 +02:00
vit9696
ed154d35ba Fix Finder reveal in preview and torrent contents 2017-12-17 02:16:36 +03: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
Mike Tzou
74d281526b
Merge pull request #7647 from thalieht/style
Coding style for many files
2017-11-30 17:09:18 +08:00
Chocobo1
27090f0cfb
Remove superfluous QString::fromUtf8() 2017-11-21 22:48:00 +08:00
thalieht
ae1634623e Coding style for many files 2017-11-20 23:29:59 +02:00
dzmat
9d0ab0ae5f speedwidget class: excess QtConcurent usage removal 2017-10-12 20:59:13 +07:00
thalieht
525fdd6c2b Coding style, use nullptr and other minor things 2017-10-08 10:20:54 +03:00
sledgehammer999
7b5730723d
Fix file list expansion on singlefile torrent with folder. 2017-09-06 01:11:49 +03:00
Chocobo1
551ffb88ab
Define QT_USE_QSTRINGBUILDER.
The old defines are deprecated.
QT_USE_QSTRINGBUILDER also supports QByteArray which we use extensively
in WebUI.
2017-08-29 13:37:29 +08:00
Chocobo1
ccd3b305c2
Use Qt5 connect syntax 2017-08-24 20:15:25 +08:00
Chocobo1
b47c90f0e0
Setup parent ownership to avoid memory leak 2017-08-24 20:01:39 +08: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
vit9696
d25467d3e6 Various macOS UI improvements 2017-07-15 20:49:40 +03:00
thalieht
91f528bc96 Fix coding style for several files
trackerlist
autoexpandabledialog
previewselect
shutdownconfirmdlg
torrentcontentfiltermodel
torrentcontenttreeview
peerlistsortmodel.h
2017-06-30 23:44:12 +03:00
Eugene Shalygin
74cecb1b6c Replace C-style casts with C++ ones 2017-05-29 17:25:42 +02:00
Eugene Shalygin
ae5932a573 Merge pull request #6848 from evsh/fix-piecebar-crash
Fix crash in download piece bar
2017-05-27 13:24:14 +02:00
Eugene Shalygin
6d9eec0e71 Fix crash in download piece bar
When torrent size is smaller than the image width, bytes per pixel was
set to zero and code was crashing. Set it to -1 instead, as we do when
image is empty. This will disable highliting, but our algorithm does not
work in this case anyway.
2017-05-26 21:47:51 +02:00
Mike Tzou
92decf83b8 Merge pull request #6330 from Chocobo1/rename
Fix renaming files is not case sensitive on Windows platform
2017-05-24 13:12:30 +08:00
Mike Tzou
ce36a7ca62 Merge pull request #6498 from thalieht/trackerList
Trackerlist: Add toggle columns menu
2017-05-19 15:06:42 +08:00
Chocobo1
08a6c75227 Refactors
Rename variables
Refactor to return early instead of introducing a scope
Revise dialog title & messages
Refactor code logic
2017-05-17 21:28:46 +08:00
Vladimir Golovnev
44f8a48d73 Merge pull request #6724 from glassez/libt11
Don't use features, deprecated in libtorrent-1.1
2017-05-16 18:54:00 +03:00
Chocobo1
b18bf48014 Improve error message reported to user
Should not contain "file" or "folder", because it's not clear which type is selected.
2017-05-13 16:16:59 +08:00
Chocobo1
51e3e5438b Code formatting
Refactor
2017-05-13 16:16:59 +08:00
Chocobo1
0939875ca8 Fix renaming files is not case sensitive on Windows platform. Closes #5128. 2017-05-13 16:16:59 +08:00
Eugene Shalygin
5c10a24923 Add availability column to torrent properties window 2017-05-12 17:15:00 +02:00
thalieht
73c37cc460 Trackerlist: add "m_" to private members and make them camelCase 2017-05-11 19:15:00 +03:00
thalieht
14f50f1038 Trackerlist: Allow to toggle columns 2017-05-11 19:15:00 +03:00
thalieht
d9555a9e9d Trackerlist: Set text alignment of columns with numbers to the right 2017-05-11 16:53:31 +03:00
thalieht
5d33399000 TrackerList: Remove unnecessary deletes from the destructor 2017-05-11 16:53:31 +03:00
thalieht
e82a1522c8 Trackerlist: Change 0 to nullptr 2017-05-11 16:53:31 +03:00
thalieht
e00be240b0 PropertiesWidget: Change 0 to nullptr 2017-05-11 16:53:31 +03:00
thalieht
b360c5453b PropertiesWidget: Some coding style 2017-05-11 16:53:31 +03:00
thalieht
ce77ebdfe1 Coding style of whole trackerlist.h and a little in trackerlist.cpp 2017-05-11 16:53:31 +03:00
Eugene Shalygin
f211b238c4 Do not attempt to show detailed tooltips without torrent metadata. Closes #6768.
Computations for detailed tooltips are not protected against unavailable
metadata, that leads to asserts or crashes. But since those tooltips are
useless in this case, do not show them at all. Inform user that detailed
tooltip becomes available once torrent metadata are fetched.
2017-05-11 01:10:23 +02:00