* chore: savepoint
* chore: code style
* refactor: add std::string_view constructor for NativeIcon::Spec
* chore: add TODO comment
* feat: honor per-desktop HIG on when to show menu icons
* chore: remove Faenza system-run icon
unused since b58e95910b
* chore: remove Faenza view-refresh icon
not needed due to b58e95910b
* chore: remove Faenza media-playback-pause icon
not needed due to b58e95910b
* chore: remove Faenza media-playback-start icon
not needed due to b58e95910b
* chore: add a safeguard against merging with incomplete TODO items
* feat: add more icons
refactor: remove some tracer cerr statements
* refactor: remove IconCache use from MainWindow
* chore: remove Faenza icon set
* chore: re-enable remote session network icon
* fix: FTBFS on Windows
* refactor: use symbolic names for Segoe icons
* docs: add links to Segoe MDL2 Assets icon list
* chore: savepoint
segoe icons work
still a WIP; includes test code that should not ship
* feat: use segoe::FastForward for action_StartNow
feat: use segoe::Move for action_SetLocation
refactor: make it easier for devs to force a font at compile time for development work
segoe license does not allow bundling but does allow dev work
chore: code_style.sh
* refactor: remove unused addEmblem()
* docs: add code comment on how to force an icon font
* fix: Win 10, 11 icons play nicely with dark mode
* chore: savepoint
add draft of SF Symbol -> QPixmap loader
* chore: remove dangling font reference from qrc file
* fix: FTBFS
* refactor: use bribri code for NSImage -> QPixmap
* feat: support dark, light mode when rendering SF Symbol monochrome icons
* fixup! feat: support dark, light mode when rendering SF Symbol monochrome icons
fix: fail gracefully on macOS 11
* chore: code style
* chore: tweak some SF Symbol icon choices
* chore: consistent uppercase for hex segoe QChars
* chore: undefine DEV_FORCE_FONT_FAMILY and DEV_FORCE_FONT_RESOURCE
* chore: savepoint
* refactor: clean up NativeIcon impl
* refactor: remove unused MenuMode::Other
* refactor: DRY in FilterBar::createActivityCombo()
* chore: remove obsolete code comment
* refactor: rename icons::Facet as icons::Type
* fix: oops
* refactor: minor cleanup
* fix: tyop
* chore: remove unused #includes
* fix: add modes for some icons
* refactor: tweak some icon choices on macOS
* fix: ensure icons are visible on File, Help menus
fix: remove unused local variable
* refactor: tweak some icon choices for XDG
* refactor: remove the fallback QStyle::StandardPixmaps
These interfere with deciding whether an icon is well-defined and
unambiguous as per the macOS and Windows HIG guidelines.
If a standard or unambiguous icon exists in the native icon sets,
specify it with an SF Symbols name, a Segoe codepoint,
or XDG standard icon name. Otherwise, leave those fields blank.
* refactor: remove unused #includes
* docs: add "choosing icons" section in NativeIcons.cc
* refactor: simplify icons::shouldBeShownInMenu()
* refactor: reduce unnecessary code shear from main
* refactor: make TorrentDelegate::warning_emblem_ const
* refactor: extract-method MainWindow::updateActionIcons()
* feat: update MainWindow icons when light/dark theme changes
* feat: restore the QStyle::StandardPixmaps as fallbacks
Can be used on older Windows / macOS if Segoe or SF Symbols are unavailable
* refactor: add button text for add/edit/remove tracker buttons
QStyle::StandardPixmap doesn't have good icons for these,
so let's ensure that these buttons have visible text.
* fix: building NativeIconMac.mm on mac even if not clang
* chore: iwyu in new code
* docs: tweak the "Choosing Icons" comments again
* fix: handle changed QStyles in icons::icon()
do not cache point_sizes set between calls
refactor: const correctness
* fixup! refactor: simplify icons::shouldBeShownInMenu()
refactor: minor code tweak, declare vars in order that they are used
* refactor: initialize libtransmission::Values units in Application::initUnits()
* refactor: use libtransmission::Values instead of Formatter::unitStr()
* refactor: remove Formatter::Size, Formatter:Type
* refactor: use Values::Config to init units in transmission-qt
* refactor: use Values::Config to init units in transmission-mac
* chore: remove unused tr_formatter_foo_init() functions
* chore: make Value::operator+() const
* use Values::Speed, Values::Storage in GTK client
* chore: use snake_case for Formatter methods
* refactor: use Values::Speed in GTK client details dialog
* feat: add Values::Value::is_zero()
* refactor: remove unnecessary UTF8String calls
* refactor: use std::set instead of QSet in WatchDir.cc
* refactor: use std::set instead of QSet in FileTreeView.cc
* refactor: use std::set instead of QSet in ColumnResizer.cc
* refactor: use std::set instead of QSet in Prefs.cc
* chore: fix rebase error that changed libsmall snapshot
* refactor: more replace QSet with std::set
* refactor: use std::map instead of QMap in PrefsDialog.cc
* refactor: use std::map instead of QMap in DetailsDialog.cc
* refactor: use std::map instead of QMap in OptionsDialog.cc
* refactor: use std::map instead of QMap in FileTreeModel.cc
* Sync translations with code
* Sync translations with Transifex
* Remove Mac menu title that isn't displayed and shouldn't be translated
* Add context to logging level strings in GTK client
* Use "µTP" consistently in code
* Use ellipsis instead of three docs in Qt client strings
* Close HTML tags in blocklist-related strings
* Remove trailing space from a translatable string in Qt client
* Add missing plural forms for English strings in Qt client
* Fix spelling: metaInfo -> metainfo
* refactor: use semantic type tr_torrent_type_t in libtransmission
* refactor: use semantic type tr_torrent_type_t in gtk client
* refactor: use semantic type tr_torrent_type_t in qt client
* refactor: make this variable const
* refactor: replace redundant type with auto
* refactor: use the nullptr literal
* refactor: replace declaration by structured binding declaration
Add a getter/setter for torrent announce URLs as text that can be copied
and pasted: one URL per line, with a blank line between tiers.
C API: tr_torrentGetTrackerList() and tr_torrentSetTrackerList()
RPC APi: `trackerList` in `torrent-get` and `torrent-set`.
This deprecates `trackerAdd`, `trackerRemove`, and `trackerEdit`
from the RPC API.
Fixes#154. The current 'corrupt' label can confuse users to think that
there is corrupt data on the disk. The phrasing has been changed:
- Downloaded: 1.91 GB
- Corrupt DL: 22.02 MB
+ Downloaded: 1.91 GB (+22.02 MB discarded after failed checksum)
Look for RTL and symbolic icon variants for each icon that we load. The
only exception here is Transmission's own icons, where it doesn't make
sense (the way I see it).
* 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>
It's often off by a little bit because it fails to account for blocks
we've downloaded but haven't been verified yet. Copied the fix from the
GTK client.
Adding tracker urls one at a time is very tedious.
This lEts you add multiple tracker urls at oNce, 1 trAcker url per line.
As a bonus, this also takes care of trailing spaces when pasting urls.
Fixes#1148
And this seems to be a requested feature:
https://forum.transmissionbt.com/viewtopic.php?t=18958
Co-authored-by: Charles Kerr <charles@charleskerr.com>