Fixes#4388.
Separated date message in its own function.
Also added date message before info messages like it is already done with normal chat messages.
In multiple windows mode there are no two widgets that are separated by the splitter, there is just one widget.
This changes the splitter state without the users intention.
This sets the flag to `Qt::Window` for open dialogs in multi windows mode.
Commit changes the appearance of non-chat windows (Settings, Add Friend, ...).
Revert a bug introduced in d126b18d76
where qTox calls tox_bootstrap() and tox_add_relay() with an invalid
argument, which results in qTox not connecting to the bootstrap nodes
from its list of bootsrap nodes and therefore failing to connect to the
Tox DHT network in the case when that list is the only source of nodes
to connect to. The invalid argument is node's public key, which is
non-nullable but is passed a null due to invalid ToxPk object being
constructed. ToxPk's constructor expects the QByteArray argument to be
the byte representation of a public key, but a textual representation
is passed to it instead, which creats an invalid ToxPk that resolves to
null when queried for public key's bytes for calls to tox_bootstrap()
and tox_add_relay().
Fixes#4385
Past this change toxcore version was set during compilation. This
caused a problem when you changed version of toxcore while qTox would
still display its old. This behaviour was misleading.
Unfortunately, can not pass local variable on ChatLine::Ptr through
several method calls so ChatMessage inserted after its creating in the
same scope. Updated docs
Brief list of changes:
- "resolveToxId" method's name replaced with "resolveToxPk";
- updated comments for "resolveToxPk" and "needsToHideName";
- changed "resolveToxPk" return value for fail case;
- fixed typo.
Brief list of changes:
- contentdialog.* and friendlistwidget.cpp reverted to their previous states;
- added macros for setting stylesheets for form components;
- added 'static' qualificator for 'fontToCss' function;
- added 'needsToHideName' method and several places in code replaced with this
method's calls;
- some changes which are related to previous listed;
- 'resolveToxId' returned to GenericChatForm class.
Return value of "addMessage" was not used at all, so now this method
(and "addSelfMessage" too) does not have return value - just inserts
message into ChatLog. Also messages are creating with "createMessage"
and "createSelfMessage"
Fix#4327
Description:
- QString::arg call with mulpiple arguments replaced with chained
QString::arg calls;
- dynamic memory allocation for array of names replaced with
allocation on the stack, unfortunately I do not notice this while
making Core refactoring.
Also code style is formatted with script
Brief list of changes:
- removed unnecessary headers from core.h and core.cpp;
- added missing brackets and aligned long lists of parameters;
- some other small changes.
Made as single commit because this change requires an explanation. As i
understand, `getTypingNotification` always return the same value because
`setTypingNotification` is not connected for any signal and the only
time it's called - from `PrivacyForm`'s method which is never called and
also is not connected to signals. I guess that removing `getTypingNotification`
from `onTextEditChanged` will not affect anything
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
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
Fix#4010.
qTox use status system, where offline is one of the status, but toxcore
use two different meaning: 'connection' and 'user status'. To correct
qTox status handling we should ignore online connection status.
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
Previously GroupInviteForm included several collections of components
which were supposed to use as a single object. Now they are replaced
with a class and all functionality related to this collections moved
there too. Also fix#3621
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
tux3 (4):
fix: Accept IDs as tox URIs, not just ToxDNS addresses
fix: Various IPC event handling and related bugs on startup
fix: Don't even try to add ourselves as a friend in the Tox URI handler
fix: msleep in toxuri processEvents loops, to avoid 100% CPU
Fixes#1926 : When an IPC event was processed locally, if the window was closed before the core could start, the event handler would be forever stuck in the background waiting for the core to start. We fix this by substituting QApplication::quit() by a Nexus::quit() function and a Nexus::isRunning() function, which gives us a condition for exiting blocking processEvents() loops. We cannot simply use QApplication::quit(), because this function has no effect before the start of the event loop.
The problem was further exacerbated by the Tox URI event handler being (incorrectly) blocking. The IPC owner would block in this event handler, and the sender of the event would give up waiting and process the event itself a second time, potentially triggering the first bug. We fix the event handlers accordingly to be (mostly) non-blocking.
Also fixes a related deadlock between ~Core and ~Profile in the case of an early exit