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

481 Commits

Author SHA1 Message Date
Anthony Bilinski
ef8c2b7cb3
Merge branch 'v1.17-dev' 2020-03-28 01:43:40 -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
a7f3495956
fix(chatlog): enable dynamic view range in chatlog with history disabled
Message caching is handled by SessionChatLog in memory even when history is
disabled. ChatLog doesn't need to worry about how the messages its rendering
are being stored. Dynamic loading up and down in chatlog is sitll functional.
2020-03-21 19:41:22 -07:00
Anthony Bilinski
e5a6708877
Merge branch 'v1.17-dev' 2020-03-19 13:21:14 -07:00
sudden6
f2fa601073
fix(chatlog): fix stick to bottom behavior
This commit fixes the behavior when a message is received while the
chatlog is scrolled to the bottom. With this change, the chatlog will
stick to the bottom when it is scrolled all the way down. If it is
somewhere in the middle (e.g. for search) the chatlog will not change
its position.
2020-03-15 16:45:09 +01: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
Anthony Bilinski
e9570eafdf
Merge branch 'v1.17-dev' 2019-11-25 16:56:50 -08:00
Anthony Bilinski
af19c0d73b
Merge pull request #5875
Mick Sayson (1):
      fix(chatform): Prevent date line oscillations maxing CPU
2019-11-23 17:27:36 -08:00
Mick Sayson
64bae38b99 fix(chatform): Prevent date line oscillations maxing CPU
The previous implementation of hiding the date line would cause 100% cpu
usage. When the date line was shown it would hide the top line, causing
the date line to be hidden again due to a state change in which dates
was visible.

This is a minimal patch to work around the issue by pretending the line
covered by the date line is the first visible line when the dateline is
shown

Fixes #5620
2019-11-09 15:00:36 -08:00
Anthony Bilinski
f7d82a425d
Merge branch 'v1.17-dev' 2019-10-21 23:49:36 -07: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
cd75618e38
refactor(history): rename pending message variables
"Sent" to "Delivered", since that's what we're tracking also rename "isOffline"
to "isPending", which is boolean the same, but "isOffline" was opposite of its
correct value before, so boolean reverse the assignment.
2019-10-20 02:34:47 -07:00
Anthony Bilinski
1ad561ca4c
refactor(style): use only one of override, virtual, or final
following https://github.com/isocpp/CppCoreGuidelines/blob/master/CppCoreGuidelines.md#Rh-override

virtual means exactly and only "this is a new virtual function."
override means exactly and only "this is a non-final overrider."
final means exactly and only "this is a final overrider."

Nothing was changed from e.g. override to final, just reduced duplication of
these labels.
2019-10-19 12:26:50 -07:00
Anthony Bilinski
73fedbba79
Merge branch 'v1.17-dev' 2019-10-10 03:11:19 -07:00
Anthony Bilinski
b95bac238d
fix(chatlog): update precise selection when chatlog content changes
Fix #5769. Precise selections (within one chatline) need to be invalidated when
the line they are apart of is removed from the chatlog.
2019-09-28 18:00:20 -07:00
Anthony Bilinski
08b2c848e2
refactor(chatlog): use enum class instead of enum to avoid implicit casts 2019-09-28 17:07:06 -07:00
sudden6
0e3cd7fe6b
Merge pull request #5829
jessica181920 (1):
      fix(i18n): Various English fixes
2019-09-28 14:25:18 +02:00
Mick Sayson
4b691f9392 fix(chatlog): Remove invalid usages of raw chatlog indexes
ChatLogIdx is a strong type where the underlying data is only supposed
to be used in very rare circumstances. The ChatLog providing the indexes
provides no guarantees about what the first ChatLogIdx or last
ChatLogIdx will be. This commit removes unnecessary casts to underlying
data and fixes assumptions made about the underlying data
2019-09-21 14:26:14 -07:00
Anthony Bilinski
7cd20f0e28
Merge branch 'v1.17-dev' 2019-09-16 13:22:15 -07:00
jessica181920
11b34c84ef fix(i18n): Various English fixes
Consistency, typos, grammatical corrections, capitalization, punctuation,
etc.
2019-09-14 15:00:59 -04:00
jessica181920
e6381861c8 fix: Remove empty file
Removed an unused file
2019-09-14 02:24:59 -04:00
Mick Sayson
74d0b47ceb fix(chatlog): Prepare geometry changes on chatline proxy
Closes #5818. If output of boundingRect() changes for a QGraphicsItem
prepareGeomeotryChange() must be called.
2019-09-13 14:41:10 -07:00
Anthony Bilinski
2bba12175e
fix(chatlog): update multi line selection on chatlog change
Fixes crash due to out of bound access. Fixes selection box jumping on history load.

Fix #5769
2019-08-30 03:50:25 -07:00
TriKriSta
177bf12f11
fix: update workerStb 2019-08-28 14:26:20 -07:00
TriKriSta
dbf880078e
feat: save selected search text after scrolling up 2019-08-28 14:26:08 -07:00
TriKriSta
5aeac56b76 feat: prohibition to remove messages in group chat 2019-07-22 21:16:26 +03:00
TriKriSta
0a9e72020e refactor: edit load history when scrolling 2019-07-22 21:16:26 +03:00
TriKriSta
b807998fe9 refactor: simple edit code 2019-07-22 21:16:26 +03:00
TriKriSta
4c7ecb6024 feat: remove part messages from chat 2019-07-22 21:16:26 +03:00
TriKriSta
c2d5b422b3 feat: edit position chat after load history 2019-07-22 21:16:26 +03:00
TriKriSta
8c4b1e00a1 feat: edit load history in search 2019-07-22 21:16:26 +03:00
TriKriSta
b705ac8060 feat: load messages from the database after date 2019-07-22 21:16:26 +03:00
TriKriSta
fb2957c5ee feat: load messages from the database before date 2019-07-22 21:16:26 +03:00
jenli669
8a0197b37f
refactor(filetransfer): switch to Qt 5.13 compliant methods for OSX 2019-07-11 09:13:42 +02:00
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
Mick Sayson
ed514d7166 refactor(chatform): Remove message handling logic from gui path
Functional changes
* Offline messages are still sent when the chat log is cleared
* Spinner now does not wait for history to be complete, just a receipt
  from our friend
* Export chat and load chat history are now available in group chats
* Merged save chat log and export chat log
  * Note that we lost the info messages in the process

NonFunctional Changes
* FileTransferWidget slots only called for correct file
* Settings::getEnableGroupChatsColor now embedded in
GenericChatForm::colorizeNames
  * Settings::setEnableGroupChatscolor now emits signal connected to
GenericChatForm::setColorizedNames to keep state in sync
* Chatlog history not reloaded on setPassword()
  * I am pretty sure this had no purpose
* Removed a lot of responsibility from ChatForm
  * History moved to ChatHistory implementation of IChatLog
  * OfflineMsgEngine moved to FriendMessageDispatcher
  * Export chat and load chat history moved to GenericChatLog
    * Backed by IChatLog so can be used generically
  * Message processing moved to FriendMessageDispatcher
  * The action of sending files to coreFile is still handled by
  ChatForm, but displaying of the sent messages is done through IChatLog
  -> GenericChatForm
  * Search moved to ChatHistory/SessionChatLog
  * All insertion of chat log elements should be handled by
  GenericChatForm now
* Removed overlapping responsibilities from GroupChatForm
  * Search and message sending goes through ichatlog/messagedispatcher
  too
  * Lots of search functionality pushed down into IChatLog
* Some of the file logic was moved into Widget. This is mostly to avoid
  scope increase of this PR even further.
* History APIs removed that were no longer used
2019-06-21 11:01:35 -07:00
Monsterovich
1bbe210c25 fix(ui): Improved notifications 2019-05-22 19:48:23 +02:00
sudden6
a4ad8c71b8
refactor(core): make CoreFile its own independent class
This paves the way for better testability of Core as well as CoreFile.
2019-04-10 10:28:13 +02:00
TriKriSta
5ed1065230 style: edit colors for transfer widget 2019-03-23 14:58:44 +02:00
TriKriSta
f64bb48a92 refactor: edit styles
edit typing color and image,
move colors for background selected text and background searched text
in palette files
2019-03-02 01:58:58 +02:00
sudden6
d6d433c617
Merge pull request #5558
TriKriSta (8):
      style: add dark style
      refactor: move palette colors in ini files
      feat: edit reload themes
      refactor: rename palette colors
      style: edit styles
      feat: add color for links in palette
      refactor: edit variables for themes
      fix: initialization theme
2019-02-26 18:20:28 +01:00
TriKriSta
c6142e4287 refactor: rename palette colors 2019-02-22 18:01:43 +02:00
TriKriSta
e146c11f0f feat: edit reload themes 2019-02-21 15:53:31 +02:00
TriKriSta
5bc27b08bc refactor: move palette colors in ini files 2019-02-20 15:42:53 +02:00
TriKriSta
87d6883a0f style: add dark style 2019-02-19 16:21:44 +02:00
TriKriSta
d0e8ba8b9c feat: show date in chat log 2019-01-28 21:15:52 +02:00
sudden6
49507d76d8
Merge pull request #5500
crypto-universe (1):
      feat(chatfom): make magnet links clickable
2019-01-18 09:54:50 +01:00
crypto-universe
5b1bc7e523 feat(chatfom): make magnet links clickable
Add one more rergular expression that should match magnet links.
Unfortunately, magnet links may contain a lot of spaces, so
the message after the link may also be treated as a part of link.
2019-01-17 20:00:34 +01:00
Teemu Ikonen
c9f3830bc2 fix(ui): tighten idealSize() for chatlog Timestamps
Make Text::idealSize() a virtual function and override it in the derived
class Timestamp. The idealSize() function for Timestamps now returns a
tighter size to enable better right-alignment of the timestamps in
chatlog.

Fixes #3957. Note that this change assumes that timestamps do not
contain RTL text.
2019-01-14 00:07:18 +02:00
Mick Sayson
3615425234 refactor(transfer): Remove unnecessary split for pause send/recv 2018-12-16 13:51:04 -08:00
Mick Sayson
293a1d615c fix(transfer): Accurately represent pause state in UI
Toxcore has a 3 state pause, us, them, or both. Currently our UI
messes up if both parties pause. This changeset changes our UI behavior
to show whether we're paused, or if we are waiting on the remote to
unpause.
2018-12-16 13:51:03 -08:00
Mick Sayson
25005c5c19 feat(db): File transfer history review comments 2018-12-05 21:15:14 -08:00
Mick Sayson
d9b39b3102 feat(db): Hookup file history to the rest of the system 2018-12-02 14:40:53 -08:00
Mick Sayson
157be30b11 refactor(files): Refactor FileTransferWidget
Rational here is that the current FileTransferWidget is quite
entangled with core logic. If we are going to instantiate the
FileTransferWidget without an active file transfer the widget needs to
behave sanely without getting messages from toxcore. This changeset is
an attempt to allow us to move from any FileTransferWidget state to any
other state without having to go through the appropriate state
transitions.
2018-12-02 14:35:04 -08:00
sudden6
acc7058e65
refactor: remove another function from Nexus 2018-11-01 10:22:20 +01:00
Monsterovich
2557f5e045 fix(ui): remove useless variable 2018-10-25 02:44:11 +02:00
Monsterovich
d54e21064c fix(ui): oops 2018-10-25 02:38:43 +02:00
Monsterovich
89cb24254d fix(ui): fix anything 2018-10-25 02:38:43 +02:00
Monsterovich
a4a8e361d0 fix(ui): groupcolors fix2 2018-10-25 02:38:43 +02:00
Monsterovich
aaf5229ece feat(ui): Added feature to generate colors for user names in tox groups 2018-10-25 02:38:43 +02:00
Jimi Huotari
71d1fa6f24
refactor(themes): load css and images from themes folder
Original work by tox-user.

The default theme is now placed in a different path:
- C:\users\%username%\AppData\roaming\qtox\themes - for Windows
- ~/Library/Application Support/qtox/themes - for MacOS
- ~/.config/qtox/themes - for other Unix systems including GNU/Linux

Thanks to that it's no longer required to recompile the program to modify
the theme.

In addition to that the default theme is also included as a resource. If
the theme folder or some file inside it is missing, qTox will load it
from resource.
2018-10-24 14:04:03 +02:00
Anthony Bilinski
13b15a87d7
fix(ui): require . in www.url regex matching 2018-10-13 12:40:15 -07:00
iphydf
52a5951d26
chore: Use nullptr instead of 0 for NULL pointer constants. 2018-09-07 21:38:59 +00:00
TriKriSta
01281e87cb
Merge branch 'master' into search 2018-08-14 01:08:54 +03:00
pkev
ee0d4bb880
fix: correct format log files
- correct format of "save chat log"
 - add date like in chat
 - correct type dialog for export dialog
2018-07-22 21:49:32 -07:00
TriKriSta
706822123f refactor: delete sqlite in travis, edit some functions 2018-07-14 00:58:35 +03:00
ezavod
2cdff7e9ed
fix(chatform): mark message with triple click
Fixes #5211. Only trigger on triple clicks that are caused by the same
mouse button clicked successively.
2018-07-09 16:33:30 +02:00
TriKriSta
42f5ac67e7 refactor: edit generateFilterWordsOnly 2018-07-08 22:44:21 +03:00
TriKriSta
60a2c5e651 refactor: change QRegExp on QRegularExpression for some search functions 2018-07-07 20:56:02 +03:00
TriKriSta
610e04aa26 feat: use search settings 2018-06-24 21:11:20 +03:00
ezavod
4434253283
refactor(chatform): consistent usage of file dialogs
This makes the usage of QFileDialogs consistent by using he native
file picker in all cases. Also makes the usage of the last location
consistent. Furthermore this removes default parameter values and uses
Q_NULLPTR.
2018-05-29 12:51:50 +02:00
Anthony Bilinski
ca32e77d74
feat(history): load set number of messages from history
Fix #3124
Fix #3004

Instead of loading a set 7 days of history. Better performance when there are lots of messages, and better context when friends haven't talked in over a week.

Removed historyBaselineDate, introduced in deb8440c6a to fix duplicate messages, but duplicate messages were very likely fixed by https://github.com/qTox/qTox/pull/4607.

Also refactored history loading.
2018-05-06 15:31:54 -07:00
Anthony Bilinski
5dc4e6de81
chore(legal): update copyright date to 2018 for all source files 2018-04-25 17:33:38 -07:00
Anthony Bilinski
e564b85e3c
fix(chatform): Broaden URL matching to include unicode
Fix #4853
Fix #4295

*Instead of searching strictly valid URIs, allow anything characters following scheme. This allows for UTF-8 characters used in other languages, as well as parentheses and other ASCII characters. This will over-match some invalid URLs.
*Ignored surrounding characters of URIs and ending punctuation
*Fix www-only links by adding http scheme to href
2018-02-25 01:48:25 -08:00
TriKriSta
7718734c9a feat: add search in text in group chats 2018-02-11 23:09:13 +02:00
TriKriSta
de9c906117 feat: edit load history for search 2018-02-10 17:56:16 +02:00
TriKriSta
b881d32d1b feat: add text search 2018-02-10 17:56:16 +02:00
Diadlo
c640007775
perf(smileys): Use shared_ptr to automaticaly count references 2017-11-13 14:46:37 +03:00
noavarice
3ae1e2a25b
refactor: simplified applMarkdown() 2017-11-03 21:00:10 +03:00
noavarice
de108ce834
refactor: allow newline|space to appear after multiline code seq
Also added tests
2017-11-03 21:00:09 +03:00
noavarice
6ffe4cd8d8
fix: URL patterns based on RFC 3986
Also added const's and changed way of REGEX_TO_WRAPPER' initialization
2017-11-03 21:00:09 +03:00
noavarice
7b74cc5019
refactor: added separate regex for single slash and minor change
Also added lazy evaluator operator for single, double sign regex
and regex for multiline code for performance reason. Added missing
QStringLiteral
2017-11-03 21:00:08 +03:00
noavarice
d48a479a39
refactor: applyMarkdown() function logic is more rigorous
Brief list of changes:
  - changed way of getting count of formatting symbols for captured
    string: patternSignsCount() function replaced with constant index
    which points to regex group that captures formatting symbols.
    Regexes updated accordingly;
  - updated docs for applyMarkdown() function;
  - applyMarkdown() function refactored:
    * changed var names;
    * logic is more strict: get captured string -> crop formatting symbols
      if necessary -> wrap captured string into HTML and replace in result.
2017-11-03 21:00:08 +03:00
noavarice
5e5352c268
refactor: changed markdown regexes and related constants
Brief list of changes:
  - removed several headers;
  - added single array of pairs for direct mapping regexes to HTML
    wrapper strings;
  - COMMON_PATTERN splitted into two regexes;
  - wrapper for hrefs is a single constant.
2017-11-03 21:00:08 +03:00
noavarice
1ac21c07db
refactor: replace TextFormatter class with function
Brief list of changes:
  - removed TextFormatter class and its unnecessary instantiation;
  - added single method for applying markdown.
2017-11-03 21:00:08 +03:00
noavarice
e9209b06f9
refactor: independent URL highlighting
Brief list of changes:
  - removed workarounds while applying markdown;
  - URL highlighting now is independent for markdown support;
  - URL patterns reverted to the state they were before.
2017-11-03 21:00:01 +03:00
sudden6
1dce8f6468
refactor(core): rename corestructs to toxfile.cpp
It only contains this struct now.
2017-10-31 09:32:53 +01:00
anthony.bilinski
45b3575d79 fix(preview): only downscale preview images, never upscale
Fixes #4733
2017-10-20 12:01:34 -07:00
anthony.bilinski
414fa178b4 feat(exif): Honour exif orientation tag
Fixes #1848
2017-09-19 10:00:05 -07:00
Andrew Morgan
42a9534b24
fix(ui): Use native file picker dialog
The original reason that the Qt picker was used instead of the native
picker was that the native option would cause Nautilus/GNOME-based
pickers to hang.

This turned out to be due with a Qt bug with parenting Gtk windows. As a
result the parent of each file dialog window has been set to NULL,
eliminating the crash. As far as tests have shown, this produces no
adverse effects on either floating or tiling wms.

Fixes #3494
2017-07-06 06:40:33 -07:00
sudden6
a3b234e6dd
chore(formatting): run clang-format 2017-06-01 09:50:59 +02:00
sudden6
a1181e10f2
chore(formatting): disable clang-format for certain code sections 2017-06-01 09:49:32 +02:00
Zatsepin Nikita
41a781d3f8 fix(chatform): add space for current copy link 2017-05-29 00:14:23 +03:00
sudden6
0f54e44262
Merge pull request #4305
ezavod (1):
      feat(chatform): mark message with triple click
2017-04-07 18:40:07 +02:00
Zetok Zalbavar
c8ed535bba
fix(UI): improve unclear message about text being resized in chatform 2017-04-02 18:41:43 +01:00
ezavod
3acbc148f5 feat(chatform): mark message with triple click
This is an implementation of proposal #4003.
2017-03-28 17:20:01 +02:00
sudden6
e9515f4898
fix: remove useless line that caused a warning 2017-03-23 13:36:29 +01:00
noavarice
08208e9aa5 fix: fixed wrong formatting for multiple URL's in one message
Fix #4275
I did not consider that replacing one substring with another will point
to shifting position of next URL found with regexp. That's the behavior
of Qt's "QRegularExpression" class - it takes a string into constructor
and seems to make its copy inside so changing source string does not
affect this regex object
2017-03-22 14:23:57 +03:00
sudden6
f0cec44a8c
fix: silence various warnings 2017-03-20 22:21:38 +01:00