Commit Graph

14060 Commits

Author SHA1 Message Date
Charles Kerr 932a72e61d
refactor: remove tr_variantDictFindStr from transmission-gtk (#2158) 2021-11-14 13:14:45 -06:00
Charles Kerr 58f13b509f
refactor: remove tr_variantDictFindStr from transmission-edit (#2157) 2021-11-14 12:24:30 -06:00
Charles Kerr 9d3791ab1d
refactor: remove tr_variantDictFindStr from transmission-remote (#2155) 2021-11-14 11:11:29 -06:00
Charles Kerr 47d41f51bf
build: disable exit-time-destructor warnings in GTK client (#2154)
* build: disable exit-time-destructor warnings in GTK client

* build: re-enable deprecation warnings (fixed by #2129)
2021-11-14 10:12:29 -06:00
Charles Kerr 7b772e73e6
fixup! refactor: remove tr_piece struct (#2059) (#2153)
fix: off-by-one when marking a range of pieces as untested
2021-11-14 10:12:02 -06:00
Mike Gelfand 1c800511d7
Fix torrent counts in tracker filter bar combo (GTK client) (#2144)
Total count was correct, but per-tracker counts were 1 more than in
reality.
2021-11-14 14:46:33 +03:00
Charles Kerr 3d38e01a13
refactor: tr_session.congestion (#2151)
* refactor: tr_session.congestion
2021-11-14 00:41:44 -06:00
Charles Kerr d55474161e
refactor: rpc whitelist (#2150)
* refactor: make rpc-whitelist string_view-friendly
2021-11-14 00:02:45 -06:00
Charles Kerr 861474e0ce
refactor: tr session.tos (#2149)
* refactor: make tr_session.tos string_view-friendly
2021-11-13 23:23:19 -06:00
Mike Gelfand c705e7d9bf Update AppVeyor AWS credentials 2021-11-14 06:16:11 +03:00
Charles Kerr 99aeaa0eaf
refactor: tr_ssha1(), tr_ssha1_matches() (#2148)
* refactor: make tr_ssha1 and tr_ssha1_matches string_view-friendly
2021-11-13 20:03:01 -06:00
Charles Kerr 7ff6756ac5
refactor: tr session.blocklist (#2147)
* refactor: tr_session.blocklist
2021-11-13 19:09:33 -06:00
Charles Kerr 0be95b5074
refactor: tr_session.scripts (#2146)
* refactor: tr_session.scripts
2021-11-13 17:33:18 -06:00
Mike Gelfand f0f81f9907 Add missing i18n include to Application (GTK client) 2021-11-14 01:33:16 +03:00
Mike Gelfand c8d6087759 Avoid implicit narrowing casts in Session (GTK clent) 2021-11-14 01:32:13 +03:00
Charles Kerr 903338af72
refactor: tr_session.incomplete_dir (#2145) 2021-11-13 14:49:10 -06:00
Dzmitry Neviadomski b573d0c77f
Fix building with Xcode 13.1 and macOS 12.0 SDK. (#2141)
Fixes #2140
2021-11-13 22:22:49 +03:00
Charles Kerr a8f640c559
refactor: tr_dirSpace() (#2143)
* refactor/tr_dirSpace
2021-11-13 12:09:14 -06:00
Charles Kerr 86f4e37571
refactor: tr_sys_path_is_relative() takes a string_view (#2142)
* refactor: tr_sys_path_is_relative() takes a string_view
2021-11-13 10:08:50 -06:00
Mike Gelfand e144ad6da8
Fix pending_request_data memleak in Session (GTK client) (#2139) 2021-11-13 16:57:22 +03:00
Mike Gelfand 7c3f8b5701
Null-initialize MainWindow::Impl::popup_menu_ (GTK client) (#2138) 2021-11-13 15:59:39 +03:00
Mike Gelfand 1080a5b3f4
Include GTK client icon in resources once (#2137)
There is a fallback mechanism in GTK: when looking for an icon named
foo-a-b-c, it'll also try to find foo-a-b, foo-a, and foo, so the only
icon necessary (if all of them default to the same one) is foo. Given
that we're also installing this icon, including it in resources doesn't
make a lot of sense, by I'm leaving it just in case anyway (useful when
debugging without installing).
2021-11-13 15:20:16 +03:00
Charles Kerr 254d837ddf
fixup! refactor: make piece checksums private (#2130) (#2136) 2021-11-13 00:53:52 -06:00
Charles Kerr 6571be2b95
feat: add tr_strvPath() (#2134)
* feat: add tr_strvJoin

* feat: add tr_strvPath
2021-11-12 18:10:04 -06:00
Charles Kerr 4091f273fa
refactor: prefer tr_variantDictFindStrView() in tests (#2132)
* refactor: prefer string_view in tests
2021-11-12 12:04:55 -06:00
Charles Kerr d1f8c28fcd
refactor: make piece checksums private (#2130)
* refactor: remove tr_info.pieces
2021-11-12 10:42:51 -06:00
Mike Gelfand 82b3da0a54
Don't use deprecated GTK APIs (#2129)
* Don't use deprecated Glib::Thread

* Don't use deprecated stock ID APIs

* Don't use deprecated operator const void* in IconInfo

* Don't use deprecated Gtk::TreeView::set_rules_hint()

* Don't use deprecated Gtk::Widget::set_margin_left()

* Don't use deprecated Gtk::UIManager

* Don't use deprecated sigc::mem_ptr accepting object pointer

* Enable {GDK,GIO,GLIB,GTK,PANGO,SIGCXX}MM deprecation guards

* Enable GTK deprecation guard

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2021-11-12 12:12:50 +03:00
Dzmitry Neviadomski 319e1fc6bb
Replace C rand() with uniform_int_distribution and mt19937. (#2089)
Reuse random engine and distribution itself and change only
distribution bounds via lightweight param type.
2021-11-11 13:03:33 -06:00
Dzmitry Neviadomski 53f799ada6
Migrate macOS BlocklistDownloader to NSURLSession. (#2101)
Co-authored-by: Charles Kerr <charles@charleskerr.com>
2021-11-10 12:55:15 -06:00
Dzmitry Neviadomski 1449ccac49
Migrate deprecated NSWorkspaceRecycleOperation (#2113)
Also make code flow less nested

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2021-11-10 12:20:06 -06:00
Charles Kerr 7693ef69bf
refactor: magnet metainfo (#2124)
* refactor: magnet-metainfo
2021-11-09 20:42:18 -06:00
Charles Kerr bdf1bb6d17
refactor: tr_strv*() util functions (#2123)
* feat: add tr_strv utils
2021-11-09 18:13:47 -06:00
Charles Kerr d8b57fe4dc
refactor: web_utils (#2121)
* chore: move web utils from web, utils to web-utils
2021-11-08 21:30:03 -06:00
Daniel Kamil Kozar 5df3505832
Add a "Start Now" action for newly added torrent notifications in the GTK client (#849)
* Add a "Start Now" action for newly added torrent notifications in the GTK client

* Const placement

* Compilation fixes

* post-merge fix

* Morph torrent_start_now into Session::start_now
2021-11-08 20:21:20 +03:00
Charles Kerr 4ecf74081c
refactor: remove tr_ctorSetMetainfoFromHash() (#2116)
* refactor: remove tr_ctorSetMetainfoFromHash()
2021-11-07 20:04:07 -06:00
Charles Kerr af4a953cd1
fixup! refactor: remove tr_piece struct (#2059) (#2115)
yet another fixup of the tr_piece struct removal
2021-11-07 18:25:45 -06:00
Charles Kerr 2bd328c082
fixup! refactor: c++ify torrent ctor (#2098) (#2114)
handle nullptrs in the accessor functions
2021-11-07 17:35:32 -06:00
Mike Gelfand c95616eb26
Bump minimum GTK version to 3.24 (#2112) 2021-11-07 13:08:17 +03:00
Mike Gelfand 17f8122ba2
Add MacStadum and SignPath sponsor links to readme (#2105)
* Add MacStadum and SignPath sponsor links to readme
2021-11-06 01:16:51 -05:00
Charles Kerr bbdb488224
perf: recycle variant tree walking helpers (#2100)
* perf: recycle the helper classes that walk through variant trees
2021-11-05 09:54:44 -05:00
Charles Kerr be22677f10
refactor: prefer string_view over raw char* (#2097) 2021-11-05 01:29:19 -05:00
Charles Kerr 087a804b49
fix: another piece priority fix (#2099)
move initialization to later in torrent construction so that we can correctly check whether the torrent is done or not
2021-11-05 00:06:19 -05:00
Charles Kerr 344ac056c8
refactor: c++ify torrent ctor (#2098)
* refactor: c++ify the torrent-ctor implementation
2021-11-04 22:08:38 -05:00
Charles Kerr 75ce9eae7b
perf: minor perf improvements (#2096)
* perf: use avoid unnecessary strlen when making log messages

* perf: avoid temporary string alloc/free in tr_metainfoAppendSanitizedPathComponent()
2021-11-03 20:36:32 -05:00
Charles Kerr 7724111a8b
refactor: increase use of tr sha1 digest t (#2091)
* refactor: make tr_sha1_digest_t an array of std::byte

* refactor: increase use of tr_sha1_digest_t
2021-11-03 19:55:04 -05:00
Mike Gelfand be74cb6356
Qt 6 support (#2069)
* Bump minimum Qt version to 5.6

* Switch from QRegExp to QRegularExpression

While still available, QRegExp has been moved to Qt6::Core5Compat module
and is not part of Qt6::Core.

* Use qIsEffectiveTLD instead of QUrl::topLevelDomain

The latter is not part of Qt6::Core. The former is a private utility in
Qt6::Network; using it for now, until (and if) we switch to something
non-Qt-specific.

* Use QStyle::State_Horizontal state when drawing progress bars

Although available for a long time, this state either didn't apply to
progress bars before Qt 6, or was deduced based on bar size. With Qt 6,
failing to specify it results in bad rendering.

* Don't use QStringRef (and associated methods)

While still available, QStringRef has been moved to Qt6::Core5Compat
module and is not part of Qt6::Core. Related method (e.g.
QString::midRef) have been removed in Qt 6.

* Use Qt::ItemIsAutoTristate instead of Qt::ItemIsTristate

The latter was deprecated and replaced with the former in Qt 5.6.

* Don't use QApplication::globalStrut

This property has been deprecated in Qt 5.15 and removed in Qt 6.

* Use QImage::fromHICON instead of QtWin::fromHICON

WinExtras module (providind the latter helper) has been removed in Qt 6.

* Use QStringDecoder instead of QTextCodec

While still available, QTextCodec has been moved to Qt6::Core5Compat
module and is not part of Qt6::Core.

* Don't forward-declare QStringList

Instead of being a standalone class, its definition has changed to
QList<QString> template specialization in Qt 6.

* Use explicit (since Qt 6) QFileInfo constructor

* Use QDateTime's {to,from}SecsSinceEpoch instead of {to,from}Time_t

The latter was deprecated in Qt 5.8 and removed in Qt 6.

* Don't use QFuture<>'s operator==

It has been removed in Qt 6. Since the original issue this code was
solving was caused by future reuse, just don't reuse futures and create
new finished ones when necessary.

* Use std::vector<> instead of QVector<>

The latter has been changed to a typedef for QList<>, which might not be
what one wants, and which also changed behavior a bit leading to
compilation errors.

* Don't use + for flags, cast to int explicitly

Operator+ for enum values has been deleted in Qt 6, so using operator|
instead. Then, there's no conversion from QFlags<> to QVariant, so need
to cast to int.

* Support Qt 6 in CMake and for MSI packaging

* Remove extra (empty) CMake variable use when constructing Qt target names

* Simplify logic in tr_qt_add_translation CMake helper

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2021-11-04 00:20:11 +03:00
Dzmitry Neviadomski 689063b305
Fix deprecated NSURL to NSString conversion. (#2090)
clang warning:
```
'stringByReplacingPercentEscapesUsingEncoding:' is deprecated: first deprecated in macOS 10.11 - Use -stringByRemovingPercentEncoding instead, which always uses the recommended UTF-8 encoding. [-Wdeprecated-declarations]
```

Co-authored-by: Charles Kerr <charles@charleskerr.com>
2021-11-03 10:04:05 -05:00
Charles Kerr 655050ce70
build: enable more .clang-tidy checks (#2088)
* build: add more clang-tidy warnings
2021-11-03 08:59:39 -05:00
Dzmitry Neviadomski 1bf6189526
Migrate Deprecated OSAtomicIncrement32 function. (#2074)
As per clang output:
`warning: 'OSAtomicIncrement32' is deprecated: first deprecated in macOS 10.12 - Use std::atomic_fetch_add_explicit(std::memory_order_relaxed) from <atomic> instead`
2021-11-03 01:00:52 -05:00
Dzmitry Neviadomski 25f68ec815
Bump minimum required CMake version to 3.9. (#2063)
Remove old CMake version checks.
2021-11-03 00:13:44 -05:00