Commit graph

849 commits

Author SHA1 Message Date
Vladimir Golovnev (Glassez)
dfddda57b9
Properly reply to announce request 2018-03-09 17:41:06 +03:00
Chocobo1
b4f23d8154
Use faster code path
From Qt doc: Using this function is faster than using QFileInfo(file).exists() for
file system access.
2018-03-09 01:34:35 +08:00
Chocobo1
ed310c2dac
Avoid temporary QString allocations
Fix up 0457fd260e
2018-03-09 01:34:35 +08:00
Chocobo1
50167d40d7
Allow ADL lookup for helper function 2018-03-09 01:34:19 +08:00
Mike Tzou
5261d4375f
Merge pull request #8551 from Chocobo1/override
Fix warnings from linters
2018-03-09 00:36:52 +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
Vladimir Golovnev (Glassez)
1aca3b0adc
Parse URL query string at application level 2018-03-04 17:08:48 +03:00
Vladimir Golovnev (Glassez)
34295a78f2
Move ByteArray utils into Utils::ByteArray namespace 2018-03-02 17:23:21 +03:00
Mike Tzou
57163612ff
Merge pull request #8427 from Chocobo1/server2
Rewrite RequestParser
2018-03-02 16:07:12 +08:00
Mike Tzou
55c3db339b
Merge pull request #8455 from Chocobo1/large_torrent
Fix loading very large torrents. Closes #8449
2018-03-01 13:22:43 +08:00
Vladimir Golovnev
b26eb3d146
Merge pull request #8373 from glassez/search
Improve Search handling
2018-02-28 10:46:33 +03:00
Vladimir Golovnev
7cb6100c9c
Merge pull request #8471 from luis-pereira/use-qstring-ref
Don't create temporary substrings
2018-02-28 10:44:59 +03:00
Luís Pereira
0e421ae415 Don't create temporary substrings
Avoid temporary string allocations. They are only used to convert to
something else.
QString::xxxRef() returns a QStringRef. QStringRef avoids the memory
allocation and reference counting overhead of a standard QString by simply
referencing a part of the original string.
2018-02-26 11:39:36 +00:00
Vladimir Golovnev
6207855f3b
Merge pull request #8372 from thalieht/inactiverate
Expose the libtorrent fields for "dont_count_slow_torrents" to GUI.
Closes #5713.
2018-02-24 14:13:39 +03:00
Vladimir Golovnev
a65a70ab48
Merge pull request #8479 from thalieht/ratioLimitsCrash
Fix possible crash when using both share limits
2018-02-24 14:11:09 +03: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
thalieht
0e30659c26 Fix possible crash when using both share limits
Avoid possible crash in "torrent->name()" when processing seeding time of the torrent that already reached the ratio limit.
2018-02-23 17:13:56 +02:00
Chocobo1
f34dfca5e6
Enable Http/1.1 persistence connection
This enables reusing existing TCP connection instead of opening a new connection
for every request
2018-02-23 14:46:22 +08:00
Chocobo1
cec68c3fd7
Rewrite RequestParser
* Add more checks and also more strict checks for invalid conditions
* Add http version field
* Raise max request size to 64 MB
* Add author in license
* Use Qt5 new connect syntax
2018-02-23 14:46:17 +08:00
Vladimir Golovnev
5c2f698cb4
Merge pull request #8325 from luis-pereira/prevent-c++11-range-loop-detach
Prevent possible c++11 range-loop container detach
2018-02-22 16:28:04 +03:00
Chocobo1
f5fc2d52b8
Fix loading very large torrents. Closes #8449.
`torrent_info` constructor has default limits that can't be changed via
parameters, so we handle the loading process manually and explicitly
specifiy the limits to `bdecode()`.
The token_limit is also changed to 10000000.
2018-02-22 18:52:10 +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
Vladimir Golovnev
078982ada6
Merge pull request #8424 from glassez/fix-rss
Disable Auto TMM when RSS rule has save path. Closes #8411
2018-02-20 11:13:15 +03:00
Vladimir Golovnev (Glassez)
a0842a1e68
Don't convert POST parameter names to lower-case 2018-02-18 19:57:48 +03:00
Luís Pereira
ea1b0b26b1 Don't implicitly cast iterator to const_iterator
It prevents detachments:
To illustrate:

QMap<QString, QString> map;
/* code compiles and works fine but find() returns the non-const
   QMap::iterator that detaches!
*/
QMap<QString, QString>::const_iterator it = map.find("girish");

but also some subtle bugs:

QHash<int, int> wrong;
if (wrong.find(1) == wrong.cend()) {
    qDebug() << "Not found";
} else {
    /* find() detached the container before cend() was called, so it
       prints "Found"
    */
    qDebug() << "Found";
}

QHash<int, int> right;
if (right.constFind(1) == right.cend()) {
    qDebug() << "Not found"; // This is correct now !
} else {
    qDebug() << "Found";
}

Enforced by QT_STRICT_ITERATORS definition.
2018-02-17 17:02:52 +00:00
Vladimir Golovnev (Glassez)
176b2eb18b
Disable Auto TMM when RSS rule has save path
Closes #8411.
2018-02-16 14:02:01 +03:00
Vladimir Golovnev
98a1c111b9
Merge pull request #5287 from elFarto/master
Implement RSS Smart Filter
2018-02-16 13:43:38 +03:00
Mike Tzou
47048d8410
Merge pull request #8349 from Chocobo1/stats
Improve stats dialog
2018-02-16 15:31:01 +08:00
Mike Tzou
882fa7ecd4
Merge pull request #8336 from Chocobo1/coalesce
Add "Coalesce reads & writes" checkbox in advanced options
2018-02-16 15:30:17 +08:00
Vladimir Golovnev
d07ece53e6
Merge pull request #7610 from glassez/webapi2
Redesign Web API
2018-02-16 10:09:35 +03: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
thalieht
f50b4724a6 Expose the libtorrent fields for "dont_count_slow_torrents" to GUI:
inactive_down_rate
inactive_up_rate
auto_manage_startup
2018-02-08 14:14:39 +02:00
Stephen Dawkins
48cbccff1e Made smart episode filter regular expression configurable 2018-02-05 19:23:11 +00:00
Chocobo1
b9ec216aa5
Redefine CacheStatus.readRatio field.
Now it is defined as:
CacheStatus.readRatio = (blocks read from cache) / (blocks read from disk + blocks read from cache)
The 2 variables in denominator are counted separately and the formula before this change doesn't really make sense

Add percentage sign to "Read cache hits" stats
Also remove redundant header include
2018-02-02 23:41:42 +08:00
Chocobo1
543cbc6d1c
Add "Coalesce reads & writes" checkbox in advanced options
The setting is defaulted to ON for Windows. Closes #8295.
2018-01-30 22:46:14 +08:00
Vladimir Golovnev (Glassez)
27d8dbf13b
Redesign Web API
Normalize Web API method names.
Allow to use alternative Web UI.
Switch Web API version to standard form (i.e. "2.0").
Improve Web UI translation code.
Retranslate changed files.
Add Web API for RSS subsystem.
2018-01-28 19:16:24 +03:00
Stephen Dawkins
2845a791d0 Initial implementation of Smart Filter feature 2018-01-27 09:14:36 +00:00
Vladimir Golovnev (Glassez)
0fc1ad664f
Implement Qt wrapper for std::runtime_error 2018-01-23 11:08:41 +03:00
Vladimir Golovnev (Glassez)
bb683bd393
Switch built-in Web UI html to HTML5 2018-01-23 11:08:37 +03:00
Vladimir Golovnev (Glassez)
69df8174b9
Allow to load TorrentInfo from data buffer 2018-01-23 11:08:32 +03:00
Vladimir Golovnev
0a45fc9ffe
Merge pull request #7990 from Piccirello/subnet-whitelist-refactor
Refactor ip subnet whitelist
2018-01-23 10:03:00 +03:00
Vladimir Golovnev (Glassez)
1c18edac76
Remove legacy and corrupted RSS settings 2018-01-21 20:01:56 +03:00
Chocobo1
fb698896c9
Fix translation context.
Partially addresses #8220.

Also sort include headers
2018-01-07 23:01:22 +08:00
Chocobo1
ec337a8a84
Sort filename lists in .pri files 2017-12-31 11:53:45 +08:00
Mike Tzou
267362a7a0
Merge pull request #7876 from Chocobo1/optionIcons
Fix gui issues on high DPI monitor
2017-12-31 11:42:55 +08:00
Vladimir Golovnev (Glassez)
22bdf98617
Don't process new/updated RSS rules when disabled 2017-12-27 20:01:40 +03: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
sledgehammer999
b11c33b2d9
Merge pull request #8068 from thalieht/readableFlags
Make peer information flags in peerlist more readable
2017-12-23 19:33:19 +02:00
sledgehammer999
cf9bad03aa
Fix application of speed limits on LAN and μTP connections. Closes #7745. 2017-12-23 19:19:08 +02:00
sledgehammer999
c5127d2eec
Merge pull request #8091 from sledgehammer999/fix_natural_sort
Fix natural sorting
2017-12-23 19:16:29 +02:00
sledgehammer999
5437974b85
Fix natural sorting when the common part of 2 strings ends partially in a number which continues in the uncommon part.
Closes #8080 #6732.
2017-12-21 17:00:37 +02:00
thalieht
5b52835377 Make peer information flags in peerlist more readable 2017-12-20 11:22:23 +02:00
Chocobo1
8dcf326576
Add source field in Torrent creator. Closes #7965.
This field is often used for cross-seeding between (private) trackers.
2017-12-09 00:39:50 +08:00
Thomas Piccirello
240f5b6718 Remove invalid subnets directly from list 2017-12-06 20:32:50 -05:00
Thomas Piccirello
d184bd8c82 Perform ip string validation inside setWebUiAuthSubnetWhitelist 2017-12-06 02:05:33 -05:00
Chocobo1
c405cb2f1c
Add struct TorrentCreatorParams for passing parameters
Filter out continuous newlines in Trackers field
Avoid adding empty url seed entries

Cleanup:
  Replace boost::bind
  Add const
  Use nullptr
  Use QString::SkipEmptyParts
  Rename variables
  Throw proper exception type
2017-12-06 01:56:36 +08:00
Chocobo1
c1a282aa7b
Fix missing qbt logo on login page in webUI. Closes #7953. 2017-12-02 14:31:48 +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
sledgehammer999
a55be5e58f
Stop logging IP filter parsing errors after a while.
When a lot of errors happen the resulting log lines introduce
a huge slowdown of the GUI, due to writing each log line to disk.

Closes #7755.
2017-11-29 15:49:59 +02:00
sledgehammer999
48c46dc79a
Fix crash on some systems when creating address object for 255.255.255.255
Closes #7735.
2017-11-27 19:06:37 +02:00
Vladimir Golovnev
a7da714b13
Merge pull request #7832 from glassez/rss-import
Implement Import/Export RSS rules. Closes #7721
2017-11-25 10:35:24 +03:00
Vladimir Golovnev (Glassez)
916cfcdb03
Implement Import/Export RSS rules in JSON format 2017-11-24 21:20:44 +03:00
Vladimir Golovnev (Glassez)
b8fc415870
Implement Import/Export RSS rules in legacy format 2017-11-24 16:19:16 +03:00
Vladimir Golovnev
342f5f1a09
Merge pull request #7821 from glassez/fix-rss
Fix RSS Parser. Closes #7751, #7763, #7768, #7786
2017-11-23 14:35:42 +03:00
sledgehammer999
d74efd839f
Merge pull request #7826 from Chocobo1/tcp
Change MixedModeAlgorithm default to TCP. Closes #7779.
2017-11-23 01:53:29 +02:00
Vladimir Golovnev (Glassez)
c0e48627ae
Fix RSS Parser
Closes #7751
Closes #7763
Closes #7768
Closes #7786
2017-11-22 19:11:37 +03:00
Chocobo1
534ed91d04
Change MixedModeAlgorithm default to TCP. Closes #7779.
MixedModeAlgorithm::Proportional will throttle TCP connections when utp
is in use and users is expecting maximum speed no matter what, so now
disable the throttling.
2017-11-22 22:39:52 +08:00
thoradia
ca5c1e8a15 Fix missing include in rss_feed.cpp
Fixes #7805.
2017-11-22 14:39:07 +01:00
Chocobo1
433b5a46cf
Fix crash when aborting a torrent creation process. Closes #7783.
The wait time wasn't long enough causing the thread to
terminate prematurely.
Also, to avoid crashing qbt entirely when creating a torrent for a very
big file, I decided to wait indefinitely here.
2017-11-21 18:33:47 +08:00
Chocobo1
034d71dce3
Wrap function into anonymous namespace 2017-11-21 18:23:39 +08:00
sledgehammer999
4927d26877
Fix english typo. 2017-11-21 02:14:44 +02:00
Vladimir Golovnev
f41cb8089d
Merge pull request #6779 from Piccirello/disable-web-auth
Add ip subnet whitelist for bypassing webui auth
2017-11-20 21:52:33 +03:00
Vladimir Golovnev (Glassez)
a3c9c1c386
Improve RSS events logging
Fix RSS log messages was untranslatable.
Add more logging.
2017-11-09 15:40:39 +03:00
Thomas Piccirello
95bf63330e Add ip subnet whitelist for bypassing webui auth 2017-11-08 22:39:49 -05:00
sledgehammer999
9f8e7917a8
Merge pull request #7657 from Chocobo1/upnp
Disable upnp & nat-pmp on startup if disabled in options. Closes #7338.
2017-10-31 18:24:28 +02:00
Chocobo1
1b652c882e
Refactor
Add const
Use Qt5 connect syntax
2017-10-31 19:09:01 +08:00
Chocobo1
601234e492
Explicitly set UPnP state on start-up. Closes #7338.
libtorrent 1.1 enables upnp by default.
2017-10-31 19:08:58 +08:00
sledgehammer999
6c804edadf
Change default settings for tracker/tier announces to mimick ìTorrent behavior. 2017-10-30 23:27:29 +02:00
sledgehammer999
3a5c0d9818
Allow to specify if announcing to all tiers is desired. 2017-10-30 23:27:28 +02:00
Mike Tzou
e8cf351b6a Merge pull request #7643 from Chocobo1/email
Allow SMTP sender to be set. Closes #7575.
2017-10-27 12:52:35 +08:00
Chocobo1
fc0628d35b
Allow SMTP sender to be set. Closes #7575. 2017-10-26 17:57:32 +08:00
Mike Tzou
1f7391737e Merge pull request #7445 from Chocobo1/fixAddTorrent
Disable processing socket events in findIncompleteFiles()
2017-10-25 23:00:35 +08:00
sledgehammer999
50471ec8c8
String fixes and optimizations mentioned by translators on Transifex. 2017-10-24 03:32:56 +03:00
Chocobo1
f3603d05e7
Disable processing events when adding torrents. Closes #7436.
webUI connection timeout & deletion might occur while
doing processEvents() and will result in use-after-free segfault.
2017-10-22 13:54:03 +08:00
Matthew Fioravante
8cd243b06b Add WebUi\Address config option 2017-10-21 09:32:30 -04:00
Mike Tzou
bd07cb91bb Merge pull request #7571 from Chocobo1/webui_download
[WebAPI] Add parameters for /command/download & /command/upload
2017-10-15 20:32:14 +08:00
Chocobo1
66b86888fc
Add uploadLimit, downloadLimit fields to AddTorrentData & AddTorrentParams 2017-10-11 16:23:58 +08:00
Eugene Shalygin
db35bb54e1 Make BitTorrent::TorrentState strongly-typed enum
This is needed to forward declare this type and pass it by value.

Conversion from/to QVariant are hanled via Q_DECLARE_METATYPE, while
TorrentState::toString() function was used in webui only and as such is
moved there.
2017-10-10 21:28:57 +02:00
Tim Delaney
19bb6f5fe0 Follow project coding style. Issue #2192.
--HG--
branch : magao-dev
2017-10-10 21:28:56 +02:00
Vladimir Golovnev
083bc71315 Merge pull request #7396 from thalieht/updownratio
Properly pre-select the selected torrent's current ratio limiting options in UpDownRatioDlg
2017-10-08 21:06:55 +03:00
thalieht
0717f0d60c Save ratio limits as int instead of string 2017-10-08 10:22:40 +03:00
thalieht
525fdd6c2b Coding style, use nullptr and other minor things 2017-10-08 10:20:54 +03:00
thalieht
f27e75e8fa Properly pre-select the selected torrent's current ratio limiting options in UpDownRatioDlg dialogs. Fixes #7352 2017-10-08 10:20:38 +03:00
Vladimir Golovnev
66a6674cbc Merge pull request #7490 from glassez/category-path
Allow to set explicit save path for Category from GUI
2017-09-29 14:25:40 +03:00
Vladimir Golovnev (Glassez)
3ec992474d
Implement TorrentCategoryDialog class 2017-09-27 21:25:22 +03:00
Mike Tzou
e8250104c8 Merge pull request #7429 from silverqx/preview-modal-ux
Improved ux in preview dialog
2017-09-27 20:33:31 +08:00
Mike Tzou
1fe9272a8f Merge pull request #7480 from Chocobo1/lastAct
Fix last activity calculation
2017-09-26 15:17:35 +08:00
silver
3b4fd35dde
Persist size and treeview header state in preview dialog
- renamed variable m_headerState
 - renamed PreviewSelect class to PreviewSelectDialog
 - renamed previewselect files to previewselectdialog
2017-09-25 16:33:17 +02:00
silver
ef63202be2
Follow project coding style. Issue #2192. 2017-09-24 16:18:39 +02:00
Chocobo1
62493c672d
Fix last activity calculation. Closes #7461
`time_since_upload` & `time_since_download` can be -1, so filter them out
2017-09-24 21:06:34 +08:00
sledgehammer999
c7e35a1801 Merge pull request #7451 from sledgehammer999/report_delete_fail
Better reporting of success/failure of torrent and file deletion.
2017-09-21 23:36:53 +03:00
Mike Tzou
fc5d49bf9a Merge pull request #7460 from Chocobo1/tribool
Use smaller data type for TriStateBool
2017-09-21 20:17:34 +08:00
sledgehammer999
b9e233601d Merge pull request #7446 from Chocobo1/utpOnly
Add uTP only mode option
2017-09-19 01:45:58 +03:00
sledgehammer999
8f16388915
Better reporting of success/failure of torrent and file deletion. 2017-09-17 23:04:12 +03:00
Chocobo1
d143929454
Use smaller data type for TriStateBool 2017-09-18 02:21:47 +08:00
Chocobo1
45a0c5558a
Add comboBox for selecting BitTorrent protocol. Closes #6316.
Use unicode string C_UTP in place of "uTP"
2017-09-18 01:52:57 +08:00
Chocobo1
a1d46a278b
Change default value of m_diskCacheSize. New default is 64 MB. 2017-09-14 20:32:04 +08:00
Chocobo1
855772ae5a
Fix dereferencing freed pointer. Closes #7420.
The torrent is removed from session after `deleteTorrent()`
yet we still invoke `torrent->name()`, thus result in crash.
2017-09-11 13:16:34 +08:00
Vladimir Golovnev
4cd3a37b4a Fix suggest_mode setting
Actually suggest_mode is of type int.
2017-08-31 22:02:52 +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
Mike Tzou
1afd5f70dd Merge pull request #3235 from Chocobo1/session_option
libtorrent session options
2017-08-24 11:35:15 +08:00
Vladimir Golovnev
a6868e2b25 Merge pull request #7313 from glassez/sched
Don't disable scheduler when manually switching speed limits. Closes #7306
2017-08-23 17:05:28 +04:00
Vladimir Golovnev
bda5be8e4c Skip user input events when adding torrent
Closes #7327.
2017-08-23 11:14:34 +03:00
Vladimir Golovnev (qlassez)
93f5d4058d
Improve BandwidthScheduler
Don't disable scheduler when manually switching speed limits.
Closes #7306.
2017-08-23 09:48:31 +03:00
Chocobo1
2da2054ccf
Use enums for settings 2017-08-21 20:30:26 +08:00
Chocobo1
3f5fa0025d
Add sanitize helper clampValue() 2017-08-21 16:50:56 +08:00
Chocobo1
f4be165767
Add send_buffer_watermark send_buffer_low_watermark
send_buffer_watermark_factor knobs
2017-08-21 16:50:14 +08:00
Chocobo1
55a1628a5e
Add suggest_mode knob 2017-08-21 16:50:14 +08:00
Chocobo1
6c32f6beff
Add choking_algorithm & seed_choking_algorithm knob 2017-08-21 16:49:45 +08:00
Chocobo1
21ec8fe53f
Add allow_multiple_connections_per_ip knob. Closes #5884. 2017-08-21 16:48:38 +08:00
Chocobo1
4185209036
Add mixed_mode_algorithm knob 2017-08-21 16:48:38 +08:00
Chocobo1
6150e0c56b
Add guided_read_cache knob
cleanup header include order
2017-08-21 16:48:37 +08:00
Eugene Shalygin
ef1597e45b Fix ignoring of incorrect version strings in search plugins. Closes #7101.
Printing of Version with all components set to zero was segfaulting due
to underflow in array index. Also add log message for such plugins.
2017-08-20 22:44:20 +02:00
sledgehammer999
907f222a73
Switch settings to signed int because libtorrent expects them that way. 2017-08-18 20:21:39 +03:00
sledgehammer999
b649d61e8b
Options to better memory control by libtorrent. Closes #7029. 2017-08-18 20:21:37 +03:00
sledgehammer999
cccb22f0e3 Merge pull request #7282 from glassez/fsutils
Improve utils/fs.* and fix coding style
2017-08-15 22:47:39 +03:00
sledgehammer999
19fcd3dad6
Fix broken build. 2017-08-15 22:12:16 +03:00
sledgehammer999
e5ea3bd707 Merge pull request #7253 from briankendall/fix_objc_errors
Fixed mac specific compiler errors and cleaned up Objective C code. Closes #7252
2017-08-15 21:06:09 +03:00
sledgehammer999
7bb9c69c08
Fix connection problems when a specific interface/ip is configured.
Closes #7235.
Bug related to #7099 and Qt.
2017-08-15 19:33:45 +03:00
sledgehammer999
c2a8970109
Fix calculation of 'Average time in queue' stat under libtorrent 1.1.x 2017-08-15 17:38:41 +03:00
Vladimir Golovnev (qlassez)
59c14801cc
Improve utils/fs.* and fix coding style 2017-08-15 16:17:57 +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
Vladimir Golovnev
219a6b3ad1 Merge pull request #7267 from glassez/remove-temp
Don't remove shared temp folder
2017-08-13 17:00:40 +04:00
Vladimir Golovnev (qlassez)
3801150a7a
Don't remove shared temp folder
Don't remove shared temp folder when torrent finished and moved to
its "complete" folder. Only torrents with stripped root folder
have subfolder in temp folder so they should remove it.
2017-08-13 14:17:12 +03:00
sledgehammer999
1b8cda7924
Follow project coding style. 2017-08-12 16:23:15 +03:00
sledgehammer999
31a4309077
Catch possible exceptions when parsing IPs. Closes #7249. 2017-08-12 16:23:14 +03:00
Brian Kendall
62b956946f Fixed mac specific compiler errors and cleaned up Objective C code
Created new file src/gui/macutilities.mm, moved code from mainwindow.cpp and torrentcontentmodel.cpp that used the Objective C runtime into it and converted it to actual Objective C. Rewrote pixmapForExtension() so that it doesn't call into private Qt functions.
2017-08-11 20:51:16 -04:00
Vladimir Golovnev (qlassez)
7380bfa9e4
Remove legacy RSS settings after converting
Closes #7226.
2017-08-09 22:01:30 +03:00
sledgehammer999
6270433237
Fix explicit Torrent Management Mode in Add New Torrent dialog. Closes #5602. 2017-08-07 20:01:30 +03:00
sledgehammer999
e1f514042f Merge pull request #7207 from glassez/move-torrent
Don't replace existing files when manually relocating torrent
2017-08-05 20:26:05 +03:00
Vladimir Golovnev (qlassez)
7d78457fe0
Don't replace existing files when relocating torrent 2017-08-05 20:17:44 +03:00
Vladimir Golovnev (qlassez)
f067b8b37c Don't remove shared temp folder 2017-08-05 19:53:23 +03:00
Vladimir Golovnev (Glassez)
5f47d3b021 Don't create subfolder inside temp folder 2017-07-29 18:04:23 +03:00
Vladimir Golovnev (Glassez)
d22b626a02 Fix temporary subfolder isn't deleted 2017-07-28 15:16:02 +03: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
22ea0be917 Merge pull request #7099 from evsh/set-inet-outgoing
Set interface for outgoing traffic.
2017-07-13 11:13:07 +02:00
Eugene Shalygin
934133772e Set interface for outgoing traffic.
This sets interface for outgoing traffic to the same as for ingoing
(listetning) with libtorrent 1.1.x.
2017-07-12 21:28:00 +02:00
Chocobo1
0532d546d7
Implement HTTP host header filtering
This filtering is required to defend against DNS rebinding attack.
2017-07-12 17:26:13 +03:00
Eugene Shalygin
23616d5dd0 Merge pull request #7064 from evsh/cachesettingvalue-enum
Implement enum support in CachedSettingValue
2017-07-11 16:03:20 +02:00
sledgehammer999
7a478424cc
Revert "Drop python2 support.". Closes #7005.
This reverts commit 7d030b4cd9.
2017-07-06 01:07:09 +03:00
Eugene Shalygin
ff710ebd2c fixup! Implement enum support in CachedSettingValue 2017-07-05 13:41:08 +02: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
Vladimir Golovnev
4d28f8f48d Fix RSS with normal links do not work (#7016)
Fix regression of RSS code redesign.
Closes #7003.
2017-06-30 11:16:40 +03:00
Vladimir Golovnev
3181469d87 Merge pull request #6911 from tgregerson/tags
Add a Tags system to the GUI to expand torrent organization / filtering options. Closes #13.
2017-06-26 15:57:27 +03:00
Tony Gregerson
467e516801 Add a Tags (multi-label) feature to the GUI. Closes #13.
See https://github.com/qbittorrent/qBittorrent/issues/13 for details.
2017-06-25 13:53:07 -05:00
sledgehammer999
70ae05c3de
Pad shorter python versions. Closes #6877. 2017-06-25 17:20:51 +03:00
sledgehammer999
7d030b4cd9
Drop python2 support. 2017-06-25 17:20:50 +03:00
sledgehammer999
a77e1c9f36
Use qt5 connect style for searchengine, pluginselectdlg and searchwidget. 2017-06-22 18:54:30 +03:00
sledgehammer999
34c29b78f9
Update the backend when a new plugin favicon is downloaded. 2017-06-15 22:32:43 +03:00
sledgehammer999
793ed7148f
Remove code that expects bundled search plugins. 2017-06-15 22:32:40 +03:00
sledgehammer999
4ab117d946
Remove possible double check of the same thing. 2017-06-15 22:32:38 +03:00
sledgehammer999
d88f0f36e0 Merge pull request #6889 from Chocobo1/lowercase
Convert all http header name constants to lowercase
2017-06-14 02:38:57 +03:00
Chocobo1
8419ca87f9 Fix KEEP_ALIVE_DURATION value
I intended to specify 7 seconds, which should be 7000 milliseconds
2017-06-07 21:45:47 +08:00
Vladimir Golovnev
c503583046 Merge pull request #6864 from glassez/rss
Improve RSS Article handling
2017-06-02 19:47:08 +03:00
Chocobo1
45c21f62f9 [WebAPI] Convert all header name constants to lowercase
This save us another transition when some day we implements HTTP/2
(which all headers are in lowercase).
2017-06-02 21:55:16 +08:00
sledgehammer999
b5c0d90e9c Merge pull request #6842 from Chocobo1/countPieces
[TorrentCreator] Show total number of pieces. Closes #6774.
2017-06-02 08:56:10 +03:00
Chocobo1
087856d3d8
[WebUI]: Implement CSRF defense
Bump API version
2017-06-01 19:37:57 +03:00
Vladimir Golovnev (Glassez)
4021bf68f7 Use constants for article field names in RSS::Feed 2017-06-01 16:04:11 +03:00
Vladimir Golovnev (Glassez)
02f77a05dc Improve RSS article parsing
Use QLatin1String for string literals.
Use predefined constants for article hash table keys.
2017-06-01 16:04:10 +03:00
Vladimir Golovnev (Glassez)
080dd79875 Store all RSS Article data in auto downloading job 2017-06-01 16:04:04 +03:00
Vladimir Golovnev (Glassez)
475348595c Improve RSS::Article class
Store more RSS article fields.
Don't use legacy article field names in Parser code.
2017-06-01 15:57:14 +03:00
sledgehammer999
d3ccbe4f86
Fix format-truncation warning. 2017-06-01 01:09:25 +03:00
Eugene Shalygin
74cecb1b6c Replace C-style casts with C++ ones 2017-05-29 17:25:42 +02:00
Noam Gal
bd90614413 Get more RSS article data 2017-05-28 10:17:59 +03:00
Vladimir Golovnev
e3671050d1 Merge pull request #6840 from glassez/statusbar
Add show/hide statusbar option (Supersede #4029)
2017-05-27 22:22:34 +03:00
Mike Tzou
20f6bf817e Merge pull request #6836 from Chocobo1/api
[WebAPI] Get piece information/state
2017-05-27 18:28:22 +08:00
Chocobo1
c618214061 [TorrentCreator] Show number of pieces. Closes #6774. 2017-05-27 16:37:08 +08:00
Mike Tzou
b6080c19c2 Merge pull request #6834 from Chocobo1/cookie
[WebUI] Make cookie parsing robust
2017-05-26 23:56:35 +08:00
Chocobo1
3933790bda Add new webUI API. Closes #6457.
Now getting piece information for a specific torrent is possible via:

* Returns an array of states (integers) of pieces in order. Defined as:
  "0=not downloaded", "1=downloading", "2=downloaded".
  GET /query/getPieceStates/<torrent_hash>

* Returns an array of hashes (strings) of pieces in order:
  GET /query/getPieceHashes/<torrent_hash>
2017-05-26 14:37:03 +08:00
takiz
0940a8a764 Add show/hide statusbar option 2017-05-25 16:35:21 +03:00
Chocobo1
712e6a0e5c Refactor out helper function Utils::String::unquote
Remove redundant include
2017-05-25 18:44:35 +08:00
Mike Tzou
1f9ccb44a3 Merge pull request #5196 from Chocobo1/creator_pr
Revamp Torrent creator
2017-05-24 17:40:10 +08: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
Chocobo1
7e87eeb2d4 Use QThread::requestInterruption() instead of m_abort flag 2017-05-24 11:54:42 +08:00
Chocobo1
d277696acc Add global.h file 2017-05-24 11:54:42 +08:00
Chocobo1
386b93bb0f Fix the file size sum igonred files starting with a dot: ".name"
Make the computation iterative instead of recurisve to avoid stack overflow.

Enlarge read size to enable better performance.
Remove `QFile::close()` calls, QFile automatically close them in dtor.
2017-05-24 11:54:42 +08:00
Chocobo1
8efcc335de Switch to use SettingsStorage class 2017-05-24 11:54:42 +08:00
Chocobo1
009798f690 Follow header include rule 2017-05-24 11:54:42 +08:00
Chocobo1
d8c0a40b1f Add explicit error handling when filesCount() returns negative value
Fix coverity CID 162538
2017-05-20 14:01:58 +08:00
Chocobo1
562080de69 Initialize variable
Fixes coverity CID 161628
2017-05-20 11:38:39 +08:00
Naikel Aparicio
9ba00d7035 Implemented share limit by seeding time 2017-05-17 14:33:17 -04:00
Eugene Shalygin
71ce193f5a Fix cmake build broken by #6724.
PR #6724 deletes two source files, let's delete them from
CMakeLists.txt.
2017-05-16 18:55:52 +02:00
Eugene Shalygin
4d53d8d1ba Merge pull request #6785 from KingLucius/freespaceondisk
Get disk free space size via QStorageInfo instead of native API. Closes #6780
2017-05-16 18:19:16 +02: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
KingLucius
aea887a30f cross-platform free space on disk 2017-05-15 23:05:23 +02:00
Chocobo1
3fb8ff281f Tweak CachedSettingValue
* Add another constructor to save a call to proxyFunc when its not needed
  note that this call is a virtual function call
* Pass in proxyFunc by const reference
* Move get methods together
2017-05-15 12:31:26 +08:00
Chocobo1
b9403774e6 Use QBT_EXT in all places
Cleanup headers on the way
2017-05-13 16:20:32 +08:00
Eugene Shalygin
92a7479e2d Merge pull request #4994 from evsh/availability-column
Add availability column to torrent contents
2017-05-12 17:47:51 +02:00
Eugene Shalygin
5c10a24923 Add availability column to torrent properties window 2017-05-12 17:15:00 +02:00
Eugene Shalygin
bc18bf1ab4 Add TorrentHandle::availableFileFractions() function
The function returns list of availability values for all torrent files.
The availability here is different to that one in the progress bar. Here
it shows what part of the file's pieces is available (i.e. we do not count
availability > 1 for a piece).
2017-05-12 17:14:59 +02:00
Vladimir Golovnev
f3658daf72 Merge pull request #6699 from fbriere/issue/6265-top-dirname-while-adding
Use actual top-level dirname to look for incomplete files in new torrent
2017-05-11 15:23:16 +03:00
Vladimir Golovnev
692e4a986a Merge pull request #6757 from glassez/rss
Forward add/remove child RSS Item event as set of add/remove Articles events
2017-05-10 16:58:49 +03:00
Vladimir Golovnev (Glassez)
fbda237cc4 Fix local IP addresses 2017-05-10 13:54:29 +03:00
Vladimir Golovnev (Glassez)
26f645bd6c Don't create redundant "buf" variable 2017-05-10 13:54:29 +03:00
Vladimir Golovnev (Glassez)
a4d2df575e Don't use deprecated torrent_handle::set_tracker_login 2017-05-10 13:54:29 +03:00
Vladimir Golovnev (Glassez)
1d3dbcb9d2 Don't use deprecated fields of torrent-related alerts 2017-05-10 13:54:29 +03:00
Vladimir Golovnev (Glassez)
5dc54aa224 Don't use deprecated torrent_status fields 2017-05-10 13:54:28 +03:00
Vladimir Golovnev (Glassez)
72a54910e9 Don't use deprecated peer_info fields 2017-05-10 13:54:28 +03:00
Vladimir Golovnev (Glassez)
a2f82be6c2 Don't use deprecated url_seed_alert fields 2017-05-10 13:54:28 +03:00
Vladimir Golovnev (Glassez)
13b04f8d2d Don't use deprecated settings_pack members 2017-05-10 13:54:27 +03:00
Vladimir Golovnev (Glassez)
bdca55f15c Use new Session Statistics feature 2017-05-10 13:24:51 +03:00
Vladimir Golovnev (Glassez)
8a6d8f3953 Use cached SessionStatus and CacheStatus 2017-05-10 13:24:37 +03:00
Vladimir Golovnev (Glassez)
78d6b14fe8 Don't use deprecated torrent_info fields 2017-05-10 12:43:49 +03:00
Chocobo1
446b3307f9 Make method const 2017-05-09 14:21:55 +08:00
Chocobo1
b4baeaaf23 Pass arguemnts by const reference 2017-05-09 14:15:45 +08:00
Chocobo1
42c17ea5ce Fix argument name differ in definition & declaration 2017-05-09 14:12:36 +08:00
Chocobo1
3739bcc270 Initialize struct member 2017-05-09 13:51:12 +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
Vladimir Golovnev (Glassez)
a36848b5c0 Forward add/remove child RSS Item as add/remove Articles 2017-05-07 18:49:21 +03:00
Vladimir Golovnev (Glassez)
f8debdea67 Fix Item::unreadCountChanged() emit in wrong place 2017-05-07 18:40:42 +03:00
Vladimir Golovnev
c1e3e2a745 Revert "Guard the flag used for deferred session configure." (#6733)
This reverts commit 5cbc7b16c0.
2017-05-02 14:39:47 +03:00
Chocobo1
7d1ac06ce2 Fix stack overflow in Utils::Gzip::decompress
Anyway, use std::vector to allocate memory on the heap (in compress() too)
2017-05-02 12:47:07 +08:00
Chocobo1
2258e4d5ed Fix automatedrssdownloader position 2017-05-01 15:32:08 +08:00
Chocobo1
933f9f1451 Fix optionsdlg position 2017-05-01 15:31:58 +08:00
Chocobo1
7eaa5987c8 Fix dialogs didn't position on the correct screen which qBittorrent window is on. Closes #1690, #2474, #3538. 2017-05-01 14:33:25 +08:00
sledgehammer999
4ea9a2f07e Merge pull request #5532 from briankendall/torrent_command_line_arguments
Command line arguments for specifying options when adding torrents
2017-04-30 22:25:21 +03:00
Brian Kendall
eba41978b0 Added command line arguments for specifying options when adding torrents
Arguments include adding torrents as paused/started, skiping hash check, setting category, downloading in sequential order, downloading first and last pieces first, and skipping the 'add new torrent' dialog. Added TriStateBoolOption class for specifying options that don't have a default value when unused (e.g. add-paused). Also improved command line usage text to include more information, have better organization, and not exceed 80 columns in width. Also also added firstLastPiecePriority field to BitTorrent::AddTorrentData, and modified TorrentHandle so that if first/last piece priority should be on, it will be toggled on after the torrent's metadata has loaded.
2017-04-30 14:22:30 -04:00
sledgehammer999
0a5bb6685f Merge pull request #6654 from Chocobo1/persistence
Webui server fixes
2017-04-30 16:34:23 +03:00
Frédéric Brière
e8f6149a6d findIncompleteFiles(): Replace dir listing with individual checks. Closes #6265.
Looking for incomplete files in a new torrent by using a pre-generated
directory listing presents several disadvantages:

  - It requires us to extract the top-level directory name (in case it
    was renamed).
  - It requires us to know whether the top-level directory was stripped.
  - In the latter case, it may result in recursively traversing the
    entire contents of all downloaded torrents.

Calling QFile::exists() individually for each file solves all these
issues.

In so doing, the handling of single-file and multiple-file torrents are
rendered pretty much identical, and can therefore be merged.
2017-04-30 09:26:58 -04:00
Eugene Shalygin
172991e068 Merge pull request #6703 from evsh/cmake
cmake: set warning and error compiler options
2017-04-29 14:11:09 +02:00
Eugene Shalygin
c4e16aa820 cmake: set warning and error options
The set is far from perfect, but guards against common errors with GCC.
2017-04-29 13:30:28 +02:00
Vladimir Golovnev
93df0ef1d1 Move AddTorrentParams to its own header (#6712)
* Move AddTorrentParams to its own header

* fixup! Move AddTorrentParams to its own header
2017-04-29 11:49:40 +03:00
Vladimir Golovnev
70f1153413 Merge pull request #6694 from glassez/remove-temp
Remove torrent temp folder when it becomes unneeded
2017-04-29 11:44:15 +03:00
Vladimir Golovnev (Glassez)
160b7ff2d3 Remove torrent temp folder when torrent is deleted 2017-04-28 16:52:16 +03:00
Vladimir Golovnev (Glassez)
c56b4a25bc Remove torrent temp folder if it becomes unneeded 2017-04-28 12:30:48 +03:00
sledgehammer999
74fb070e78 Merge pull request #6693 from glassez/drop-qt4
Drop rest of qt4 support code
2017-04-26 15:12:55 +03:00
Vladimir Golovnev (Glassez)
335443e6a0 Drop QThread::msleep wrapper 2017-04-26 10:44:47 +03:00
sledgehammer999
b71ee80ecd
Optimize P2P filter parsing too. 2017-04-26 02:33:57 +03:00
sledgehammer999
fd7e69e1e0
Add helper function for logging messages. 2017-04-26 02:33:56 +03:00
sledgehammer999
51cf6bd2a5
Optimize DAT filter parsing. Parse in memory and in place instead of copying strings around. 2017-04-26 02:33:55 +03:00
sledgehammer999
8f6e04d779
Using new IP parser provided by @evsh. It is faster and uses less memory.
Class `DATIPv4Parser` was written by Eugene Shalygin <eugene.shalygin@gmail.com> (evsh on github).
2017-04-25 04:43:30 +03:00
sledgehammer999
f53dab8ad4
Output log messages for ip filter parsing errors. 2017-04-25 04:43:29 +03:00
sledgehammer999
05ab9fc355
Optimize ip filter parsing. 2017-04-25 04:43:22 +03:00
Vladimir Golovnev (Glassez)
3a3125ea2b Fix remove oldest article 2017-04-24 16:50:28 +03:00
Vladimir Golovnev
e433cbab97 Merge pull request #6677 from glassez/fix-create-subfolder
Allow strip root folder using default settings
2017-04-24 12:21:53 +03:00
Vladimir Golovnev (Glassez)
c799923d7d Allow strip root folder using default settings 2017-04-24 12:03:35 +03:00
Vladimir Golovnev (Glassez)
711be50e9c Fix AddTorrentData field types 2017-04-24 11:59:16 +03:00
sledgehammer999
032eb12585
Remove whitespace. 2017-04-24 04:25:49 +03:00
sledgehammer999
3cdc6fb978
Fix compiler warnings. 2017-04-24 04:24:32 +03:00
zywo
51104a9fb4 Fix CMake build 2017-04-23 09:29:27 +01:00
Vladimir Golovnev (Glassez)
989a70fe60 Redesign RSS subsystem 2017-04-23 09:03:46 +03:00
Eugene Shalygin
090a2edc1a Merge pull request #6651 from evsh/fix-config-dir-on-windows
Migrate from platform-specific code in Private::DefaultProfile to QStandardPaths
2017-04-22 13:09:17 +02:00
Eugene Shalygin
14e168039c Use explicit class for search plugin versions 2017-04-21 09:47:08 +02:00
Chocobo1
0b5de9ff54 Temporary revert to the old behavior. 2017-04-20 22:26:35 +08:00
Chocobo1
a35c6426ab Specify lib requirement: zlib >= 1.2.5.2 2017-04-20 22:26:35 +08:00
Chocobo1
617f19e599 Revise Utils::Gzip::decompress
Rename from uncompress to decompress
Change signature
Use proper casting
Use larger buffer for the output of inflate()
Reserve 1 MBytes for output buffer
Change function signature
2017-04-20 22:26:35 +08:00
Chocobo1
302c8ba850 Revise Utils::Gzip::compress code
Change signature
Add ZLIB_CONST define to make  z_stream.next_in const
Cast to zlib defined type Bytef*
Set memLevel to 9 in deflateInit2() for maximum performance
Revise compression loop
On returning false, free memory correctly by calling deflateEnd()
Reserve space by the estimation of deflateBound()
2017-04-20 22:24:50 +08:00
Chocobo1
94b496354b Rewrite rules for gzipping http response content 2017-04-20 22:22:17 +08:00
Chocobo1
4600e679d1 Implement robust acceptsGzipEncoding()
Adhere more to http/1.1 standard
2017-04-20 22:22:17 +08:00
Chocobo1
129172453b Fix "Content-Encoding" header is always created.
Was side effect of operator[]
2017-04-20 22:22:17 +08:00
Chocobo1
7d36c81949 Cleanup Http::responseGenerator()
Add CRLF definition
Rewrite loop using iterator, slightly more efficient
Rename variables
2017-04-20 22:22:17 +08:00
Chocobo1
6cb2f05a6c Demote to helper function
Rename function
2017-04-20 22:22:17 +08:00
Chocobo1
829e1399ca Convert Qstring to char arrays
Cleanup header
Sort constants
2017-04-20 22:22:17 +08:00
Chocobo1
4b2266a8e2 Send Date http header
It's not strict required but often expected.
change class to namespace
cleanup header
2017-04-20 22:22:17 +08:00
Chocobo1
9496b2a159 Always send Content-Length header.
Because without it, HTTP/1.1 (with persistence connection) clients will
keep waiting for more data.
2017-04-20 22:22:17 +08:00
Chocobo1
0b28fb6c6b Implement http persistence connection
Max simultaneous connection limit set to 500
This also release allocated memory of Connection instances at runtime instead of at program shutdown.
2017-04-20 22:22:14 +08:00
Eugene Shalygin
b06080e2e7 Replace platform-specific code in Private::DefaultProfile with QStandardPaths.
This should also fix Profile::location(SpecialFolder::Config) on
Windows.
2017-04-19 12:51:07 +02:00
sledgehammer999
018574e546 Merge pull request #6475 from OpenGG/master
[WebUI-API] Add "skip_checking" and "paused" to "/command/download" and "/command/upload"
2017-04-17 17:12:24 +03:00
sledgehammer999
48b0cf8a48 Merge pull request #6621 from Chocobo1/webui
Webui: refactor
2017-04-17 17:08:25 +03:00
sledgehammer999
ae0ec716cb
Fix inverted check when applying the IP filter. 2017-04-17 17:07:12 +03:00
sledgehammer999
c27108c97a Merge pull request #6630 from evsh/fix-6454
Start up torrents after UI was created. Fixes #6454.
2017-04-17 16:44:03 +03:00
Vladimir Golovnev (Glassez)
22178f9997 Fix strip torrent root folder 2017-04-15 17:33:20 +03:00
Vladimir Golovnev (Glassez)
6d7d566cdf Fix TorrentHandle rootPath() and contentPath() methods 2017-04-15 10:11:53 +03:00
Vladimir Golovnev (Glassez)
d413bc65ef Improve strip torrent root folder
Fix issue when you rename the "root item" in the "Add New Torrent" dialog
and uncheck "Create subfolder", it will create the subfolder with the
renamed name.
Fix PropertiesWidget first folder is expanded after app restart.
Strip root folder if torrent was added via magnet link.
Fix crash when you get name of torrent without metadata.
2017-04-15 10:11:53 +03:00
sledgehammer999
4b2d8a7941 Setting for creating subfolder on multifile torrents. Closes #588. 2017-04-15 10:11:53 +03:00
Eugene Shalygin
21a72c651f Start up torrents after UI was created. Fixes #6454.
Commit dd0537d changed torrents startup code adding alerts processing
into it. Therefore alerts were processed before UI code subscribed to
signals and therefore part of alerts was not reflected in the UI.

Thus here we do not start torrents in Session constructor, but do that
from Application::exec() after UI was constructed and is ready to process
signals.
2017-04-14 00:58:43 +02:00
Eugene Shalygin
a8d95dd8bd Save relative paths in fastresume files
Conditionally change absolute paths to relative in the fastresume data files.
The condition is specified by user via a command line parameter and
paths are relative to the profile dir.

On Windows the convertion to relative path is performed if the path and
the profile are on the same drive only.
2017-04-12 00:51:37 +02:00
Eugene Shalygin
0bf7fa15c1 Replace wrappers in base/utils/fs.h with Profile::SpecialFolders::location() 2017-04-12 00:50:33 +02:00
Eugene Shalygin
0f746ffd5a Add support for different configurations. Partially closes #465
It may be useful to have different configurations either for portable
versions or for debugging purposes. To implement this we add two
options, avaliable via command line switches
1. An option to change configuration name ("--configuration"). The name
supplied via this option is appended to
QCoreApplication::applicationName() to form "qBittorrent_<conf_name>"
name for the configuration files.
2. An option to provide a path do directory where all the settings are
stored (kind of profile directory). There is a shortcut "--portable"
which means "use directory 'profile' near the executable location".

In order to implement that we have to perform initialisation of the
profile directories before the SettingStorage and Preferences singletones
are initialised. Thus, options parsing shall be performed without defaults
read from preferences.
2017-04-12 00:50:28 +02:00
Chocobo1
d1ee54f6ea Refactor: move methods under the same #if section. 2017-04-11 23:16:16 +08:00
Chocobo1
7f346b49a7 Refactor: move the validation of certificates & key functions under Server class
Rename method
Add log messages
2017-04-10 21:18:59 +08:00
opengg
db3158c410 [WebUI] bugfix: RequestParser::splitMultipartData drop extra trailing newline. 2017-03-11 01:26:22 +08:00
sledgehammer999
9eb01fbe4d Merge pull request #6489 from evsh/fix-fileguard
Fix TorrentFileGuard::setAutoRemove() recursion problem. Closes #6488.
2017-03-08 12:18:58 +02:00
Eugene Shalygin
3091e03a95 Fix CMake build 2017-03-08 09:12:49 +01:00
Eugene Shalygin
3752d112fb Fix TorrentFileGuard::setAutoRemove() recursion problem. Closes #6488.
The problem was created during Qt 4 drop, when FileGuard was promoted
from a member to a base class. The function was blindly changed.
2017-03-08 09:05:58 +01:00
sledgehammer999
729fbb2e50
Change named of getter function. 2017-03-08 00:16:25 +02:00
sledgehammer999
aa51907387
Merge pull request #6369 from magao/issue6367
Use Perl-compatible regexes for RSS rules. Closes #6367.
2017-03-08 00:04:17 +02:00
sledgehammer999
be60b3e046
Change the user-agent format in the session.cpp too. 2017-03-07 23:41:29 +02:00
sledgehammer999
147f4d76e2 Merge pull request #6445 from Chocobo1/fix
Follow http user-agent format
2017-03-07 23:38:14 +02:00
sledgehammer999
7a6da3d3ce
Merge pull request #6479 from Chocobo1/qt4
Remove remainings of Qt4
2017-03-07 23:28:56 +02:00
sledgehammer999
431658bee6
Fix race condition where there was a chance to allow all ips between reparsings of the ip filter. 2017-03-07 23:16:50 +02:00
sledgehammer999
5084c01c2b Merge pull request #5877 from dzmat/to_pull_request
locally banned IP list managment (Closes #1837 )
2017-03-07 23:14:20 +02:00
Vladimir Golovnev (Glassez)
79e8f69fb6 Remove exception-suppress macros
Remove SAFE_* macros from TorrentHandle class.
These macros using seems to be unneeded.
2017-03-07 15:04:57 +03:00
Chocobo1
fa2128cbae Replace Utils::String::fromStdString() by QString::fromStdString() 2017-03-07 19:42:44 +08:00
Chocobo1
87384ca2a2 Replace Utils::String::toHtmlEscaped() by QString::.toHtmlEscaped() 2017-03-07 00:03:53 +08:00
Chocobo1
ffdcfe9686 Replace Utils::String::toStdString() by QString::toStdString() 2017-03-06 23:58:38 +08:00
Chocobo1
7539bee5c5 Remove remaining QBT_USES_QT5 defines.
Fixup of e64bb1de8c.
2017-03-06 23:47:07 +08:00