1
0
mirror of https://github.com/qTox/qTox.git synced 2024-03-22 14:00:36 +08:00
Commit Graph

8133 Commits

Author SHA1 Message Date
Mick Sayson
257a19caaa feat(filesform): Add in progress transfers to files form
As part of #1532 it was identified that long running file transfers
could get lost deep in the chatlog. This could result in unexpected use
of bandwidth over time if users lose track of old/large transfers. This
commit updates the files form to show in progress file transfers and
offer a way to control them.

* FilesForm now works on ToxFiles instead of finished file paths
* FilesForm widgets have been replaced with an MV tree view with depth
  1. The existing QListWidget did not provide us the controls to render
  more complex items. The use of delegates allows us to efficiently draw
  progress bars and controls
* getHumanReadableSize has been extracted from FileTransferWidget into a
  more general utils file
2021-12-11 15:38:35 -08:00
Mick Sayson
c7efe320d2 refactor(filetransfer): Move file transfer progress into ToxFile
* Refactor/test ToxFileProgress to ensure that when it's moved it
  behaves well
* Notice problems with speed averaging. We were average speeds without
  keeping track of the times they were over. Adding samples of different
  lengths would result in incorrect speeds. Refactor whole class to correct
* Move ToxFileProgress to be a member of ToxFile
* Remove duplicated members between ToxFile and ToxFileProgress
* Move sample addition into CoreFile
2021-12-11 15:38:35 -08:00
Mick Sayson
3bc4aa52be fix(filetransfer): Fix UI inconsistencies with pause/resume 2021-12-11 13:56:08 -08:00
Anthony Bilinski
9624fc33b0
chore(deps): update c-toxcore to v0.2.13 2021-12-08 01:02:55 -08:00
Maxim Biro
d03c60e3b2
chore(windows): Update toxcore to 0.2.13 2021-12-07 04:56:42 -05:00
Maxim Biro
2414593386
chore(windows): update VPX to 1.11.0 2021-12-07 04:56:40 -05:00
Maxim Biro
d08c37b5a4
chore(windows): update Exif to 0.6.24 2021-12-07 04:56:39 -05:00
Maxim Biro
de84dcb89c
chore(windows): update FFmpeg to 4.4.1 2021-12-07 04:56:36 -05:00
Maxim Biro
560751db88
chore(windows): update SQLCipher to 4.5.0 2021-12-07 04:56:17 -05:00
Maxim Biro
da8885cffb
chore(windows): update Qt to 5.12.12 2021-12-07 04:28:03 -05:00
sudden6
3c58b992c6
perf: reduce repainting in animations
By profiling qTox using perf I discovered, that
NotificationIcon::updateGradient takes significant amount of CPU time
even though qTox is idle and no one is typing.

This commit fixes:

1) correctly determine visibility of NotificationIcon
2) only invalidate boundingRect in fixed intervals
3) apply the same fixes to Spinner since it has the same problem
2021-11-28 12:45:14 +01:00
Anthony Bilinski
6a10abf1b3
Merge pull request #6374
Anthony Bilinski (20):
      revert(chatlog): "fix stick to bottom behavior"
      revert(chatlog): partially revert "prevent invalid history access"
      revert(chatlog): "add comments for functions that load history"
      revert(chatlog): "scroll bar stuck to bottom (fix #5755)"
      revert(chatlog): "update workerStb"
      revert(chatlog): "optimize load messages during the search"
      revert(chatlog): "feat: save selected search text after scrolling up"
      revert(chatlog): "feat: check chat status before start a search"
      revert(chatlog): "fix: data validation during the search"
      revert(chatlog): "fix a crash when there are no messages to load"
      revert(chatlog): "prohibition to remove messages in group chat"
      revert(chatlog): "edit load history when scrolling"
      revert(chatlog): "simple edit code"
      revert(chatlog): "remove part messages from chat"
      revert(chatlog): "edit position chat after load history"
      revert(chatlog): "add action "Go to current date""
      revert(chatlog): "edit load history in search"
      revert(chatlog): "edit function "Load chat history""
      revert(chatlog): "load messages from the database after date"
      chore(review): Copyright notice cleanup

Mick Sayson (8):
      fix(history): Fix qt deprecation warning
      revert(chatlog): "feat: load messages from the database before date"
      revert(chatlog): Revert cleanup
      refactor(chatlog): Move rendering of messages from GenericChatForm -> ChatLog
      refactor(chatlog): Store ChatLine::Ptr in messages instead of ChatMessage
      feat(chatlog): Re-implement sliding window ChatLog view
      refactor(chatlog): Remove unused getRow functions from ChatLine
      refactor(chatlog): Rename ChatLog -> ChatWidget
2021-11-21 17:34:37 -08:00
Anthony Bilinski
54a2b8970b
chore(review): Copyright notice cleanup 2021-11-21 16:19:22 -08:00
Mick Sayson
ffef0e3796
refactor(chatlog): Rename ChatLog -> ChatWidget
* Makes the distinction between IChatLog (the model class) and
  ChatWidget (the view class) more clear
2021-11-21 16:18:45 -08:00
Mick Sayson
3757f733cc
refactor(chatlog): Remove unused getRow functions from ChatLine
* The getRow functions would not track correctly since the rows indexes
  cannot be fixed to the view anymore
2021-11-21 16:18:44 -08:00
Mick Sayson
b36a38e716
feat(chatlog): Re-implement sliding window ChatLog view
* Replace lines/messages with helper class to synchronize state between
  IChatLog and ChatLog more easily
* selection indexes have been replaced with ChatLine::Ptrs, this is to
  ensure consistency while the view slides around
    * This has another benefit of removing all the code that has to
      manually slide the selection boxes around
* Replaced all insertion/removal functions with single "insertAtIdx".
  This helps ensure that mappings between ChatLogIdx and position within
  the view are captured correctly as items in the view slide around
* workerTimeout replaced with more generic name "renderFinished" that is
  used in synchronous and asynchronous paths
* Removed unused function ChatForm::insertChatMessage
* Re-implemented "Go to current date" with new ChatLog APIs
* Removed unused GenericChatForm::addSystemDateMessage. This is handled
  by ChatLog now
* Resolves #6223
* Resolves #5878
* Resolves #5940
2021-11-21 16:18:44 -08:00
Mick Sayson
a9f7c0ca7e
refactor(chatlog): Store ChatLine::Ptr in messages instead of ChatMessage
* This simplifies future refactoring since the rest of ChatLog expects
  to be working with the base class
2021-11-21 16:18:40 -08:00
Mick Sayson
b7a88cde6e
refactor(chatlog): Move rendering of messages from GenericChatForm -> ChatLog
* Simplifies reasoning about who owns what functionality between
  GenericChatForm and ChatLog. GenericChatForm is now just a layout
  class and ChatLog handles all interactions with retrieving and
  displaying messages from the model
* Reasoning for work is described in more detail in #6223
2021-11-21 16:18:32 -08:00
Mick Sayson
dd7df35720
revert(chatlog): Revert cleanup
* Fix compilation issues caused by incorrect merges
2021-11-21 16:17:35 -08:00
Mick Sayson
00ab89c3ce
revert(chatlog): "feat: load messages from the database before date"
This reverts commit fb2957c5ee.
2021-11-21 16:17:35 -08:00
Anthony Bilinski
041b697e77
revert(chatlog): "load messages from the database after date"
This reverts commit b705ac8060.
2021-11-21 16:17:35 -08:00
Anthony Bilinski
31346423e1
revert(chatlog): "edit function "Load chat history""
This reverts commit 6de1173c17.
2021-11-21 16:17:34 -08:00
Mick Sayson
6c34fad9b6
fix(history): Fix qt deprecation warning
Qt 5.15 has QDateTime(QDate()) deprecated. Fix a usage of the deprecated
constructor introduced in parent commit
2021-11-21 16:17:15 -08:00
Anthony Bilinski
1104417022
revert(chatlog): "edit load history in search"
This reverts commit 8c4b1e00a1.
2021-11-21 16:17:10 -08:00
Anthony Bilinski
f29e948bed
revert(chatlog): "add action "Go to current date""
This reverts commit 2a9648d12c.
2021-11-21 16:17:10 -08:00
Anthony Bilinski
b9cf7f428d
revert(chatlog): "edit position chat after load history"
This reverts commit c2d5b422b3.
2021-11-21 16:17:10 -08:00
Anthony Bilinski
340496bd6e
revert(chatlog): "remove part messages from chat"
This reverts commit 4c7ecb6024.
2021-11-21 16:17:10 -08:00
Anthony Bilinski
bdbf1f61a8
revert(chatlog): "simple edit code"
This reverts commit b807998fe9.
2021-11-21 16:17:09 -08:00
Anthony Bilinski
b0b74cfe92
revert(chatlog): "edit load history when scrolling"
This reverts commit 0a9e72020e.
2021-11-21 16:17:09 -08:00
Anthony Bilinski
af3e0183b6
revert(chatlog): "prohibition to remove messages in group chat"
This reverts commit 5aeac56b76.
2021-11-21 16:17:09 -08:00
Anthony Bilinski
db3eaa8872
revert(chatlog): "fix a crash when there are no messages to load"
This reverts commit 040c6b95ae.
2021-11-21 16:17:09 -08:00
Anthony Bilinski
3a19eaddb5
revert(chatlog): "fix: data validation during the search"
This reverts commit acb91ed731.
2021-11-21 16:17:09 -08:00
Anthony Bilinski
59efeeb3e7
revert(chatlog): "feat: check chat status before start a search"
This reverts commit ce570927b1.
2021-11-21 16:17:09 -08:00
Anthony Bilinski
37b58ee8ee
revert(chatlog): "feat: save selected search text after scrolling up"
This reverts commit dbf880078e.
2021-11-21 16:17:09 -08:00
Anthony Bilinski
db0656a92c
revert(chatlog): "optimize load messages during the search"
This reverts commit 6de307e6b9.
2021-11-21 16:17:08 -08:00
Anthony Bilinski
cf76ae0869
revert(chatlog): "update workerStb"
This reverts commit 177bf12f11.
2021-11-21 16:17:08 -08:00
Anthony Bilinski
335ce790e9
revert(chatlog): "scroll bar stuck to bottom (fix #5755)"
This reverts commit 38df897e02.
2021-11-21 16:17:08 -08:00
Anthony Bilinski
146d93e159
revert(chatlog): "add comments for functions that load history"
This reverts commit 5fc1afbab5.
2021-11-21 16:17:08 -08:00
Anthony Bilinski
5fc273da94
revert(chatlog): partially revert "prevent invalid history access"
This partially reverts commit e3e6e1d9c4.
2021-11-21 16:17:08 -08:00
Anthony Bilinski
e18725c966
revert(chatlog): "fix stick to bottom behavior"
This reverts commit f2fa601073.
2021-11-21 16:17:08 -08:00
Anthony Bilinski
3b3779c850
Merge pull request #6409
Maxim Biro (1):
      refactor(windows): simplify dll check logic
2021-11-07 17:33:47 -08:00
Maxim Biro
9c9d0f8623
refactor(windows): simplify dll check logic
Instead of checking every .exe separately, loop over all of them with
the same checks.
2021-10-30 19:56:11 -04:00
Anthony Bilinski
12ac833254
fix(appimage): Include additional needed glib for RH based distros
Add old glib to work with our old gnutls on redhat based systems.

Generally we would want to avoid providing our old libs that the distro's newer
libs that we use depend on, which would include harfbuzz in this case for glib,
but including harfbuzz breaks libfreetype on newer distros like arch.

Other libs that we use from the system with dependencies that we provide include
are libfreetype, libXdmcp, and libICE, but that is unchanged here.

Fix #6339
2021-10-27 18:55:58 -07:00
Anthony Bilinski
cb8a095fd2
fix(appimage): Patch manually copied libs to include rpath for local dir
linuxdeployqt already does this for its copied libs. Required for included libs to find libs inside the appimage that they depend on.
2021-10-27 17:54:29 -07:00
Anthony Bilinski
cb6fd88239
refactor(appimage): List manual libs and copy iteratively
Also preserve symlinks while copying with -P to avoid creating duplicate
files from symlinks on build env system.
2021-10-27 17:53:25 -07:00
Anthony Bilinski
1a44373ddd
chore(deps): Add missing deps to INSTALL.md, update minimum versions
Ubuntu 16.04 and Debian 8 are both EOL, update minimum versions accordingly.
2021-10-27 00:25:14 -07:00
Anthony Bilinski
8cf7f51c14
chore(deps): Update minimum cmake version to 3.7.2
This matches Debian 9 LTS version, and is lower than Ubuntu 18.04's
cmake which is the oldest Ubuntu version now supported.
2021-10-27 00:25:14 -07:00
Anthony Bilinski
0dae965a2d
chore(docker): Update Ubuntu docker to 18.04 from 16.04
16.04 is EOL and unused/unsupported by the project.
2021-10-27 00:24:30 -07:00
Anthony Bilinski
2dafd89052
Merge pull request #6394
Brandon Mosher (1):
      refactor: Provide a Virtual Method Anchor for Classes in Headers
2021-10-26 16:21:55 -07:00
Brandon Mosher
1438f8f766 refactor: Provide a Virtual Method Anchor for Classes in Headers
Define at least one virtual method in polymorphic class cpp files to
improve link efficiency. Do so by defining a defaulted destructor or
another overridden virtual method in the class cpp file.
Also add explicitly defaulted copy/move constructors and assignment
operators to follow the rule of five and to avoid compiler suppression
of these functions due to the addition of a user-provided destructor.
Where neccessary, create new cpp files and add them to CMakeLists and
Testing.cmake. Set the -Wweak-vtables by default when compiling with
clang to issue warnings for new classes that do not comply with this
pattern.

See http://llvm.org/docs/CodingStandards.html#provide-a-virtual-method-anchor-for-classes-in-headers.

Fixes #6036.
2021-10-26 16:47:40 +00:00