Commit Graph

762 Commits

Author SHA1 Message Date
Mike Gelfand 2248d3670f Get rid of $Id$ SVN keywords in source files 2016-09-02 23:10:15 +03:00
Mike Gelfand e60e75fadc Reduce torrents model memory requirements (Qt client)
Keep torrents sorted by ID. This allows to remove ID to row/torrent mappings
(using binary search instead) and thus also reduce complexity a bit.
2016-04-24 07:56:41 +00:00
Mike Gelfand 682b11aac4 Bump minimum Qt version to 4.8
Earlier versions may continue to work, but we don't guarantee they will.
2016-04-24 07:41:06 +00: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
Jordan Lee 1af60ad6ad use '#pragma once' instead of #ifndef..#define..#endif guards 2016-03-29 16:37:21 +00:00
Mike Gelfand 7fb8708efd Only grow filter input up to 250px width, then stick to the right 2016-03-15 21:25:46 +00:00
Mike Gelfand cc1f6f3a5c Fix dropping .torrent files into main window on Windows
Previously used `QUrl::fromPercentEncoding()` leads to paths like
"/C:/test/a.torrent" which obviously aren't valid filesystem paths.
2016-03-15 06:04:49 +00:00
Mike Gelfand c955c04d8f Explicitly compare result of str(n)cmp/memcmp to signify that it's not boolean 2016-03-13 22:11:01 +00:00
Mike Gelfand 67a03bcabb Fix existing Qt client instance detection and torrents delegation 2016-02-29 14:16:55 +00:00
Mike Gelfand 0c4ace2313 Sync translations with Transifex 2016-02-27 23:27:26 +00:00
Mike Gelfand 197fc132b3 Update user-facing copyright years 2016-02-27 23:18:02 +00:00
Mike Gelfand 3523277e7f Ongoing refactoring (use size_t instead of int) 2015-12-25 11:34:35 +00:00
Mike Gelfand 4a4badd4af Ongoing refactoring (use size_t instead of int) 2015-12-25 10:19:50 +00:00
Mike Gelfand 26637a8348 #6038: Fix qmake-based Qt client build 2015-12-21 13:20:35 +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
Jordan Lee 8d66fb3387 fix -Wfloat-equal warning
When calculating the 'Have' line for transmission-qt's details dialog,
use int64s rather than doubles for sizeWhenDone, leftUntilDone, and
available.
2015-12-06 21:07:37 +00:00
Jordan Lee 1b67e9b266 in Torrent::setDouble(), don't compare doubles directly as a bool 2015-12-06 18:02:37 +00:00
Jordan Lee 9f74cf2273 (trivial) silence a few -Wold-style-cast warnings 2015-12-06 17:39:18 +00:00
Jordan Lee 9dca9f175f (trivial) remove trailing semicolon after Q_DECLARE_METATYPE 2015-12-06 17:28:54 +00:00
Jordan Lee c8f6d53466 (trivial) remove namespace trailing semicolon 2015-12-06 17:27:21 +00:00
Mike Gelfand 916a6efa3e Improve Qt client appearance on hidpi screens a bit 2015-11-28 14:35:58 +00:00
Mike Gelfand 74129b7ef3 Fallback to English if no proper translation is available 2015-11-15 11:03:27 +00:00
Mike Gelfand 4434c900e3 Don't force-add "Show options dialog" checkbox when opening a torrent
If open file dialog is a native one, setting the layout will do more harm
than good. Specifically, on Windows with Qt 5 the dialog becomes completely
unusable.
2015-11-14 14:22:57 +00:00
Mike Gelfand 000895322f Clear filter upon double clicking on filtered torrent list notice 2015-10-24 20:56:45 +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 f89fab72f9 Remove unused session tag 2015-10-18 18:39:14 +00:00
Mike Gelfand 3b8829d3fb Display notifications via tray icon if dbus is not available 2015-10-18 11:48:10 +00:00
Mike Gelfand c8920abad6 #5993: Improve magnets handling in main window
Disable "Open Folder" and "Verify Local Data" actions for magnets in
Torrent menu. If more than one torrent is selected, "Verify Local Data"
is enabled but only non-magnets are verified if activated.
Add a few sanity checks when opening folder, just in case.
2015-10-04 06:16:59 +00:00
Mike Gelfand e89736fb17 #6001: Calculate header item size properly 2015-09-27 20:23:03 +00:00
Mike Gelfand 68c6c0aa3c Sync main context menu with "Torrent" menu; hide menu icons on Mac 2015-09-01 23:19:01 +00:00
Mike Gelfand 0f7bea1bd3 Fix session dialog not showing up after first close 2015-09-01 20:39:34 +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 1640a71127 #5982: Simplify filter bar connections by using needed slot directly 2015-08-17 08:14:45 +00:00
Mike Gelfand 63e4700a10 Simplify and speed up actions connected to file tree popup menu 2015-08-16 22:07:09 +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 ddb0df51d4 #5608: Enter file renaming mode with keyboard only, not on mouse double-click (Qt client)
Since double-click is usually used to open things, don't use it to enter
edit mode, use platform-specific keyboard shortcut instead (Return, F2,
etc).
Add context menu duplicating available actions, resembling that of Mac
client. This includes new "only check selected" action.
Speed up DND/priority change for large numbers of files at once. Make
DND/priority toggling more natural: if both parent and its child are
selected, only act on parent (with all its children following).
2015-08-10 19:40:58 +00:00
Mike Gelfand 0aa572b657 Refactor action groups initialization/handling and trackers merging a bit 2015-08-06 20:28:44 +00:00
Mike Gelfand 0f9bdc6ac2 Use CMake-provided C/C++ standard selection capabilities; fix build (qtr.pro) 2015-08-01 16:05:02 +00:00
Mike Gelfand fd9c2c74f4 Remove some unused includes/macros; fix build (re. QPointer) 2015-07-30 06:55:28 +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 18ea8c429a Improve RPC performance for local sessions
Don't unnecessarily de-/serialize JSON data if local session is used.
2015-07-13 00:32:48 +00:00
Mike Gelfand 5296570476 Improve file tree population/update performance
Use simple tokenization instead of splitting the file path into
QStringList for each item. Don't expand each added item separetely
during population/update. Don't expand all the items but just up to the
point where parent has more than one expandable child.

Also, fix items order by sorting items after population/update. Fix
sorting by size on systems where uint64_t != quint64.
2015-07-12 20:48:54 +00:00
Mike Gelfand 1a885dcb17 Some look-and-feel improvements for Mac and GTK+ styles (Qt client) 2015-06-28 14:18:06 +00:00
Mike Gelfand 58312e6c16 Torrent properties dialog improvements
Simplify DND checkboxes drawing, this also fixes incorrect drawing on
Mac when file tree widget is inactive.
Do better job calculating column widths for file tree to avoid ellipsis.
Fix file tree sorting order for size and priority columns.
Change key to toggle priorities to Shift+Space instead of Enter/Return
to avoid conflicts with name editing and default button handling.
Fix selected tracker item background drawing in certain cases.
2015-06-15 21:07:46 +00:00
Mike Gelfand b0278ca353 Instead of standard C headers include their C++ counterparts 2015-06-12 22:41:36 +00:00
Mike Gelfand 5120fc0f2c Unify/prettify Qt client headers style 2015-06-12 22:12:12 +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 cdf3cf62f9 Fix some issues revealed by coverity 2015-05-09 11:56:35 +00:00
Mike Gelfand 2321bc3fad Fix some issues revealed by coverity 2015-05-09 08:37:55 +00:00
Mike Gelfand 06d73853b9 Even better (and unified) torrent origin logic for GTK+, Qt and web clients 2015-04-22 21:04:49 +00:00
Mike Gelfand c1b10abe0f Use UTF-8 for console I/O on Windows 2015-04-21 10:07:57 +00:00
Mike Gelfand 7ce0ebfee7 Ifdef the code which does manual relayout on compact view toggle to Qt < 5.4 (QTBUG-33537) 2015-04-20 09:28:26 +00:00
Mike Gelfand adde87a99e Fix Qt 4 build: `QGridLayout::getItemPosition ()` is not constant :( 2015-04-18 14:48:23 +00:00
Mike Gelfand 9f8402697b Use C++11 range-based `for` loops (Qt client) 2015-04-18 14:41:06 +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 5ada708756 Use native separators for path button and free space label tooltips. Improve path button dialog initial directory/file selection. 2015-04-15 00:08:24 +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 3b129a72d8 #5908: Check for `tr_loadFile` return value instead of `errno` in `tr_variantFromFile`
Seems like there could be a defect in uClibc making errno not
thread-local. Don't rely on errno value but check function return value
instead which is a better failure indicator.

Return errors from `tr_loadFile` and `tr_variantFromFile` via tr_error.
Fix `tr_sessionLoadSettings` to not fail on Windows if settings.json
does not exist.
2015-04-11 10:51:59 +00:00
Mike Gelfand 0620e94e27 #5774: Fix alternative speed limits scheduled times (once more) 2015-02-06 20:08:36 +00:00
Mike Gelfand 7c53ebb9d7 Per-pixel vertical scroll in all the views (Qt client) 2015-01-31 17:40:44 +00:00
Mike Gelfand 9e66e5c443 Pass constant Prefs, TorrentFilter, TorrentModel objects where no modification is needed 2015-01-29 22:44:43 +00:00
Mike Gelfand 49e16e64a6 Fix build on Windows (blindly) 2015-01-29 22:10:00 +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 ae72695d0c Revert unintended changes (debug output) 2015-01-28 23:08:41 +00:00
Mike Gelfand e707e8d4c5 Treat command-line arguments as UTF-8-encoded; hide char* Prefs setter, require explicit conversion 2015-01-28 22:57:46 +00:00
Mike Gelfand 6b79473d9f Use TrPathButton in preferences dialog 2015-01-25 19:55:05 +00:00
Mike Gelfand cade70172e Fix tab order in preferences dialog (Qt client) 2015-01-25 18:16:30 +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 9b8c6bc0f0 Improve tracker list look (torrent properties dialog), support RTL layout 2015-01-20 23:28:38 +00:00
Mike Gelfand 34c42d4ad8 Small follow-up translation fixes (HTML formatting mess in tracker delegate mostly) 2015-01-18 13:19:30 +00:00
Mike Gelfand 9866082907 Poke translations a bit (Qt client)
Add a bit more comments. Adjust some phrases for pluralization.
Mark menu shortcuts as not translatable (changing them doesn't do any
good but people start translating "Ctrl" as "Ktrl" etc. which breaks
the shortcuts).
Pull current translations from Transifex.
2015-01-18 02:09:44 +00:00
Mike Gelfand efc04fdd77 Improve overall look of torrents in main window
Refactor and use the same code to calculate element positions in
sizeHint () and paint () to prevent discrepancies.
While we are at it, properly support RTL layout.
2015-01-17 16:59:42 +00:00
Mike Gelfand 3c73d74cbb Fallback to message box warning icon if emblem-important is not provided by the icon theme 2015-01-17 13:49:02 +00:00
Mike Gelfand 9eea4ada83 Improve the look of torrents with errors a bit (Qt client)
Display emblem over mime icon if torrent has error(s) to indicate the
issue.
Use normal text color instead of red when drawing selected item: there
is no easy way to be sure that red color looks nice on selection
background, and most of the time it doesn't. Using red color for non-
selected items is questionable too, but let's leave it at that for now.
2015-01-17 01:23:51 +00:00
Mike Gelfand 6ff1875385 Add more information for translators (Qt client) 2015-01-12 06:18:52 +00:00
Mike Gelfand f73bfebd7b Move numeric units to the right of values (per KDE HIG)
Follow up commit to change the last phrase standing.
2015-01-11 21:10:46 +00:00
Mike Gelfand 06fa457bd9 Improve filter bar look (Qt client)
Use normal but semi-transparent color instead of 'disabled' color for
counts drawing.
Do not leave empty space for icon when selected item doesn't have one.
Use null pixmaps/icons instead of non-null blank ones.
Implement our own sizeHint and minimumSizeHint to make sure both combos
have the same height.
Make activity combo width fixed, tracker combo width to fit its content
and line edit to occupy the rest.
Add 'Search...' placeholder to line edit.
2015-01-11 15:01:13 +00:00
Mike Gelfand 068bccd46b Make program name/version in about dialog larger again 2015-01-04 12:47:07 +00:00
Mike Gelfand b96cd0369e Change sharing consent dialog into a QMessageBox 2015-01-04 12:29:10 +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 91973ab94d Use (hopefully) better suited theme icons for some actions (Qt client) 2015-01-04 00:18:31 +00:00
Mike Gelfand 440f482d01 Replace tabs with spaces; remove trailing spaces 2015-01-02 11:15:31 +00:00
Mike Gelfand 8abdabc984 #5700: Add -std=gnu++11 to QMAKE_CXXFLAGS for Qt 4 and g++/clang++ 2015-01-01 23:54:35 +00:00
Mike Gelfand b928ae1ba8 Use libb64 instead of OpenSSL to encode/decode BASE64
Some crypto libraries (like CyaSSL, MatrixSSL and CommonCrypto) either
don't have or expose this functionality at all, expose only part of it,
or (like OpenSSL) have heavyweight API for it. Also, for the task as
easy as BASE64 encoding and decoding it's much better to use small and
simple specialized library.
2015-01-01 21:16:36 +00:00
Mike Gelfand 424c79a5da Make use of path button in relocate dialog (Qt client) 2015-01-01 05:02:13 +00:00
Mike Gelfand 511d89ca5e Use QMimeDatabase to get icon names when compiling against Qt 5+ 2015-01-01 02:28:18 +00:00
Mike Gelfand 954a91ca39 Reduce initial torrent creation dialog size to minimum
Truncate text in path button to prevent width increase for long paths.
2014-12-31 23:54:52 +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 826a007904 Use QToolButton instead of QPushButton for path button, specify button icon size explicitly 2014-12-28 04:04:58 +00:00
Mike Gelfand 0bde425731 Add missing QToolButton forward declaration (Qt client) 2014-12-28 00:20:43 +00:00
Mike Gelfand 7789c28f44 #5808: Don't embed path to DHT_LIBS in qtr.pro (patch by jbeich) 2014-12-28 00:02:50 +00:00
Mike Gelfand 8c550a2734 Add missing <QDebug> include (Qt 4 build break) 2014-12-27 20:08:10 +00:00
Mike Gelfand 342f38bbc5 Factor RPC logic out from session (Qt client) 2014-12-27 20:03:10 +00:00
Mike Gelfand 17d6666b4c A bit of harmless refactoring
Prefer C++-style over C-style type casting.
Use qApp instead of QApplication/QCoreApplication::instance().
Use explicit QString::fromLatin1()/fromUtf8() where applicable.
2014-12-27 14:07:14 +00:00
Mike Gelfand 2ca4596fac Refactor FreespaceLabel to make it possible for it to be created in Qt Designer 2014-12-26 18:41:47 +00:00
Mike Gelfand 2d02481f2d Fix the rest of :: formatting in C++ code 2014-12-26 14:22:35 +00:00
Mike Gelfand e9394e2f9b Fix directory name display in relocate dialog 2014-12-26 14:21:47 +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 92168df0e1 Fix up some about dialog leftovers, sync Qt client translations 2014-12-25 21:51:59 +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 4f239d57e1 Move numeric units to the right of values (per KDE HIG)
Sync translations with the code. Adjust translations for changed phrases
(hopefully correct for the most of them).

One phrase still left untouched (Preferences -> Downloading), need to
think on better wording.
2014-12-22 03:06:09 +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 f83872849a #5543: Add a warning panel with id of duplicate torrent (patch by rb07 + personal touch) 2014-12-22 00:02:27 +00:00
Mike Gelfand 629281a1e2 Fix license wording in Qt client .cc files to match the rest of the code. 2014-12-21 23:49:39 +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 4ddbd550d8 Move filter text clearing button into line edit. Use Qt-provided button on Qt 5.2+. 2014-12-21 15:34:52 +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 172f875691 Sync Qt client translations with the code 2014-12-14 18:33:28 +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 6c02008280 Do not use printf-style formatting in C++ code 2014-12-14 15:34:31 +00:00
Mike Gelfand 737fdab775 Do not use void to denote argumentless functions in C++ code 2014-12-14 11:57:23 +00:00
Mike Gelfand 365b28bc81 Strip needless const& specifiers on SIGNAL and SLOT arguments (Qt client) 2014-12-13 09:04:10 +00:00
Mike Gelfand 2adbb42763 Fix various cppcheck comments for Qt client code 2014-12-12 23:52:17 +00:00
Mike Gelfand 9605bfc36a Remove redundant "struct" keyword use in C++ code (Qt client) 2014-12-12 23:21:04 +00:00
Mike Gelfand 67dc1c8485 Strip spaces around :: in C++ code (Qt client) 2014-12-12 23:05:10 +00:00
Mike Gelfand faf1b2fbdf #5848: Use theme-provided icons in Qt client (patch by equeim + small additions) 2014-12-12 21:47:22 +00:00
Mike Gelfand 79848c36c0 #5841: Fix initial watchdir scan in Qt client
Run the initial scan after application has finished initializing and
session has been created. Otherwise, adding torrents is a no-op.
2014-12-11 22:21:24 +00:00
Mike Gelfand 64757f640a #5685: Use proper icon in Qt client desktop file (reported by rahulsundaram) 2014-12-11 20:13:45 +00:00
Mike Gelfand fed15dc29d Fix a couple of ordinary and pedantic warnings
Add previously missing -Wall to warning flags in CMake. Remove -Wformat
and -Wvariadic-macros (enabled by default; latter is not meaningful in
C99 mode we use), -Wdeclaration-after-statement (again, not needed as
we use C99). Move -Wmissing-declarations to C-only flags (GCC man says
so).

Add copyrights year to crypto-utils-fallback.c.
2014-12-11 05:11:02 +00:00
Mike Gelfand 5c43b5c23c #4400, #5462: Move BASE64 helpers to crypto-utils
On a way to factoring out OpenSSL support to a standalone file to ease
addition of other crypto libraries support in the future, move helpers
providing BASE64 encoding and decoding to crypto-utils.{c,h}. OpenSSL-
related functionality is moved to crypto-utils-openssl.c.

Add new functions to be implemented by crypto backends:
* tr_base64_encode_impl - encode from binary to BASE64,
* tr_base64_decode_impl - decode from BASE64 to binary.

Change `tr_base64_encode` and `tr_base64_decode` functions to expect
non-negative input data length which is considered real and never adjusted.
To process null-terminated strings (which was achieved before by passing 0
or -1 as input data length), add new `tr_base64_encode_str` and
`tr_base64_decode_str` functions which do not accept input data length as
an argument but calculate it on their own.
2014-12-04 19:58:34 +00:00
Mike Gelfand b4a662ba37 Create QDBusConnection after QApplication has been initialized
Doing otherwise causes Qt warning "QDBusConnection: session D-Bus
connection created before QCoreApplication. Application may misbehave."
Also, don't try to do anything D-Bus-related if connection fails.
2014-12-01 21:05:44 +00:00
Mike Gelfand 3e43a308af Sync Qt translation files with current source code 2014-12-01 20:29:03 +00:00
Mike Gelfand 83c4edb008 #5828: Initial CMake build system support 2014-12-01 19:55:22 +00:00
Mike Gelfand 17769e2e2a #5077: Remove torrent file from watch directory even if "show options dialog" is not set (patch from rb07 + some improvements)
Refactor Session::addTorrent (add new method) to eliminate duplicate
code in options.cc and ensure that FileAdded object is being created
on torrent addition even with non-interactive workflow.
Move FileAdded class from options.{h,cc} to session.{h,cc}.
2014-12-01 19:24:07 +00:00
Mike Gelfand 10e59dbc90 #5800: Add Ukrainian translation to Qt client (patch by olexn) 2014-11-30 18:43:50 +00:00
Mike Gelfand d6c32595a6 #5827: Improve torrent files tree updating performance
Do not unnecessarily emit dataChanged signals for items which didn't change.
Cache file item indices to speedup lookup.
As a bonus, this also fixes wrong file progress display in rare cases.
2014-11-30 18:12:28 +00:00
Jordan Lee 870041d92d (trunk) #4160: mike.dld patch: 4160-08-args.patch 2014-09-21 18:06:28 +00:00
Jordan Lee 728957c46a (trunk, qt) #5774 'Alternative Speed Limits Scheduled Times broken in transmission-qt' -- fixed, plus more gratuitous c++11isms 2014-08-26 23:26:00 +00:00
Mitchell Livingston 0e01879974 Use built-in _WIN32 macro instead of WIN32 2014-07-04 00:00:07 +00:00
Jordan Lee d0695b7006 (trunk, qt) #5723: 'Simplify file tree icons drawing' -- patch by mike.dld 2014-07-03 23:12:50 +00:00
Jordan Lee 4f29ab1476 remove tracer cerr that was accidentally committed in r14272 2014-05-18 19:47:02 +00:00
Jordan Lee c56c952e23 update network error detection as described by rb07 in https://trac.transmissionbt.com/ticket/5514#comment:9 2014-05-15 21:32:04 +00:00
Jordan Lee cd7e5291db silence warnings found by clang++ 2014-05-09 02:32:28 +00:00
Jordan Lee 2be080f48e (trunk qt) #5514 'enhanced network status' -- reset the torrent model when we reconnect to the transmission session after a network failure 2014-04-27 00:33:19 +00:00
Jordan Lee 4fd7408d4b update fr translation by gostron 2014-04-27 00:04:13 +00:00
Jordan Lee 8b0a7746bb fix crash when creating the Open Torrent dialog in Qt 5.2 on Ubuntu 14.04 2014-03-16 22:50:39 +00:00
Jordan Lee d7368a58f5 Copyedit the license's revised text: (1) fix accidental word concatenations in the Qt and GTK+ clients' license popup text 2014-01-21 03:15:33 +00:00
Jordan Lee 02cff80c2d Copyedit the license's revised text: (1) remove unnecessary repitition use of the word 'license' from the top of the header and source files (2) add the standard 'we hope it's useful, but no warranty' clause to COPYING (3) make explicit that linking OpenSSL is allowed (see https://people.gnome.org/~markmc/openssl-and-the-gpl.html for background) (4) sync the Qt and GTK+ clients' license popups with COPYING's revised text 2014-01-21 03:10:30 +00:00