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

163 Commits

Author SHA1 Message Date
Anthony Bilinski
2b41a06b55
feat(Settings): Add system for versioning and upgrading Settings
Similar to how History handles SCHEMA_VERSION. Run separately on global and
personal settings, since some state in global, and personal settings can’t be
done globally since they require the passkey.

Restrict a user from downgrading past the saved settings version, due to
possible compatibility breaks or old qTox versions re-introducing corrupt state
that was already healed.

Pass in new profile state for personal settings rather than relying on settings
file presence because personal settings can be stored in either the personal
settings file or global settings file. This was introduced in
aea9eea8a4 when personal settings were first
moved to their own file.
2022-03-06 06:00:13 -08:00
Anthony Bilinski
3c682abc69
fix(docs): Add brew prefix to macOS build instructions
Update brew's qt5 to qt@5, following brew naming deprecation.
2022-03-04 22:04:26 -08:00
sudden6
cd8af735fc
fix: don't link emoji resources into targets that don't need them
The emoji resouce file is quite big, so link it only when really needed.
2022-02-25 23:22:28 +01: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
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
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
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
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
Mick Sayson
7c218b389d
feat(chatlog): Add image preview on paste
Reuse code from the file transfer widget to provide an image preview
on paste/grab. This prevents users from accidentally sending images they
did not mean to when their clipboard is not in the state they thought it
was.

Implementation exposes the genericchatlog vbox to the child classes and
chatform injects the imagepreview into it.
2021-10-24 22:06:58 -07:00
Anthony Bilinski
a24f99df0d
Merge pull request #6347
bodwok (4):
      refactor(ui): separation of responsibility for sorting the contact list
      fix(build): include QVector type
      refactor(ui): code improvement
      refactor(ui): code improvement
2021-06-30 09:35:10 -07:00
Anthony Bilinski
65ff532a54
fix(macos): update deprecated AVFoundation API 2021-06-27 11:20:17 -07:00
bodwok
18b34b325f
refactor(ui): separation of responsibility for sorting the contact list 2021-06-13 20:11:19 +03:00
bodwok
3ba11f7075
refactor(CMakeLists): remove duplicate files 2021-04-28 19:09:28 +03:00
Jamie Westell
f85f633346
chore(travis): add code coverage report generation
This change adds a cmake configuration switch to enable code coverage
instrumentation during the compilation of the project. When tests are
executed, the instrumentation outputs coverage data to output files in
the build directory. Programs such as lcov/gcovr can turn that data into
reports.

This change also adds steps to the travis CI configuration to build with
this configuration switch and then use lcov to generate the consolidated
report and publish to codecov.io
2021-03-21 20:36:28 -07:00
Anthony Bilinski
be167c9229
feat(build): Add option to enable ThreadSanitizer 2021-03-18 16:04:35 -07:00
Mick Sayson
b715815011
feat(extensions): UI updates for extension support
Added a UI element to indicate extension support of the chatroom. For
all groups it will always be red since we do not support extensions in
groups. In a 1-1 chat the indicator will either be green/yellow/red
depending on if the friend has support for all/some/none of qTox's
desired extension set.
2021-01-30 12:52:07 -08:00
Mick Sayson
7474c6d8ac
feat(messages): Multipacket message support
* Introduced ToxExt and CoreExt abstraction
    * Along with interfaces for mocking and unit testing
* Add "supportedExtensions" concept to Friend
* Dispatch messages to CoreExt instead of Core when friend supports
extended messages
    * Only split messages for core when extended messages are unavailable
* Offline message engine/History not altered. Currently only valid for
an existing session after extension negotiation has completed
2021-01-30 12:52:06 -08:00
begasus
d413e7b13c
feat(haiku): Don't use fstack-protector on Haiku 2021-01-23 05:44:02 -08:00
Anthony Bilinski
425e3f6518
Merge branch 'v1.17-dev' 2020-11-23 09:53:13 -08:00
Anthony Bilinski
a93c599497
feat(osx): Add support for macOS 10.16, remove support for macOS 10.13
Stop specifying a specific path in cmake for the SDK, since the path differs in
10.16, and cmake will find it automatically.

Use the oldest supported SDK based on https://developer.apple.com/support/xcode/

Fix #6252
2020-11-22 20:06:33 -08:00
Anthony Bilinski
ede0418b4f
Merge pull request #6182
bodwok (2):
      refactor: connection to parent method in toxuri.cpp
      refactor: connection to parent method in toxuri.cpp
2020-07-04 16:52:36 -07:00
bodwok
06ff723c0d
refactor: connection to parent method in toxuri.cpp 2020-07-04 21:32:57 +03:00
sudden6
f37813ff88
refactor: move translations to their own module 2020-07-03 15:46:07 +02:00
sudden6
0335f20362
fix: Qt ressource system usage
Make use of the `AUTORCC` feature of cmake to simplify adding resource
files to qTox.

Fixes #6144
2020-07-03 15:45:57 +02:00
Anthony Bilinski
431fd7bfa2
Merge pull request #6073
Anthony Bilinski (1):
      fix(notification): hide snore warning log spam

Mick Sayson (2):
      feat(notification): Notification string generator for multiple messages
      feat(notification): Notifications now always replace the previous one
2020-07-02 01:34:34 -07:00
sudden6
8768f6be37
refactor: remove unused OSX platform code 2020-06-22 01:12:35 +02:00
Mick Sayson
a9f6543e43
feat(notification): Notification string generator for multiple messages 2020-05-17 00:00:48 -07:00
Mick Sayson
99c1753a76 fix(preview): Fix exif orientations
Previous exif transformations were not valid. The exif spec defines the
orientations as where the 0th row and the 0th column should end. The
previous mappings used in qTox did not respect these mappings and needed
to be updated.
2020-05-16 16:53:14 -07:00
sudden6
a90f0762d9
refactor(cmake): change folder structure
The new folder structure will be like this:

/<module>/CMakeLists.txt
/<module>/src/file.cpp
/<module>/include/<module>/file.h
/<module>/<subdir>/<...>
2020-05-11 16:45:52 +02:00
Anthony Bilinski
5a877d742b
refactor(core): pass bootstrap list interface to Core 2020-05-10 21:39:58 -07:00
Anthony Bilinski
c748b5a8d0
Merge branch 'v1.17-dev' 2020-04-24 18:35:00 -07:00
Anthony Bilinski
9888bc2d80
fix(build): disable Werror by default, keep enabled on CI
To allow for easier building with different compilers on user systems. Keep
strict checks on CI to make sure new warnings aren't ignored.
2020-04-12 16:30:17 -07:00
Anthony Bilinski
bd339d2cb6
chore(build): stop using removed cmake options
Options were removed in https://github.com/qTox/qTox/pull/5888
2020-04-12 01:52:06 -07:00
Anthony Bilinski
6e2ac12d84
fix(avatar): reject avatars that are larger than 64KB
This will prevent qTox from auto-accepting arbitrarily large avatars. Avatars
are already limited by TCS 2.2.4 to 64KB, so we would only receive larger
avatars from badly behaving clients.
2020-04-10 15:32:35 -07:00
Anthony Bilinski
ef8c2b7cb3
Merge branch 'v1.17-dev' 2020-03-28 01:43:40 -07:00
Anthony Bilinski
4f7056385f
refactor: remove dependency on libfilteraudio
The audio filtering/echo compensation didn't ever work reliably, so just
remove it.
2020-03-23 18:24:23 -07:00
Anthony Bilinski
f373107f63
chore(cleanup): add Wunknown-pragmas, fix pragma typos
Fix #6035
2020-03-23 18:04:35 -07:00
Anthony Bilinski
2c1a86482a
chore(style): remove old style casts and cross sign comparisons
Enable warnings for both. Favour casting to signed rather than casting to
unsigend for comparisons. Per isocpp's core guidelines ES.102, signed
arithmetic gives more expected results. If we need one extra bit of range,
using longer signed types achives that.

Fix #6010
Fix #6012
2020-03-21 20:29:10 -07:00
Anthony Bilinski
89913e0f9a
refactor(netcam): remove GenericNetCamView, merge into NetCamview
Without GroupNetCamView, the split in arbitrary.
2020-01-26 04:29:55 -08:00
Anthony Bilinski
91bcd211a7
refactor(netcam): remove GroupNetCamView class
Fix #5918
2020-01-26 04:05:39 -08:00
Anthony Bilinski
49abc996ae
Merge branch 'v1.17-dev' 2020-01-19 16:16:57 -08:00
Anthony Bilinski
cf672375be
revert(toxme): remove toxme from qTox - the service is offline permanently
As of 2019-10-09, toxme.io was taken offline permanently. Remove UI and code
in qTox relating to it. Revert this commit if it comes back online in the
future.

Fix #5897
2020-01-16 13:28:41 -08:00
sudden6
547a038e48
refactor: remove AppImage update bridge
When re-evaluating our dependencies we decided that the update bridge
has a high potential for security issues because it's not widely used.
Additionally similar functionality is already present in qTox.
2020-01-13 11:19:01 -08:00
sudden6
5b3c8aec11
refactor: remove AppImage update bridge
When re-evaluating our dependencies we decided that the update bridge
has a high potential for security issues because it's not widely used.
Additionally similar functionality is already present in qTox.
2020-01-12 20:44:21 +01:00
Emery Hemingway
faeb699fd0 feat(build): add nix-shell support
Add a metadata file and build rules to build and test from a development
shell provided by the Nix package manager.
2019-12-16 06:57:11 +00:00
Anthony Bilinski
1a726b54cd
fix(history): display broken messages UI with error icon
Allows users to still see their broken messages in the chatlog, but in a way
that's clear that they haven't been delivered and won't be sent.
2019-10-20 02:34:48 -07:00
Anthony Bilinski
e85d3f522a
fix(icon): use Qt tray icon in all cases, remove platform specific backends
qTox added specialized tray icon backends over time to work around bugs with
the default implementation, since then our GTK+2 backend has stopped working,
our appindicator backend was never selected by default by cmake, and
statusnotifier was never selected at SystemTrayIcon construction, leaving us
only ever using the broken GTK+2 backend, or theoretically the Unity backend,
which I didn't see selected on Ubuntu 16.04 Unity. In all other cases we would
fall back to the Qt backend.

Qt icon has improved over time, and our platform specific icons have become
stale, with GTK+2 becoming deprecated and GTK+3 not having a similar feature,
QSystemTrayIcon has been tested on a variety of DEs and works as well or better
in all cases, as shown in the table at
https://github.com/qTox/qTox/issues/5881#issuecomment-541892457

Fix #5881
Fix #5859
2019-10-16 13:27:29 -07:00
antony-jr
bcab4514e4
chore(build): use search_dependency to add AppImageUpdaterBridge 2019-07-27 16:49:23 +05:30
antony-jr
5eea8ba27f
feat(build): add the delta updater 2019-07-27 16:49:20 +05:30
jenli669
04a9bc46f4
docs(copyright): update and add copyright info
zealously updates and adds qTox copyright information.

Fixes #5713
2019-06-28 01:18:26 +02:00