Commit graph

4953 commits

Author SHA1 Message Date
sledgehammer999
08f96ae7d7 Save RSS cache in folder called rss. 2014-12-07 11:54:09 +02:00
sledgehammer999
e331850b70 Merge pull request #1147 from maxrd2/rss_text
RSS Feed plain text description is not formatted.
2014-12-07 11:47:26 +02:00
sledgehammer999
7736415945 Merge pull request #1122 from maxrd2/rss_html
RSS Feed was not displaying remote images in html description.
2014-12-07 11:46:41 +02:00
Mladen Milinkovic
2c6df559e8 RSS Feed was not displaying remote images in html description. Closes #1119 2014-12-07 01:36:44 +01:00
Mladen Milinkovic
195b46673a RSS Feed will format plain text descriptions 2014-12-07 01:31:18 +01:00
sledgehammer999
f8e25984ae Fix for commit 35e964f66. 2014-12-07 01:39:49 +02:00
sledgehammer999
8449203b27 Add info about the proxy password being saved unencrypted. Closes #1490. 2014-12-06 21:05:34 +02:00
sledgehammer999
734301326b Rearreange header includes in Peerlist widget. 2014-12-06 19:24:07 +02:00
sledgehammer999
35e964f66d Implement peer relevance column. Closes #1630. 2014-12-06 19:07:26 +02:00
sledgehammer999
dc04ff511f Merge pull request #1546 from Gelmir/add_paused
Partially revert 14310f9b05
2014-12-06 17:04:13 +02:00
Gabriele
ef0b4c6ee2 Don't overwrite WebUI password when changing preferences
The input field to change password does not contain the actual
password, but its hash. When the preferences are saved, the hashed
password is considered as a new password.
Prevent this by comparing the new password with the hash of the
previous password.

Closes #2241.
2014-12-04 19:09:28 +01:00
sledgehammer999
da9396ca94 Fix compilation on ARM. Closes #2204. 2014-12-02 14:32:47 +02:00
sledgehammer999
8882895f5e Merge pull request #2230 from pmzqla/searchengine-kat
searchengine: Update KickassTorrents url
2014-12-02 11:28:39 +02:00
Gabriele
ad949c69b5 searchengine: Update KickassTorrents url
Closes #2228.
2014-12-02 00:17:07 +01:00
Gabriele
d19b7a777f Vertical align right-aligned header text
Since e907306b41 ("Right align header text that also has right-aligned
row text"), right-aligned elements are no longer centered vertically.
This can be noticed with some Qt styles (e.g. Breeze).
2014-12-01 23:04:24 +01:00
Nick Tiskov
9a87afb562 Use TorrentTempData for overriding "add torrents paused" functionality 2014-11-30 20:20:38 +03:00
sledgehammer999
f5048a4586 Merge pull request #2201 from buinsky/master
WebUI: Some changes
2014-11-30 15:11:29 +02:00
sledgehammer999
e5e22eb925 Fix the language selection in the combobox when the system locale only has a lang equivalent and not a lang_COUNTRY one. Closes #1786. 2014-11-30 15:07:43 +02:00
buinsky
740617e5ce Use localStorage instead of cookies 2014-11-30 12:44:33 +03:00
buinsky
5e8c62e539 Add "Speed in title bar" item to menu
* file: src/Icons/oxygen/checked.png
  copyright: Victor Buinsky <allok.victor@gmail.com>
2014-11-30 10:39:27 +03:00
buinsky
b0e138d669 Set images cache expiry time to 300000 seconds 2014-11-30 10:30:20 +03:00
buinsky
632fd84e54 Fix context menu width 2014-11-30 10:30:02 +03:00
buinsky
39e135e40a Fix menu width 2014-11-30 10:27:33 +03:00
sledgehammer999
5d79fcdafd WINDOWS: Fix automatic python download. Commit 0799dc2 broke this. Closes #2076. 2014-11-30 00:34:25 +02:00
sledgehammer999
f88ceed2b6 Let Qt decide the size of the statusbar. 2014-11-29 23:13:33 +02:00
sledgehammer999
9d548814a3 Resize and crop the icons used in the status bar. 2014-11-29 23:13:21 +02:00
sledgehammer999
12cd143f75 Merge pull request #2061 from pmzqla/speed-indicators
Show current speed limits in the status bar
2014-11-29 23:11:49 +02:00
sledgehammer999
6c0b74b94b Merge pull request #2214 from Gelmir/trace
Fix backtrace functionality under MinGW
2014-11-29 16:50:06 +02:00
Nick Tiskov
6bab65e5b4 Produce demangled backtraces under MinGW 2014-11-29 16:40:18 +03:00
sledgehammer999
9e6a4da542 Merge pull request #2210 from alfrix/gui_fix
GUI: Streamline Properties Widget. Closes #2159
2014-11-29 15:35:21 +02:00
Nick Tiskov
2dd3d1fb22 Fix indentation for long addresses and filenames 2014-11-29 16:17:37 +03:00
Nick Tiskov
ba9f6a3531 Follow project coding style. Issue #2192. 2014-11-29 16:17:32 +03:00
sledgehammer999
0689a1735d Merge pull request #2206 from alfrix/prio_buttons
Add top and bottom priority hotkeys and buttons to menu and toolbar
2014-11-29 15:16:26 +02:00
sledgehammer999
b9ce4d48a0 Merge pull request #802 from Gelmir/rss_match_time_limit
Add setting to ignore RSS rule matches for X days
2014-11-29 12:56:25 +02:00
Alfredo Monclus
d28ca2eddc Add hotkeys and buttons for Top and Bottom priorities 2014-11-26 19:41:29 -03:00
Alfredo Monclus
7314c57852 GUI: Streamline Properties Widget. Closes #2159
Merge select buttons and filtering into one line
2014-11-26 18:48:12 -03:00
sledgehammer999
ecf3dd123e Don't display weird text in the 'Last Activity' column when the time is invalid. 2014-11-26 14:51:52 +02:00
sledgehammer999
e907306b41 Right align header text that also has right-aligned row text. Closes #2188. 2014-11-26 14:40:15 +02:00
sledgehammer999
f61675d98a Merge pull request #2207 from pmzqla/rss-rules
Fix RSS "OR" condition in "must not contain" rules.
2014-11-26 13:37:16 +02:00
sledgehammer999
89726d4566 Remove useless includes. 2014-11-26 02:19:48 +02:00
sledgehammer999
a8766058f3 Use parse_magnet_uri() where possible. 2014-11-26 02:19:47 +02:00
sledgehammer999
f413e8b121 Stop using internal libtorrent API. Closes #2202. 2014-11-26 02:19:46 +02:00
sledgehammer999
cbbf14b0f8 Follow project coding style. Issue #2192. 2014-11-26 02:19:44 +02:00
Nick Tiskov
806a4a2e6a Add setting to ignore RSS rule matches for X days 2014-11-26 01:55:25 +03:00
Gabriele
c6dbe8ea60 Don't use white spaces as separator in RSS "must not contain" rules
This RegExp uses both white spaces and | as separator.
Use only the latter and drop the RegExp as it is no longer required.
2014-11-25 19:38:18 +01:00
Gabriele
5dede9e433 Use correct separator for "OR" condition in RSS rules
Although RSS rules were correctly parsed, the wrong separator for the
"OR" condition was used to re-generate the string of the rule displayed
in the preferences.

Closes #2205.
2014-11-25 19:19:20 +01:00
sledgehammer999
060d3fc5b9 Merge pull request #2153 from pmzqla/webui-versioninfo
WebUI: Allow to retrieve web API version and qBT version
2014-11-23 22:07:59 +02:00
sledgehammer999
8ce91e153d Merge pull request #2125 from buinsky/master
WEBUI: Some fixes
2014-11-23 21:54:42 +02:00
sledgehammer999
202e816d08 Use VERSION_BUILD where possible. Revert a change from previous commit. 2014-11-23 20:59:30 +02:00
buinsky
2275735b81 Change of number of decimal places to 1
Change of number of decimal places to 1 in speed and size values.
2014-11-23 16:53:41 +03:00
buinsky
b2876b7f66 Show speed in title 2014-11-23 16:38:52 +03:00
Gabriele
d6169b14dd WebUI: Allow to retrieve qBittorrent version
New GET method:
 * version/qbittorrent: qBittorrent version

Closes #1872.
2014-11-22 20:47:32 +01:00
Gabriele
8b5512c244 WebUI: Assign a version to the Web API and allow to get it
New GET methods:
 * version/api: current API version
 * version/api_min: min API version supported

The API version is an integer and it's returned as plain text.

Whenever the API is changed, the api version is increased.

Whenever the API is changed in a way that is not backward compatible,
api_min is increased.
2014-11-22 20:47:32 +01:00
Gabriele
1154ea3873 Change indentation to 4 spaces. Issue #2192. 2014-11-22 20:47:32 +01:00
buinsky
f44f676729 Update priority icons
Update priority icons
2014-11-20 17:26:38 +03:00
buinsky
5cc90844a5 Fixing setting speed limit of torrent in WEBUI
Fixing setting speed limit of torrent in WEBUI when global speed limit
is not set.
2014-11-20 17:26:36 +03:00
sledgehammer999
d6f309b7a6 Merge pull request #2177 from pmzqla/open-select
Implement open and select file in file manager [Linux]
2014-11-16 23:19:12 +02:00
Gabriele
0b14860e40 Implement open and select file in file manager [Linux]
Only few file managers are able to select files when started from the
command line.

xdg-mime is required to retrieve the default file manager. If it's not
available or the file manager is not able to automatically select files,
the containing directory will be opened as usual.
2014-11-16 21:28:30 +01:00
sledgehammer999
8f9c7b79ed Fix nox compilation. 2014-11-16 22:28:28 +02:00
sledgehammer999
f35e06540e Load torrents that have big metadata file. Closes #1889. 2014-11-16 21:25:53 +02:00
sledgehammer999
0adb9fcbce Escape backslashes. Issue #800. 2014-11-16 20:58:43 +02:00
sledgehammer999
bba8e18812 Merge pull request #744 from Gelmir/open_select
[Windows] Implement open & select file in file manager
2014-11-16 20:44:22 +02:00
Nick Tiskov
be99c45944 Fix opening of samba shares 2014-11-16 21:03:56 +03:00
Nick Tiskov
997b16a24a Implement open & select file in file manager [Windows only] 2014-11-16 21:03:51 +03:00
sledgehammer999
7dd4e4aca8 Merge pull request #2174 from sorokin/fix-empty-combobox
Fix emptying of 'piece size' combobox when user enable 'auto' checkbox and no files are selected
2014-11-16 18:15:06 +02:00
sledgehammer999
f12dc7ca36 Merge pull request #2173 from sorokin/placeholder-text-torrent-list
Set placeholder text to torrent content filter.
2014-11-16 18:02:55 +02:00
Ivan Sorokin
98a900e67d Fix emptying of piece size combobox when user checks "auto" checkbox.
The function computePathSize returns -1 if file isn't found, not 0.
2014-11-16 18:33:31 +03:00
Ivan Sorokin
376df3218d Set piece size to (max) 4Mb instead of empty string when created torrent
is very large.
2014-11-16 18:33:31 +03:00
Ivan Sorokin
6780791d60 Set placeholder text to torrent content filter.
In commit afb03725ad it was implemented
for torrent list filter. Now it is here for files filter.
2014-11-16 18:09:38 +03:00
sledgehammer999
9088b1af84 Merge pull request #800 from Gelmir/smart_ep
Implement episode filter for rss downloader
2014-11-16 14:48:56 +02:00
sledgehammer999
ae1cecca2f Merge pull request #2163 from sorokin/optimize-prioritize-files
Reduce the number of torrent_handle::torrent_file() calls in QTorrentHandle::prioritize_files()
2014-11-16 13:39:36 +02:00
Ivan Sorokin
404c8972af Reduce the number of torrent_handle::torrent_file() calls in QTorrentHandle::prioritize_files(). Closes #2161.
It was reported (#2161) that enabling/disabling a downloading of a file
is considerably slow on libtorrent 1.0.3, but not on 0.16.x. The problem
is that a function torrent_file() in libttorrent 1.0.3 does a deep copy
of torrent_info, while get_torrent_info() in libtorrent 0.16.x only
returns a reference.
2014-11-16 03:37:51 +03:00
Nick Tiskov
60c4306502 Fix missing icon for open action in file list 2014-11-12 11:51:09 +03:00
Nick Tiskov
18e0d122fb Add tooltip to episode filter text edit 2014-11-12 11:50:43 +03:00
Nick Tiskov
0564ceea9f Implement episode filter for rss downloader 2014-11-12 11:50:42 +03:00
sledgehammer999
e8bec885cb Merge pull request #2145 from pmzqla/webui
Make Web API locale independent
2014-11-12 00:32:00 +02:00
Gabriele
b4acb2ef52 Use localeCompare to sort torrent list by name 2014-11-10 13:57:01 +01:00
Gabriele
ed83070517 Use raw data to sort columns
Store the raw data retrieved in a new data-raw attribute and use
these to sort the columns.

In addition, make the ETA column sortable.
2014-11-10 13:57:01 +01:00
Gabriele
ec592f8175 Remove unneeded parameters from helper functions for WebUI 2014-11-10 13:57:01 +01:00
Gabriele
aedf579d77 WebUI: make API locale independet
Sizes are now given in bytes.
Dates are Unix timestamps and converted to ISO 8601 in the web UI.
Numbers are not converted to strings.
-1 is returned for undefined values.

Some keys have been splitted:

Torrent list (json/torrents)
 * num_seeds: Torrent seeds connected to
 * num_complete: Torrent seeds in the swarm
 * num_leechs: Torrent leechers connected to
 * num_incomplete: Torrent leechers in the swarm

Torrent generic properties (propertiesGeneral/hash)
 * total_uploaded: Total data uploaded
 * total_uploaded_session: Total data uploaded this session
 * total_downloaded: Total data dowloaded
 * total_downloaded_session: Total data downloaded this session
 * time_elapsed: Torrent elapsed time
 * seeding_time: Torrent elapsed time while complete
 * nb_connections: Torrent connection count
 * nb_connections_limit: Torrent connection count limit

Global transfer info (json/transferInfo)
 * dl_info_speed: Global downalod rate
 * dl_info_data: Data downloaded this session
 * up_info_speed: Global upload rate
 * up_info_data: Data uploaded this session

Closes #1524.
2014-11-10 13:57:01 +01:00
Gabriele
8cc7a3573e Show current speed limits in the status bar
Closes #1316.
2014-11-09 23:00:45 +01:00
Gabriele
f46e660679 Adjust the size of the elements in the statusbar
Use the same height for all the elements and try to prevent
variations of the speed labels.
2014-11-09 23:00:45 +01:00
sledgehammer999
d642ddc795 Merge pull request #2150 from pmzqla/webui-fix
WebUI: Don't empty transfer list before updating it
2014-11-09 23:02:32 +02:00
Gabriele
09fde676ae WebUI: Don't empty transfer list before updating it
This causes the list from disappearing in IE 10.
No longer needed table rows are deleted anyway.
2014-11-09 21:19:38 +01:00
sledgehammer999
4dbc235c70 Use rgb values to match colors before commit ad116e. Taken from qcolor_p.cpp. 2014-11-09 13:59:36 +02:00
sledgehammer999
6d64f2430c Merge pull request #2140 from sorokin/fix-torrent-removal
Fix torrent removal. Closes #2132
2014-11-09 13:09:38 +02:00
sledgehammer999
9d770ea48b Merge pull request #2144 from sorokin/up-down-scrolling
Speed up scrolling with up/down keys
2014-11-09 13:07:00 +02:00
sledgehammer999
21139f9d29 Merge pull request #2142 from sorokin/repaint
Misc changes in TorrentModel and TransferListWidget
2014-11-09 13:06:39 +02:00
Ivan Sorokin
5986c1dbc9 Cache QRegExp in misc::parseHtmlLinks()
This commit should improve performance when user navigating through
torrent list using up/down keys. A scrolling through all the list
(276 torrents) took:

    Total wall time:                            18.813s
    Total CPU time:                              3.210s
    misc::parseHtmlLinks():                      0.096s

misc::parseHtmlLinks() is 8th most hottest function on
this use case.
2014-11-09 12:57:14 +03:00
Ivan Sorokin
9023232653 Cache icons in TorrentContentModel
This commit caches icons in TorrentContentModel in the same way they are
cached in TorrentModel.

This commit should improve performance when user navigating through
torrent list using up/down keys. A scrolling through all the list
(276 torrents) took:

    Total wall time:                            18.813s
    Total CPU time:                              3.210s
    IconProvider::generateDifferentSizes():      0.170s

IconProvider::generateDifferentSizes is 5th most hottest function on
this use case.
2014-11-09 12:57:14 +03:00
Ivan Sorokin
976982ba09 Now user-created labels "all" and "none" works as regular labels 2014-11-09 03:59:49 +03:00
Ivan Sorokin
f235c0ae6c Merge label filter into TransferListSortModel
This also fixes a bug that when label filter contains special symbols
from regex, the label filter may match torrents with multiple different
labels.
2014-11-09 03:58:50 +03:00
Ivan Sorokin
8bafc5e216 Merge StatusSortFilterProxyModel into TransferListSortModel
I thought merging all 3 sort-filter proxy models into one should
speedup dataChanged() signal. As turned out this is not the case. The
time difference is within inaccuracy range, so this doesn't affect
performance.

But I still think it is good to merge them into one proxy model as it
simplifies code.
2014-11-09 03:58:50 +03:00
Ivan Sorokin
cf2cb29826 Split transferlistsortmodel into .h and .cpp 2014-11-09 03:58:50 +03:00
Ivan Sorokin
0976918ca2 Call updateTorrentNumbers() once per every model refresh, not once for every row changed
Torrent numbers were recalculated on every dataChanged() signal. The previous commit
greatly increases the number of dataChanged() signals.

HEAD^^:
    Total wall clock:                 97.069s
    updateTorrentNumbers() time:       0.033s

HEAD^:
    Total wall clock:                 96.132s
    updateTorrentNumbers() time:       0.179s

HEAD:
    Total wall clock:                 95.535s
    updateTorrentNumbers() time:       0.047s

After this commit the time of updateTorrentNumbers() is (almost) back to
the level that it was in HEAD^^.
2014-11-09 03:58:50 +03:00
Ivan Sorokin
e5c024967d Emit TorrentModel::dataChanged() signal only for specific rows, not for the entire table
In commit b50d733 TorrentModel moved from a periodic refresh, to using
postStatusUpdate(). In this transition I forgot to remove emition of
dataChanged() signal for the entire table.

According to my measurements this commit reduce CPU usage of qbittorrent
by a factor of 3:

Before:
   Total wall clock:                                      97.07s
   CPU time:                                              21.77s
   - Time spent in TransferListDelegate::paint():         14.60s
   - Time spent in TorrentModel::forceModelRefresh():      1.44s
   - Time spent in TorrentModel::stateUpdated():           0.02s

After:
   Total wall clock:                                      96.13s
   CPU time:                                               6.68s
   - Time spent in TransferListDelegate::paint():          2.63s
   - Time spent in TorrentModel::forceModelRefresh():     <0.01s
   - Time spent in TorrentModel::stateUpdated():           1.73s

As it is seen the time spent in painting is reduced by a factor of 6 (14.60->2.63) at
the cost of slightly increased time of notifications that model is
changed (1.44->1.73). The next commits attempt to address this issue.
2014-11-09 03:58:50 +03:00
Ivan Sorokin
2e55c1f307 Optimize torrentRow a bit
The problem is that torrentRow() does linear search over the list of all
available torrents. So it doesn't scale well for large number of
torrents. Removing the copying of QString from linear search
inner loop, speed up it considerably.

The proper solution should be using hash table instead of linear search.
This require more radical changes in TorrentModel and may be done in a
separate commit.
2014-11-09 03:48:58 +03:00
Gabriele
97c1b17cf0 Show a spinner while torrents are being uploaded 2014-11-09 00:30:37 +01:00
Gabriele
3d1617b2de Upload torrents on user command
Don't upload the torrents as soon as they are selected.

Also, adjust the HTML code to better place the upload button.
2014-11-09 00:28:41 +01:00
Gabriele
ee3a736787 WebUI: Return error in case uploaded files are not torrents 2014-11-09 00:28:41 +01:00