Commit graph

5155 commits

Author SHA1 Message Date
buinsky
9d51dcb663 WebUI: Set global upload max limit to 10000 KB/s 2014-12-16 05:01:55 +03:00
John Sebastian Peterson
e76ccd5926 saving splitter state on change
to not lose it on unclean exit
2014-12-15 23:26:44 +01:00
DoumanAsh
e357cf6231 Add combo box for fast search engine switch 2014-12-16 01:19:31 +03:00
DoumanAsh
722f1aaee8 Small fix of import in legittorrents engine 2014-12-16 01:19:19 +03:00
Vladimir Golovnev (Glassez)
96727f3206 Use forward declarations in main.cpp. 2014-12-15 21:43:01 +03:00
DoumanAsh
3b4548fe73 Remove vertor engine. Closes #2260.
Reason: tracker is closed and redirect to TorrentReactor
2014-12-15 21:01:41 +03:00
sledgehammer999
cac63e85e9 Merge pull request #2290 from john-peterson/save
saving torrent list view when changed
2014-12-15 17:25:49 +02:00
John Sebastian Peterson
5cab5bd129 saving torrent list view when changed
bc its otherwise forgotten by an unclean exit
2014-12-15 16:12:13 +01:00
sledgehammer999
ba054f34c8 Merge pull request #2172 from sorokin/fix-space-key
Implement sane behavior of space key in torrent content list. Closes #140.
2014-12-15 17:09:56 +02:00
Vladimir Golovnev (Glassez)
ede6715e72 Simplify main() logic.
Add Application class.
Put application initialization code to Application class.
Place some code into separate functions.
2014-12-15 17:24:31 +03:00
sledgehammer999
3d7ca1da77 Merge pull request #2284 from pmzqla/webui-features
WebUI changes
2014-12-14 23:18:58 +02:00
Gabriele
3be4257ad9 WebUI: MochaUI: Use same cursors on Gecko and WebKit 2014-12-14 21:26:39 +01:00
Gabriele
76999b598c WebUI: Prevent default action of links
This prevents anchors from being added to the URL.
2014-12-14 21:26:39 +01:00
Gabriele
2023ec043c WebUI: Check URI of GET and POST requests 2014-12-14 21:26:39 +01:00
Gabriele
e4da128fbb WebUI: Check that all and only the needed parameters are provided
Issue #1560.
2014-12-14 21:24:37 +01:00
Gabriele
f89baa4cf5 WebUI: Use case insensitive parameters for POST requests 2014-12-14 21:24:37 +01:00
Gabriele
6211a9855a WebUI: Assign min width to speed limit labels
Try to prevent continuous changes in the width of the labels.
2014-12-14 21:24:37 +01:00
Gabriele
2c930862c5 WebUI: Align elements in footer 2014-12-14 21:24:37 +01:00
Gabriele
f45e48c32a WebUI: Show connection status in the statusbar 2014-12-14 21:24:32 +01:00
Gabriele
f1477319ef WebUI: Show DHT nodes in the statubar 2014-12-14 20:16:44 +01:00
Gabriele
2aa344bb0a WebUI: Add missing comments 2014-12-14 16:20:37 +01:00
Gabriele
accfbdd304 WebUI: Use translated strings for speed limits dialogue 2014-12-14 16:20:37 +01:00
Gabriele
c53b19d6c1 WebUI: Allow to control the alternative speed limits
setGlobalDownloadLimit and setGlobalUploadLimit will now modify the
alternative speed limits if they are currently enabled and the regular
speed limits otherwise.

Add also two new commands to toggle the state of the alternative speed
limits and get their current state.

Closes #2203.
2014-12-14 16:20:37 +01:00
Gabriele
25e8cad16c WebUI: Update transfer info when speed limits are changed 2014-12-14 16:20:37 +01:00
Gabriele
b3a537f575 WebUI: Don't cache transfer info values
In this way speed limits are instantly updated.
2014-12-14 16:20:37 +01:00
Gabriele
9bd24a1408 Follow project coding style. Issue #2192. 2014-12-14 16:20:37 +01:00
Gabriele
16dcf39823 WebUI: Use relative sizes when saving panel height
This should prevent situations in which the properties panel completely
covers the transferlist on page load.

Save also the height whenever the window is resized since that changes
the height of the panels without saving the height.
2014-12-14 16:20:37 +01:00
Gabriele
95bf2ffc51 WebUI: Define some functions on load
These function shouldn't be called when the page is not loaded yet,
so it makes sense to define them later.
2014-12-14 16:20:37 +01:00
Gabriele
f740a4f30b WebUI: Make transfer info look like in the regular UI
The string for the transfer info was not translated as it should have.
Drop it completely.
2014-12-14 16:20:37 +01:00
Gabriele
e9d5a76d9c WebUI: Never show scrollbars in rate limits dialogue
A different DPI setting might make the elements in the dialogue big
enough to make the scrollbars appear, but not big enough to make them
useful. So, never show them.
2014-12-14 16:20:36 +01:00
Gabriele
f775e68666 WebUI: Use correct max ratio value
Closes #183.
2014-12-14 16:20:22 +01:00
Gabriele
d202a59671 Don't forget alternative speed limits changes 2014-12-14 11:47:20 +01:00
Gabriele
9b5fea1987 Don't put limits to the alternative speed limits 2014-12-14 11:47:08 +01:00
sledgehammer999
47e7b3fac2 Merge pull request #2277 from buinsky/master
Some changes in WebUI
2014-12-14 02:11:46 +02:00
buinsky
98deac97a0 Precise setting of upload/download limits 2014-12-14 00:58:37 +03:00
buinsky
c95e181378 Disable flooding debug messages 2014-12-14 00:58:35 +03:00
buinsky
364e4277ec Show upload and download limits in status bar 2014-12-14 00:58:18 +03:00
Vladimir Golovnev (Glassez)
1fcca6f434 Fix main.cpp indentation. Issue #2192. 2014-12-13 20:22:35 +03:00
Vladimir Golovnev (Glassez)
ebd71bbe4c Avoid unnecessary classes creation. 2014-12-13 19:42:11 +03:00
sledgehammer999
4665dd6ea2 Run lupdate. 2014-12-13 16:17:16 +02:00
sledgehammer999
11ef0f8729 Correct RSS tooltip text from 18e0d122fb. 2014-12-13 16:14:13 +02:00
sledgehammer999
45313040d0 Run lupdate. 2014-12-13 15:50:54 +02:00
sledgehammer999
7f7aaabec1 Add better translation notes for some strings. 2014-12-13 15:49:50 +02:00
sledgehammer999
c0ecaa6f58 Merge pull request #2274 from pmzqla/headless-password
headless: Update default password hash
2014-12-13 13:05:45 +02:00
buinsky
1b4dad214a Fix setting session id 2014-12-13 01:29:59 +03:00
Gabriele
04d2deabb5 Vertical align right-aligned elements of the transfer list
Same as d19b7a777f ("Vertical align right-aligned header text")
2014-12-12 21:23:12 +01:00
Gabriele
9a534f62d5 headless: Update default password hash
Use the md5 of 'adminadmin'.
2014-12-12 15:26:40 +01:00
sledgehammer999
861c8e9ffa Merge pull request #2262 from pmzqla/webui-changes
WebUI: Misc changes
2014-12-12 00:55:05 +02:00
Gabriele
7a58a3fe43 WebUI: Ensure that no concurrent timers exist 2014-12-11 22:05:40 +01:00
Gabriele
fdc975d900 WebUI: Add readonly attribute to comment textarea
Torrent comments should not be editable.
2014-12-11 00:02:11 +01:00
Gabriele
005e378cbd WebUI: Don't change cursor style for the file list
Changing the cursor is misleading, no operation can be done.
2014-12-11 00:02:11 +01:00
Gabriele
1332ca318b WebUI: Adjust size of columns in property panels 2014-12-11 00:02:11 +01:00
Gabriele
b46ecb4351 WebUI: Decrease frequency of updates of property panel
Now that the properties are loaded immediately when the selected torrent
or the property tab is changed, the frequency of the updates can be
reduced without affecting the user experience.

New update intervals:
 * General: 5 seconds (10 if qBT is not reachable)
 * Tracker list: 10 seconds (20 if qBT is not reachable)
 * File list: 5 seconds (10 if qBT is not reachable)
2014-12-11 00:02:11 +01:00
Gabriele
ac507261f8 WebUI: Remove extra parethesis 2014-12-11 00:02:11 +01:00
Gabriele
408cc7101e WebUI: Update torrent properties immediately
Don't wait for new data to be fetched, request them as soon as
they are required, i.e. when a property tab is loaded or when a
different torrent is selected.
2014-12-11 00:02:09 +01:00
Gabriele
c54271638b WebUI: Load properties tabs once
Don't reload HTML on tab change. Load the entire structure once and
keep the unused bits hidden.

Keep also the JS code separately, one file per tab.

NOTE: tabs content is not loaded. This will be fixed in the next commit.
2014-12-11 00:00:35 +01:00
Gabriele
cb9ed13d69 WebUI: Fix minor error
No timer is set when the functions are directly called.
2014-12-11 00:00:35 +01:00
Gabriele
d06d7b1f6d WebUI: MochaUI: Show entire error message 2014-12-11 00:00:35 +01:00
Gabriele
aded5422d8 WebUI: MochaUI: Check for undefined functions 2014-12-11 00:00:35 +01:00
sledgehammer999
6884845446 Ensure that the priority column has enough width when queueing is enabled. Closes #2263. 2014-12-11 00:04:33 +02:00
Gabriele
d055613125 WebUI: Make column width less variable in transferlist
Each column has a fixed width that allows to read its content.
The column for the name of the torrents has a variable width with an
upper and a lower constraint.

If the width of the page is not sufficient to fit the table, a scrollbar
will appear.
2014-12-10 21:56:37 +01:00
Gabriele
5fb32da49f WebUI: Center progressbars in trasferlist 2014-12-10 21:56:33 +01:00
Gabriele
0a512e41c9 WebUI: Select username on login page load
On logout, the input field is not empty. Select its content.
2014-12-10 21:56:27 +01:00
Gabriele
57e9165bb4 WebUI: Translate page title everywhere 2014-12-10 21:56:06 +01:00
sledgehammer999
1820a03f1d Merge pull request #2254 from buinsky/master
WebUI: Some changes
2014-12-10 22:50:35 +02:00
buinsky
2c93330ce9 Add space before priority menu item 2014-12-10 06:45:24 +03:00
buinsky
76e30ecf78 Dynamically show 'Start' and 'Pause' menu items 2014-12-10 06:44:41 +03:00
buinsky
2a712a81ea Add sequential downloading menu items 2014-12-10 04:50:39 +03:00
buinsky
6644791458 Follow project coding style. Issue #2192. 2014-12-10 04:50:21 +03:00
buinsky
44992056cf Restore selected filter on page load 2014-12-09 23:49:11 +03:00
buinsky
5b604ac251 Save torrent list sort order in local storage 2014-12-09 23:49:09 +03:00
buinsky
b4f39add08 Update torrent list after operations with torrents.
Immediately update torrent list after some operations with torrents.
Such as changing priority, adding torrent, pause/resume, etc.
2014-12-09 23:49:07 +03:00
buinsky
e8ad465c5f Follow project coding style. Issue #2192. 2014-12-09 23:49:05 +03:00
buinsky
57a4f3ed19 Hide priority menu items when queueing is disabled 2014-12-09 23:48:45 +03:00
Gabriele
2389495d96 Ignore .!qB when extracting file extensions 2014-12-09 21:32:26 +01:00
buinsky
28fad54cc4 Add higest and lowest priority icons into toolbar 2014-12-08 00:33:38 +03:00
buinsky
69506ec505 Follow project coding style. Issue #2192. 2014-12-08 00:14:55 +03:00
buinsky
ba40408c8d Images cache control code edit 2014-12-07 23:50:06 +03:00
buinsky
dbc5ffee75 Follow project coding style. Issue #2192. 2014-12-07 23:33:36 +03:00
sledgehammer999
513f71e000 Sync translations from Transifex and run lupdate. 2014-12-07 22:01:37 +02:00
Gabriele
0b6d5c662a WebUI: Use CSS to alternate row colors in transferlist
Keep the old code for IE < 9, the majority of the browsers
shouldn't need it.

Also, keep the CSS code in one place.
2014-12-07 15:53:33 +01:00
Gabriele
8a4028fc84 WebUI: Remove unused variable 2014-12-07 15:53:33 +01:00
Gabriele
d7071a81bd WebUI: Keep current preference for the title style in a variable
Read persistent value only when required.
2014-12-07 15:53:33 +01:00
Gabriele
6ee1c8851f WebUI: Update title immediately when showing/hiding rates 2014-12-07 15:53:33 +01:00
Gabriele
2226f166ac WebUI: Fix increasing frequency of XHR requests
ajaxfn() is called every time the torrent list is filtered. This function
calls itself after a predefined amount of time by setting a timer. If
the function is called manually without destroying the timer, the
frequency of the XHR requests will increase.

Fix this by saving a reference to each timer that is created so that
they can be later destroyed.

Add also two helper functions to request updated data safely.
2014-12-07 15:53:33 +01:00
Gabriele
aab2c34257 Follow project coding style. Issue #2192. 2014-12-07 15:53:28 +01:00
sledgehammer999
3672363207 Merge pull request #2191 from glassez/webui
WebUI: Implement server-side filtering, sorting and limit/offset.
2014-12-07 15:42:01 +02:00
sledgehammer999
14d27d982d Fix compilation with libtorrent 0.16.x. 2014-12-07 15:28:55 +02:00
Vladimir Golovnev (Glassez)
0e87b96beb WebUI: Drop client-side sorting. 2014-12-07 16:28:03 +03:00
Vladimir Golovnev (Glassez)
e279dcf904 WebUI: Implement limit/offset. 2014-12-07 16:28:01 +03:00
Vladimir Golovnev (Glassez)
59ff08c107 WebUI: Implement server-side sorting. 2014-12-07 16:27:59 +03:00
Vladimir Golovnev (Glassez)
8ff03d162d WebUI: Fix transferlist.html indentation. 2014-12-07 16:27:56 +03:00
Vladimir Golovnev (Glassez)
d938643c38 WebUI: Drop client-side filtering. 2014-12-07 16:27:54 +03:00
Vladimir Golovnev (Glassez)
0488ddafa5 WebUI: Fix indentation.
Fix indentation in client.js and dynamicTable.js.
2014-12-07 16:25:52 +03:00
Vladimir Golovnev (Glassez)
1a1db877bf Use QTorrentHandle::torrentState() in btjson. 2014-12-07 16:13:39 +03:00
Vladimir Golovnev (Glassez)
5edf0e251f WebUI: Implement server-side torrent filtering. 2014-12-07 16:13:37 +03:00
Vladimir Golovnev (Glassez)
e887f574d7 Implement QTorrentHandle torrentState() and eta(). 2014-12-07 16:13:33 +03:00
Vladimir Golovnev (Glassez)
c24610ec80 WebUI: Improve btjson.* indentation. 2014-12-07 16:13:32 +03:00
sledgehammer999
78d4258dac Remove unused variable. 2014-12-07 15:09:56 +02:00
sledgehammer999
cd52d1820d Show reason why a peer was blocked. Needs libtorrent 1.0.x. 2014-12-07 15:09:16 +02:00
sledgehammer999
96ec6777e6 Follow project coding style. Issue #2192. 2014-12-07 12:11:18 +02:00
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
Ivan Sorokin
97d08a5b2f Implement sane behavior of space key in torrent content list. Closes #140.
Definitions:

Selection in QTreeView consist of two things:

   currentIndex -- is a (dotted) cell where user clicked last time. Note
                   that it is a cell
   selectedIndexes -- is a set of cells (blue) of current selection.

Checkboxes in torrent content lists are belong to COL_NAME column.

Problem:

The problem is that spacebar toggled checkbox only in currentIndex
index. This has two consequences:

  1. It is impossible to toggle checkboxes on multiple rows
     simultaneously.
  2. If currentIndex is not in COL_NAME column a space key doesn't work
     at all. This problem is amplifyed by the fact that SelectionBehavior
     is set to SelectRows. So visually it is impossible to tell which
     column does it belong to. For end user it looks like "space doesn't
     work sometimes".

This patch addresses the problem by implementing TorrentContentTreeView
derived from QTreeView and overridding keyPressEvent(QKeyEvent*).

The code of TorrentContentTreeView::keyPressEvent is written under
inspiration from QAbstractItemView::keyPressEvent and
QItemDelegate::editorEvent.
2014-11-16 17:19:04 +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