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

449 Commits

Author SHA1 Message Date
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
noavarice
18c3f3a217 fix: URL's are not affected by markdown
Fix #4242
Just running in a loop through all of markdown symbols in found URL's,
replacing them with their associated HTML character code before the code
formatting to avoid any chance of interception
2017-03-12 23:14:44 +03:00
Diadlo
d1ec8cc989
Merge pull request #4239
ezavod (1):
      fix: iterate all blocks
2017-03-12 14:53:46 +03:00
ezavod
7a5c5a86fd fix: iterate all blocks
refactor: block iteration loop

refactor: replaced checks with chop()
2017-03-12 11:20:14 +01:00
sudden6
bf0e6817af
refactor: correct indentation in filetransferwidget.cpp 2017-03-08 17:49:37 +01:00
noavarice
e8ed7e1f53 fix: fixed documentation mistake 2017-03-07 15:34:52 +03:00
noavarice
3e2bfdd548 refactor: further improvement of message formatting
Brief list of changes:
-  names of some variables and constants were replaced for reading
   convenience;
-  URL-highlighting method moved to TextFormatter so URL's don't
   conflict with italic text formatting;
-  as I understand, in previous version 'file://' URL does not work
   because of bad regex. I fix this with help of wiki page that
   referenced in comment for old code. Important note: there are two
   equal 'file://' URL syntax: 'file:///...' and 'file://localhost/...'
   and the second one does NOT work in KDE but works in Gnome so that's
   not a bug
Fix #4233
2017-03-06 11:55:54 +03:00
Jimi Huotari
9322f29ef4 feat(UI): Move filetransferwidget buttons side-by-side.
This aims to prevent accidental clicks on the incorrect button in
cases where the chatlog moves at the time of the click.

Closes #2597.
2017-03-01 23:44:49 +02:00
Zetok Zalbavar
80f5de31b3
style: reformat current C++ codebase using clang-format 2017-02-26 11:52:45 +00:00
noavarice
87f219a78f refactor: message text formatting works better now
- tag intersection detected
- variables and constants' names became shorter
2017-02-19 23:53:11 +03:00
noavarice
5047a65e11 refactor: improved HTML-formatting mechanism for text messages
Added class provides text font formatting with HTML font tags
Supported stuff:
  - nested formatting;
  - several text pieces formatted with the same formatting style at the
    one message;
  - styling applies only if non-whitespace symbol follows opening
    formatting symbol and also non-whitespace symbol preceds closing
    symbol;
  - only multiline code font formatting supports new line inside of
    message text.
Also fix #3804
2017-02-19 10:06:26 +03:00
sudden6
d320b1f259
Merge pull request #4137
Yuri (1):
      fix(font): Made font changes in settings apply on screen instantly.
2017-02-06 15:18:14 +01:00
Yuri
742583bb9e fix(font): Made font changes in settings apply on screen instantly.
Before the user had to restart qTox for the font change to take effect.
Now it changes instantly.
2017-02-05 21:49:30 -08:00
Yuri
a18e0b6a2c fix(clipboard): Made clipboard operations work the same on all OSes.
Qt should handle all OS differences, not individual apps.
2017-02-02 20:18:26 -08:00
Diadlo
fcd8eed7cd
style: Fix style of a lot of pointers 2017-01-06 23:03:58 +03:00
Zetok Zalbavar
d4ac13dbf4
revert: "refactor: Added to include path and exclude it from all includes"
Revert needed, since otherwise there is no way to do automatic sorting
of includes.
Also reverted change to the docs, as leaving it would make incorrect
docs.

In case of conflicts, includes were sorted according to the coding
standards from #3839.

This reverts commit b4a9f04f92.
This reverts commit 5921122960.
2016-12-29 16:10:53 +00:00
tux3
a7de2680d9
feat(UI): Add 'Copy link' context menu item
Fixes #927
2016-12-07 13:54:40 +01:00
Zetok Zalbavar
7b60a5dd36
chore: explicitly mention that copyright belongs to qTox contributors 2016-11-29 11:12:06 +00:00
Diadlo
b4a9f04f92
refactor: Added to include path and exclude it from all includes 2016-11-28 23:28:42 +03:00
Diadlo
f7899d7b50
fix(UI): Changed tab order to be same with visual order 2016-11-16 23:36:52 +03:00
sudden6
8ff0d28abf
fix(chatlog): silence warning about unused parameters 2016-11-11 00:12:07 +01:00
Zetok Zalbavar
64bbc6cfbb
style: change postfix increment to prefix increment 2016-11-03 07:57:14 +00:00
sudden6
febde259bc
Merge pull request #3738
iphydf (1):
      refactor: Avoid RTTI by using qobject_cast.
2016-09-24 12:06:41 +02:00
iphydf
d94712b2e2
refactor: Avoid RTTI by using qobject_cast.
This allows us to save some memory and executable size by removing the
need to generate and compile C++ RTTI.
2016-09-23 03:14:58 +01:00
Diadlo
c3bf4b7085
refactor(text): Add early break 2016-09-21 14:13:38 +03:00
Diadlo
c8512fa984
fix(text): Change idealSize calculation
Ideal size of doc can not be used because in the case of using it for
boundingRect (which uses 0,0 as the upper-left corner) leads to the
clipping right side of RTL languages.

Fixed #1887.
2016-09-21 14:08:28 +03:00
Diadlo
72780e6c7a
docs(todo): Changed todo format 2016-08-19 00:20:24 +03:00
Diadlo
1332abed11
docs(chatlog): Added leading stars 2016-08-19 00:20:23 +03:00
Nils Fenner
f00b9008e6
feat(settings): add notification signals for changed settings values
Makes changes to settings application wide transparent. The properties section is optional in theory, but comes in very handy, if we decide to access settings e.g. from within a script context.
2016-08-14 18:08:24 +02:00
sudden6
349a1ffb02
Merge pull request #3563
Diadlo (2):
      refactor(filetransferwidget): Added ability to check activity
      fix(chatlog): Don't delete active transfer widget
2016-08-01 22:08:48 +02:00
Diadlo
f7018c42c9
fix(text): Using modified text, instead of raw
Fix #3568.
2016-07-31 13:38:51 +03:00
Diadlo
abf7b42324
fix(chatlog): Don't delete active transfer widget
Fix #3275.
2016-07-31 11:44:21 +03:00
Diadlo
233cc412ac
refactor(filetransferwidget): Added ability to check activity 2016-07-31 11:20:57 +03:00