Commit Graph

47 Commits

Author SHA1 Message Date
Charles Kerr 68920f5fa6
refactor: remove exit-time destructors from transmission-qt (#1395)
* refactor: remove exit-time destructors from transmission-qt
2020-08-15 10:42:51 -05:00
Charles Kerr 677dc73eac
refactor: use GTest for running tests (#1383)
* refactor: use google-test on libtransmission tests
2020-08-11 13:11:55 -05:00
Charles Kerr 00be8d00d7
refactor: make variant_headers reusable to qt app. (#1369)
* refactor: make variant_headers reusable to qt app.

Torrent.cc's `change()` template methods are generically useful to deal
with tr_variant wrangling, but previously were only used in Torrent.cc.
This PR moves them into a new API `VariantHelpers.h` for use by Prefs,
Session, TorrentModel, etc.
2020-07-26 23:30:58 -05:00
Mike Gelfand 7db1c848ed Add new translations from Transifex (95% and higher)
GTK client: none.

Qt client: Finnish.

Mac client: none (there're suitable languages, but they're lacking XIB files
and we haven't switched to base localization yet).
2020-05-14 19:17:11 +03:00
Mike Gelfand d1d27ae35f Add new translations from Transifex (95% and higher)
GTK client: none.

Qt client: Japanese.

Mac client: none (there're suitable languages, but they're lacking XIB files
and we haven't switched to base localization yet).
2020-05-02 13:26:24 +03:00
Charles Kerr c62cb35fd4
qt client speedups
* faster updating of trackers combobox.
* generate trackerDisplayNames just once per torrent
* refactor: cache torrent delegate's warning emblem
* refactor: change mainwin refresh debounce to 200ms
* refactor: do not store trackers, hosts in QVariant
* refactor: don't use `virtual` when it's not needed
* refactor: faster counting torrents-matching-filter
* refactor: faster tracker handling in filterbar
* refactor: improve json parser's prealloc heuristic
* refactor: make Torrent::hasError() faster
* refactor: remove redundant speed stats collection
* refactor: remove unnecessary tor->isQueued() calls
* refactor: use unordered containers where possible
* scale favicons only once, when adding to the cache
2019-11-11 19:37:05 -06:00
Mike Gelfand f3951faf3d Actually add new languages to the build 2019-03-13 23:35:16 +03:00
Mike Gelfand 80cebdd296 Sync Qt translations with Transifex 2017-05-20 00:15:53 +03:00
Mike Gelfand 69aa2f9491 Move pl_PL translations to pl 2017-05-19 23:11:06 +03:00
Mike Gelfand 5dc1192792 Move tr_TR translations to tr, sync list in qtr.pro 2017-05-19 21:49:04 +03:00
Mike Gelfand 03034b5015 Remove supporting code for Qt < 5.2 2017-02-11 13:44:34 +03:00
Mike Gelfand 8dc6fb48b1 Bump minimum required Qt version to 5.2 2017-02-11 13:24:42 +03:00
Mike Gelfand caf3b7653c Improve Qt client look on hi-dpi displays 2017-02-08 01:06:28 +03:00
Mike Gelfand d40d69702b Sync .ts files with Transifex and current source code
Add 4 new languages: Georgian, Dutch, Swedish, and Turkish (Turkey).
2017-01-27 04:50:14 +03:00
Mike Gelfand 2b917de65b Refactor RPC requests code for proper queueing (patch by intelfx @ GH-10)
This refactoring is driven by the need to be able to do true queued RPC calls
(where each successive call uses the result of the previous).

Currently, such queueing of requests is done by assigning them special "magic"
tag numbers, which are then intercepted in one big switch() statement and acted
upon. This (aside from making code greatly unclear) effectively makes each such
queue a singleton, because state passing is restricted to global variables.

We refactor RpcClient to assign an unique tag to each remote call, and then
abstract all the call<->response matching with Qt's future/promise mechanism.

Finally, we introduce a "RPC request queue" class (RpcQueue) which is built on
top of QFutureWatcher and C++11's <functional> library. This class maintains
a queue of functions, where each function receives an RPC response, does
necessary processing, performs another call and finally returns its future.
2016-04-19 20:41:59 +00:00
Mike Gelfand db1553b113 Add files necessary for .msi packages creation on Windows 2016-04-02 18:01:01 +00:00
Mike Gelfand 34ebe520a1 Move DBus/COM checks up to where Qt is being searched for 2015-12-17 18:10:43 +00:00
Mike Gelfand e92449d91f Add ActiveQt-based COM interop helper 2015-12-16 20:01:03 +00:00
Mike Gelfand 35b08ce09e One more little Qt thingy (we don't need to include UseQt4.cmake anymore) 2015-12-16 19:09:46 +00:00
Mike Gelfand 7c951671bd Bump CMake to 2.8.12, rework Qt use a little 2015-12-16 18:46:06 +00:00
Mike Gelfand dfc32f3ecd Refactor DBus IPC to allow for further extensibility 2015-12-16 17:57:05 +00:00
Mike Gelfand 4631848c15 Sync translations with Transifex
New translations: Italian (Italy) and Korean.
2015-12-12 18:14:15 +00:00
Mike Gelfand 585e3df30c Show notice on top of filtered torrents list
This has a couple of benefits: 1) it is clearly visible to the user that
the list is filtered (doesn't display all the torrents) even when filter
bar is hidden, 2) doesn't lead to filter bar controls being shifted to
the left/right as when "Show:" label text changes.
2015-10-19 20:30:26 +00:00
Mike Gelfand 971cc6d2d9 Remove context help button from dialogs on Windows
We don't currently (if ever) provide context help, so the button is
useless. Moreover, on Windows 10 it's even larger than before and
sometimes title text doesn't fit because of it.
2015-09-01 20:19:26 +00:00
Mike Gelfand 7f45029f18 Sync translations with Transifex
Add German and Indonesian (translated 95%+).
2015-08-10 20:43:26 +00:00
Mike Gelfand f592083f15 Create dialogs on demand, don't keep them ready all the time 2015-07-30 06:18:02 +00:00
Mike Gelfand 5b61ba81ba Sync Qt client translations, add Polish language 2015-06-10 22:51:53 +00:00
Mike Gelfand 07912d230b Use PascalCase for Qt client filenames
Split FileTree.{h,cc} and FilterBar.{h,cc} files so that each class
is in its own file.

This breaks translations (some classes got renamed => context changed),
to be fixed by next commit (along with Tx sync).
2015-06-10 21:27:11 +00:00
Mike Gelfand ce200fa775 #5927: Add Chinese (zh_CN) translation to Qt client (provided by liaodahao) 2015-04-15 20:26:38 +00:00
Mike Gelfand 829cbffaf7 Add version info to executables (on Windows). Group projects into folders (CMake). 2015-04-14 22:46:40 +00:00
Mike Gelfand d96ef13a89 Define QT_NO_CAST_FROM_ASCII (Qt client)
Use latin1 encoding most of the time where default encoding was used
before. Qt 4 assumes latin1 by default while Qt 5 uses utf-8 which is
not what we want.

Use utf-8 encoding in some places where default encoding was used before.
This includes strings coming from RPC.

Fix an issue with SortMode::names[] (filters.cc) where missing comma
between "sort-by-queue" and "sort-by-ratio" resulted in two array entries
being merged into solid "sort-by-queuesort-by-ratio" string and all the
following items being shifted compared to their enum counterparts.
2015-01-29 21:53:05 +00:00
Mike Gelfand a18d818882 Rework preferences dialog in Qt client to load from .ui 2015-01-25 15:47:03 +00:00
Mike Gelfand beeb4521c0 Rework forms layout to workaround some stylesheet issues (Qt client) 2015-01-21 21:14:00 +00:00
Mike Gelfand c43a10ab9d Mark GTK and Qt clients as GUI programs on Windows (detach from console) 2015-01-04 10:57:09 +00:00
Mike Gelfand 81c3eebbab Use Faenza (1.3.1) as fallback on systems which do not support icon themes 2015-01-04 02:14:58 +00:00
Mike Gelfand efddf08d67 Rework torrent creation dialog in Qt client to load from .ui 2014-12-31 22:27:46 +00:00
Mike Gelfand e0d5f8b861 Add new TrPathButton class (Qt client)
Make use of new button class in torrent options dialog.
Rework Utils::removeTrailingDirSeparator to return correct value for "/".
2014-12-31 21:00:34 +00:00
Mike Gelfand c64ca900c2 Rework torrent options dialog in Qt client to load from .ui 2014-12-29 04:03:56 +00:00
Mike Gelfand 342f38bbc5 Factor RPC logic out from session (Qt client) 2014-12-27 20:03:10 +00:00
Mike Gelfand 8a4f8b9e15 Rework relocate dialog in Qt client to load from .ui 2014-12-26 10:35:00 +00:00
Mike Gelfand 4138c7519b Rework about dialog in Qt client to load from .ui 2014-12-25 19:39:45 +00:00
Mike Gelfand 1eec889832 #4050: Use TRANSLATIONS_DIR macro as a hint for Qt client translation files location 2014-12-22 01:08:19 +00:00
Mike Gelfand 56c75a13b0 Rework session dialog in Qt client to load from .ui 2014-12-21 23:46:31 +00:00
Mike Gelfand 237acf1726 Rework statistics dialog in Qt client to load from .ui
Fix "Started %n time(s)" phrase (remove space in "time (s)", add proper
English translation for numeric forms).
2014-12-21 13:57:15 +00:00
Mike Gelfand dee7bc9b6a Move status bar creation to mainwin.ui
Among other things,
* fix turtle icons size (20x14 -> 16x16)
* use QIcon states instead of changing the turtle icon ourselves each
  time (unchecked - off, checked - on)
* make speed limit action in tray menu checkable
* simplify status bar buttons drawing and use QToolButton instead of
  QPushButton
2014-12-18 01:30:50 +00:00
Mike Gelfand 70c6087e94 Rework torrent details dialog in Qt client to load from .ui
Make squeeze labels (used for values on Information tab) display tooltip
on hover if their text doesn't fit. Make selective labels (same as in
GTK+ client) text selectable with keyboard in addition to mouse.
Prevent dialog width growth occured before to fit long error texts.
2014-12-14 18:12:21 +00:00
Mike Gelfand 83c4edb008 #5828: Initial CMake build system support 2014-12-01 19:55:22 +00:00