Commit Graph

2611 Commits

Author SHA1 Message Date
Nicolas Werner ccedbde38b Add avatar placeholder and scrollbar to qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner 2dd636456c Add basic sections and button placeholders to qml timeline 2019-11-23 20:06:14 +01:00
Nicolas Werner 699fd7b38e Implement loading of history, when timeline is displayed 2019-11-23 20:06:14 +01:00
Nicolas Werner 47fbfd3f44 Add items to timline 2019-11-23 20:06:14 +01:00
Nicolas Werner 8b5c7b2f2f Add placeholder timeline model 2019-11-23 20:06:14 +01:00
Nicolas Werner 8e611abe87 Replace timeline with empty qml view 2019-11-23 20:06:14 +01:00
Michele Guerini Rocco 1659176c0d
escape html before parsing commonmark 2019-09-25 01:18:01 +02:00
Aidan Hahn 34ac2c4f75
re-re-linted 2019-09-03 21:23:54 -07:00
Aidan Hahn 4a223ef508
relinted 2019-09-03 19:59:08 -07:00
Aidan Hahn 5326d29e56
group similar ui options on settings page 2019-09-02 23:40:42 -07:00
Aidan Hahn 69fbaf9ae6
ran make lint to apply style guidelines 2019-09-02 23:30:59 -07:00
Aidan Hahn 3677c58a17
ReImplement UserSettings::setAvatarCircles 2019-09-01 19:54:50 -07:00
Aidan Hahn a38f390355
Merge branch '0.7.0-dev' of https://github.com/Nheko-Reborn/nheko into 0.7.0-dev-bugfix-71 2019-09-01 16:32:09 -07:00
Aidan Hahn ce978589b7
removed leftovers from previous refactor 2019-09-01 16:28:19 -07:00
Aidan Hahn 1e6fc6e342
fixed typoes in code, added layout metadata to new settings toggle. 2019-09-01 16:10:11 -07:00
Aidan Hahn a1c2aed36a
Refactored Avatar and RoomInfoListItem to access rounding settings in place 2019-09-01 14:41:23 -07:00
DeepBlueV7.X 5be967fb1d
Merge pull request #86 from Nheko-Reborn/avatar-memory-usage
Try to reduce memory usage by reusing avatar pixmaps
2019-08-30 23:15:09 +00:00
Joseph Donofry 98d4f14bd1
Fix themeing issues on mentions 2019-08-29 18:01:20 -04:00
Aidan Hahn b10d453bd5
add controll bits for avatar rounding 2019-08-28 21:36:28 -07:00
Aidan Hahn 8a47388ec6
rounding options for Avatar class 2019-08-28 18:34:04 -07:00
Aidan Hahn 26002bf0e4
added logic in avatar class to determine rounding type 2019-08-27 23:31:04 -07:00
Nicolas Werner c5f0c3221f Fix usage of deprecated find 2019-08-28 08:21:07 +02:00
Nicolas Werner 8b5515d5c1 Remove unused variables 2019-08-26 08:51:56 +02:00
Nicolas Werner 52056a79fa Try to reduce memory usage by reusing avatar pixmaps 2019-08-26 08:51:56 +02:00
Joseph Donofry 89015b9f18
Fix SIGNAL SLOT issue on mtx types 2019-08-19 20:44:58 -04:00
Joseph Donofry 8d04236fbd
Fix build issues w/ clang 2019-08-19 18:54:17 -04:00
Joseph Donofry bcdd97c85f
More updates to mentions functionality 2019-08-19 18:11:38 -04:00
Joseph Donofry 52a2621776
Fix issues with caching and loading of mentions.
Mentions are now loaded from the cache instead of
directly from the web request.  Mentions are also
properly saved to the cache now (instead of as empty
strings).  Still lots of tweaks left on this feature.
2019-08-12 22:09:40 -04:00
Joseph Donofry 8839cb7d68
Fix missing include in prior commit 2019-08-10 13:20:13 -04:00
Joseph Donofry d5bb0936bf
Use 'system' theme as default if QT_QPA_PLATFORMTHEME is set
On first launch, before the user has configured any settings,
check the value of the QT_QPA_PLATFORMTHEME environment var.
If it is set, use the system theme as the default instead of the
light theme.  This fixes #72.
2019-08-10 13:14:37 -04:00
Joseph Donofry 7c7889a04d
Fix linting issues w/ the last commit 2019-08-09 23:36:45 -04:00
Joseph Donofry 3f563e1e6e
Cache User Mentions
Cache user mentions when they are retrieved from the server.
This logic currently isn't being utilized by the UI.  Additionally,
the app should use a 'since' value to only get mentions newer
than those stored in the DB, to avoid excessive web requests.

This will be implemented in a future commit.
2019-08-09 23:34:44 -04:00
Joseph Donofry 41dc420edd
Fix linting issues 2019-08-06 08:16:19 -04:00
Joseph Donofry dbdaf35907
Cache user mentions 2019-08-05 23:00:07 -04:00
Joseph Donofry 24a6495291
Fix lambda capture issue 2019-07-29 15:37:21 -04:00
Joseph Donofry fd2d4d6db3
Update mentions dialog
Mentions are now separated into 'this room' and 'all rooms'
tab., which allows the user to filter on the current room
if they desire.  Should add additional logic in the future
to show which room the mention was in the for the 'all rooms'
view.
2019-07-28 23:14:10 -04:00
Joseph Donofry 497774d623
Fix linting 2019-07-28 20:50:18 -04:00
Joseph Donofry b875a8debc
Update translation context 2019-07-28 18:45:37 -04:00
Joseph Donofry a9375add32
Address 'sent' translation issue 2019-07-28 18:40:23 -04:00
Nicolas Werner 0398c846f6 Add 'and' to typing display 2019-07-28 18:13:16 +02:00
Nicolas Werner b28115eb37 Fix message_type not being initialized correctly
Fixes "sent an audio file" replies, that were actually replies to text
messages.
2019-07-28 16:50:10 +02:00
Nicolas Werner dbb8eecf29 media->file in error message, when image upload fails 2019-07-28 16:16:02 +02:00
Nicolas Werner 50c3d4ed3a Add decryption error messages to translations 2019-07-28 13:16:13 +02:00
Nicolas Werner 1c9cc33902 Try to localise timestamps
I'm not sure, if that is the right way, but Qt doesn't really have a way
to format custom localised dates, so I tried to find the closest
approximations to what we currently have.

Relates to #69
2019-07-28 12:55:08 +02:00
Joseph Donofry f18a5dacda
Ignore badge label macos deprecations 2019-07-26 17:47:52 -04:00
Joseph Donofry 9fc079a4a9
Remove uneeded log message 2019-07-26 17:47:34 -04:00
Joseph Donofry 86888ee713
Fix bug with emoji font setting and clean linting 2019-07-26 17:44:44 -04:00
Joseph Donofry 778921be8a
Add emoji text selection option for non-mac 2019-07-26 17:31:59 -04:00
Nicolas Werner 78ed78c410 Improve layout of Emoji Picker
Respect system styling
Increase size of emojis (to remove empty space)
Add hover effect (partially adresses #41)
Less hardcoding of sizes
Use emoji font (color)
2019-07-25 11:49:15 +02:00
Joseph Donofry 49ec388c1d
Merge branch '0.7.0-dev' of ssh://github.com/Nheko-Reborn/nheko into 0.7.0-dev 2019-07-21 21:58:48 -04:00
Joseph Donofry 8b2488b7ef
Update Mentions UI
Mentions are now an '@' icon in the upper right.

UI Popup is now a smaller dialog.

Still lots of work to be done here.
2019-07-21 21:58:11 -04:00
Nicolas Werner cefe5fe719 Fix copy and pasting image from clipboard
If the QMimeData contains an image, it actually has a mime type of
application/x-qt-image. At least in some cases accessing the image/*
data returns a 0 length array. Accessing the data via ->imageData works
however. So we use that as our accessor and pass it to the preview
dialog.
2019-07-22 02:38:44 +02:00
Nicolas Werner 512db8c6ff Actually set attributes before starting the app
fixes "Attribute Qt::AA_EnableHighDpiScaling must be set before
QCoreApplication is created."
2019-07-22 00:03:12 +02:00
Joseph Donofry d2af827194
Fix linting issues 2019-07-16 22:50:23 -04:00
Joseph Donofry 579bf23460
Add User Mentions Dialog
Add a RoomListItem-like button that opens a dialog
containing all of the messages that would result in a
highlight from the server (for example, the user is mentioned,
or @room is mentioned).

This is VERY rudimentary and will be completely reworked in the future
to take advantage of the existing TimelineView class, instead of
using a dialog like it does now. The button to show the mentions
also needs work.
2019-07-16 22:39:10 -04:00
Joseph Donofry e5576f03d4
Fix additional Qt version issue 2019-07-05 16:31:01 -04:00
Joseph Donofry 4c0d4f35fe
Fix support for Qt versions < 5.11 2019-07-04 22:58:56 -04:00
Joseph Donofry 2484e0c118
Fix formatting issues 2019-07-04 21:31:28 -04:00
Joseph Donofry c0a010acbb
Fix deprecated function call issues with Qt 5.13
Update to mtxclient 0.3.0
2019-07-04 21:20:19 -04:00
Joseph Donofry 175737c28b
Fix some linting issues 2019-07-04 13:18:32 -04:00
Nicolas Werner 713f9dbe89 Show room version in settings 2019-07-04 01:26:16 +02:00
Nicolas Werner 94a8c358d1 Fix typo in log message 2019-06-27 23:01:07 +02:00
Nicolas Werner aa3d4c4f15 Reconfigure server url, when requested by login response 2019-06-27 15:55:04 +02:00
Nicolas Werner 52871cf93c Support well-known for server discovery 2019-06-27 15:54:03 +02:00
Nicolas Werner 40d9b5c5fc Fix santizize=undefined warning (overflow) 2019-06-27 14:57:32 +02:00
Joseph Donofry cfd6c5703a
Further UI Updates to Rich Replies 2019-06-14 20:45:37 -04:00
Joseph Donofry 129beb57c9
Further Improve Reply Functionality
Quoted replies now include matrix.to links for the event and the user.
UI Rendering has been (slightly) improved... still very WIP.
Restructured the reply structure in the code for future usability
improvements.
2019-06-13 22:33:04 -04:00
redsky17 1d4966d5fd
Add style for reply popup. Fix ALL of the linting issues 2019-06-11 23:36:46 -04:00
redsky17 71c1cbcfd1
Fix lambda capture and lint issues 2019-06-11 22:34:15 -04:00
Joseph Donofry 756c7d1671
Fix linting issue 2019-06-11 21:06:18 -04:00
Joseph Donofry 9159b9ce22
Initial Support for Rich Replies
Add placeholder UI for showing replies in the text entry widget.
Existing quoting capability has been removed (Temporarily), as
it was replaced with the new reply capability.  Replies sent from
nheko do not currently appear correctly in the timeline (this
will be fixed in a future commit).
2019-06-11 21:04:30 -04:00
Joseph Donofry b9dde957a8
Add initial support for rich replies to nheko 2019-06-09 19:03:18 -04:00
redsky17 bca4d7eef6
Merge in master 2019-05-27 16:40:39 -04:00
redsky17 9671b1c0d6
Fix linting issues 2019-05-27 16:06:28 -04:00
redsky17 7c630b1363
Add reply and menu buttons to TimelineItem 2019-05-27 16:04:35 -04:00
Nicolas Werner c8c0b41527 Raw string literals not allowed in MOC headers on OSX 2019-05-01 13:33:34 +02:00
Nicolas Werner 23eef9e1bc Simplify linkifyMessage
Parsing html as xml has inherent problems, most notable there are many
matrix clients that don't escape ampersands in urls of mx-replies, etc.
(See issue #18)

This also removes the replacement of <mx-reply> as it isn't strictly
needed.

Also the QRegExp is replaced with the Qt5 QRegularExpression for
perfomance and because it supports lookahead and lookbehind.

I'm pretty sure that the original code also replaced href="" with
href=\"\", which was probably wrong, but I'm not to sure about that.

Fixes #18
2019-05-01 12:11:19 +02:00
redsky17 4cb27f34f2
Fix linting 2019-04-04 22:24:21 +00:00
redsky17 994f79cfbc
Update nheko to export sessions using new format
(requires mtxclient updates as well).
2019-03-27 23:13:38 +00:00
Joseph Donofry 6f13b0df0d
Merge pull request #43 from vtronko/implicitconversion_fix
Get rid of implicit conversion in text input height calculation.  Thanks @vtronko
2019-03-03 18:48:46 -05:00
Vladyslav tronko c719e01f3d Don't let multiline text background overlap top border of text widget 2019-03-04 00:54:53 +02:00
Vladyslav Tronko d2a28072f6 Get rid of implicit conversion in text input height calculation 2019-03-03 20:34:57 +02:00
redsky17 8a2df06f3a
Fix linting issue 2019-02-25 03:10:02 +00:00
redsky17 75fb95855d
Nlohmann build updates 2019-02-24 20:05:11 +00:00
Andrew Johnson b5733b2737 Attempt to fix issue #19 by increasing the lmdb max_dbs setting. 2019-02-16 17:05:25 -08:00
redsky17 13663ad5f8 Improve color generation performance
Colors are generated asynchronously now and the TimelineItem is
updated when the color generation finishes.  This allows the UI
to stay responsive while new colors are being generated.
2019-02-08 01:58:00 +00:00
redsky17 bb345a9a9f Merge branch 'ui-enhancements'
Preparing for 0.6.3 release
2019-02-07 23:15:25 +00:00
Michele Guerini Rocco 933fd22e49
escape id when joining a room 2019-02-07 13:51:18 +01:00
redsky17 6d629f1c90 Add download button to ImageOverlay
When opening images in the full-screen overlay, there is now
a download button next to the close button.  This button utilizes
the same functionality as the right-click->save image button.
2019-01-30 18:01:36 -05:00
redsky17 f7255b7b49 Restore Emoji Picker, but remove forcing EmojiOne
Restored the emoji picker, but it now falls back to the system
instead of forcing Emoji One.  The allows users to user the
picker for convenience, but doesn't enforce the emoji style on them.
2019-01-26 21:02:22 +00:00
redsky17 df5d24c87f Revert "Remove built-in emoji picker"
This reverts commit 4b807229aa.
2019-01-26 18:17:08 +00:00
redsky17 faff23ed38 Fix lint issues in last commit 2019-01-26 18:11:30 +00:00
redsky17 6c31f5fe7a Add initial support for QtIndenticon
Add initial loading of qt jdenticon plugin:
https://github.com/redsky17/qt-jdenticon

Currently, the library's functionality has not been integrated
into the rest of nheko.  Next step is to add a configuration
item in the User Settings and use the plugin to generate
avatars for users without their own picture.  These avatars
should be cached in the Cache object.
2019-01-26 18:03:49 +00:00
redsky17 22a08ba6a4 Fix lint issue 2019-01-26 06:09:51 +00:00
redsky17 f869ff5ded Fix inconsistent user color updates. 2019-01-26 06:03:52 +00:00
redsky17 2ba51c821e Update user colors to use Cache vs Utils
User colors are now stored in cache.  This is consistent
with other similar variables.  I think there's a bug
right now where it doesn't properly refresh colors
for the TimeLineItem when the theme is changed.
2019-01-26 02:55:07 +00:00
redsky17 4185b8d121 Add unread notification color for user mentioned
When user is mentioned (via matrix 'highlight_count'), inactive
rooms will use a different color for the notification circle than
when only general unread messages exist.
2019-01-25 02:47:15 +00:00
redsky17 d70bc94f61 Fix lambda capture error 2019-01-24 04:54:35 +00:00
redsky17 237c7ad114 Author Color Fixes
Author color is now cached so that it will not be re-calculated
each time a new message is posted.  This cache gets cleared when
the theme is changed.

Additionally, the author color is now automatically refreshed
when the theme is changed, fixing the issue where you had to
change rooms before the colors would switch.
2019-01-20 04:43:48 +00:00
redsky17 b3f7c13e2f Update user id color generation
Update the author color generation.  Now, instead of generating
an entire hex string based on the user id, the user id instead
is used to generate a hue value.  After this hue value is created,
there is some logic to tweak first the lightness and then saturation
values to achieve a readable color (in contrast to the background).

This change makes it so that user colors will not vary as wildly
between the different themes.

The values still are not cached and still do not update
initially when the theme is changed.  Both of these things
will be resolved.
2019-01-20 00:16:31 +00:00
redsky17 98102f4f09 Fix UserSettings UI not showing saved prefs
Theme and Font Family settings will now correctly display the stored
settings when nheko is re-launched.  Previously, these combo boxes
would default to the first thing in the combo box, even if that
wasn't what the user selected.
2019-01-19 17:31:17 +00:00
redsky17 654b652db4 Add User Font Setting
User can now select a font from the installed fonts on their system

This font currently will only be applied when nheko is restarted
(similar to how font size and scaling currently work).  This will
be addressed in a future commit.  Additionally, the dropdown
does not correctly select the previously-chosen user font, and
instead defaults to the first font available on the system
(alphabetically).  This is similar to the issue with the 'Theme'
combo defaulting to 'Light' even when another theme is selected.
2019-01-19 16:20:41 +00:00
redsky17 50e382f554 Modified the code that generates user's colors so that it will
work regardless of the theme choices the user makes.  The code
now incorporates the contrast between the background color and the
color generated by the user_name when picking colors.  It currently
has two 'big' issues:
1. Colors are not cached.  I am planning on adding a QHash for this
a little later.  This should improve performance by not calculating
the color for the same users over and over and over again.
2. Theme changes do not trigger the colors to get refreshed.
Currently, you will have to switch to a different room and back
to get the colors to refresh.
2019-01-18 17:17:25 +00:00
redsky17 1882198e4b Make the author text slightly large.
Add author color generated based on user id.
2019-01-18 04:09:42 +00:00
redsky17 55883ec2de Remove the code that removed paragraph tags from markdown -> html.
This fixes #2, but reverts mujx#438.  I do not think mujx#438 was a
valid issue, as it complained about the display of valid HTML on riot,
which speaks more to how Riot styles things than about an issue in
nheko itself.
2019-01-18 00:59:31 +00:00
redsky17 996a4c9590 Fix clang-format linting issue 2019-01-16 18:18:57 +00:00
redsky17 bcabf2fb73 Update travis ci config to point to redsky17 config and try to fix lint
errors
2019-01-13 03:48:07 +00:00
redsky17 3fceaeb203 Add hover color for timestamp.
Update dark and system themes to provide
colors for the hover states for title, subtitle, and timestamp.
2019-01-12 22:03:25 +00:00
Joe Donofry ae91bab07d Tweak some of the colors in the CSS rules for nheko.
Add room list hover title/subtitle color change support.
2019-01-12 14:35:56 +00:00
Konstantinos Sideris 6a90ed574e Increase the height of the roomlist items 2018-10-10 22:02:59 +03:00
Konstantinos Sideris 184c8b28e9 Use a smaller font size for the timestamp 2018-10-07 16:32:46 +03:00
Konstantinos Sideris f272d9221e Use alignment instead of stretch 2018-10-07 14:18:44 +03:00
Konstantinos Sideris aa486a5c0c Adjustments for the minimized sidebar 2018-10-07 14:09:47 +03:00
Konstantinos Sideris 2295d681a4 Remove the bundled open sans font 2018-10-07 13:27:20 +03:00
Konstantinos Sideris 4b807229aa Remove built-in emoji picker 2018-10-07 13:13:14 +03:00
Konstantinos Sideris c2faaa4d39 Add the correct parent to scaleCombo 2018-10-07 12:58:38 +03:00
Konstantinos Sideris 4865f852d8 Remove room re-ordering option 2018-10-06 18:43:53 +03:00
Konstantinos Sideris 3fdfc9b69f Remove Scrollbar 2018-10-06 18:39:11 +03:00
Konstantinos Sideris 675f1be777 Adjust the height of the bottom widgets 2018-10-06 18:07:02 +03:00
Konstantinos Sideris 748c5898be Adjust the font sizes of the welcome page 2018-10-06 17:41:47 +03:00
Konstantinos Sideris 844443a324 Adjust the widget size of the room list items 2018-10-06 17:21:03 +03:00
Konstantinos Sideris 420937ab83 Derive widget sizing from the font size 2018-10-04 00:32:13 +03:00
Konstantinos Sideris be1478183e Remove some unnecessary calls 2018-10-02 13:16:44 +03:00
Konstantinos Sideris 3a57d1018e Add option to configure the font size
fixes #161
2018-10-01 17:56:46 +03:00
Konstantinos Sideris 4b1b062388 Enable debug logs 2018-09-30 14:33:54 +03:00
Konstantinos Sideris 8f89ad15f7 Change the minimum width for modals 2018-09-30 13:37:38 +03:00
Konstantinos Sideris 9038c950ae Remove pixel value from fonts 2018-09-30 13:24:36 +03:00
Konstantinos Sideris d1e08e0008 Remove obsolete font/size setting 2018-09-29 14:26:47 +03:00
Konstantinos Sideris 29f442a9f9 Remove pixel values from the text input widget 2018-09-29 14:19:22 +03:00
Konstantinos Sideris 758be07a5a Make the height of the bottom bar smaller 2018-09-29 14:05:59 +03:00
Victor Berger 18a98a7c1d Display tags as sorting items in the community panel (#401) 2018-09-28 12:40:51 +00:00
Konstantinos Sideris 59a1b6b47c Don't enable tray by default 2018-09-26 19:22:52 +03:00
Konstantinos Sideris bbf37bf633 Don't clear selection when a context menu is requested 2018-09-26 19:21:10 +03:00
Konstantinos Sideris c64a1bf759 Move TextLabel into its own file 2018-09-26 15:17:14 +03:00
Konstantinos Sideris 9bc7b6305e Lint 2018-09-26 12:06:30 +03:00
Konstantinos Sideris c9427c7f17 Clear text selection when focus is lost
fixes #409
2018-09-25 18:06:11 +03:00
Konstantinos Sideris 7a288cc2cb Add infinite scroll in member list
fixes #446
2018-09-25 15:43:48 +03:00
Konstantinos Sideris 39b4c83bb0 Don't clear the member list when the modal is hidden
fixes #447
2018-09-25 14:53:07 +03:00
Konstantinos Sideris adf2019c56 Use QPushButton on the preview modal 2018-09-25 14:41:47 +03:00
Konstantinos Sideris dec643e6ea v0.6.0 2018-09-21 16:44:45 +03:00
Konstantinos Sideris fc684f6571 Require login when the cache format changes (regression on #444) 2018-09-21 14:43:52 +03:00
Konstantinos Sideris b0e3a7c7fa Add close buttons to all dialogs 2018-09-21 13:56:39 +03:00
Konstantinos Sideris 2a2b52e07f Center dialogs around the main window 2018-09-21 11:30:02 +03:00
Konstantinos Sideris ce26f041ad Add method to center widgets & clean up unused headers 2018-09-21 10:55:24 +03:00
Konstantinos Sideris ecc346a6da Close dialogs on confirmation 2018-09-20 09:59:14 +03:00
Konstantinos Sideris d4ce7a9dda Use confirm as the default button 2018-09-20 08:52:31 +03:00
Konstantinos Sideris 1b7816f7ca macOS: Use the native emoji picker
fixes #79
2018-09-19 23:38:36 +03:00
Konstantinos Sideris 1716502eff Improvements on the system theme 2018-09-19 22:42:26 +03:00
Konstantinos Sideris 3e49afd6ba Fix compile warnings 2018-09-18 18:48:14 +03:00
Konstantinos Sideris 440237cdb9 Clean up unread rooms after initial sync 2018-09-16 11:41:53 +03:00
Konstantinos Sideris 1f3535bc43 Bump cache version due to incompatible changes 2018-09-16 11:19:53 +03:00
Konstantinos Sideris 9ad4aab657 Ignore sessions that cannot be parsed 2018-09-16 11:19:18 +03:00
Konstantinos Sideris a9ddc3b3d3 Implement import/export of megolm session keys (#358) 2018-09-15 23:52:14 +03:00
Konstantinos Sideris cf71a5858c Update mtxclient 2018-09-15 00:40:16 +03:00
Konstantinos Sideris 8767ea181d Mark unread rooms as such in the room list
fixes #313
2018-09-13 19:15:58 +03:00
Konstantinos Sideris 9f3de8679d Temporary fix to work with mx-reply tags 2018-09-13 16:10:45 +03:00
Konstantinos Sideris bf4d559523 Strip paragraph tags
fixes #438
2018-09-13 11:02:54 +03:00
Konstantinos Sideris e88cfa1b20 Use <em></em> for m.emote messages 2018-09-12 21:46:33 +03:00
Konstantinos Sideris 7a6816a9f6 Remove italics from m.notice messages 2018-09-12 20:59:27 +03:00
Konstantinos Sideris 9c06ba5d25 Open user profile on matrix.to links 2018-09-12 20:54:44 +03:00
Konstantinos Sideris e9ee29978d Add context menu option to show the raw message
fixes #437
2018-09-12 16:27:25 +03:00
Konstantinos Sideris bc38fcec6c Move some info logs to debug 2018-09-12 14:28:54 +03:00
Konstantinos Sideris dd73a4b278 Trim whitespace from text messages 2018-09-12 14:20:12 +03:00
Konstantinos Sideris a0a76e352b Enable html attributes 2018-09-12 13:40:42 +03:00
Konstantinos Sideris 4565f2cf00 Don't break the layout on empty text messages 2018-09-12 13:12:24 +03:00
Konstantinos Sideris 074608dec1 Switch to libcmark 2018-09-11 14:56:09 +03:00
Konstantinos Sideris 72333aec59 Enable Qt auto scaling
fixes #397
2018-09-08 17:10:42 +03:00
Konstantinos Sideris 667ee75d66 Show sidebar after initial sync
fixes #412
2018-09-08 15:50:35 +03:00
Konstantinos Sideris 5267e0262b Remove custom stylesheet for qmenu 2018-09-08 14:55:30 +03:00
Konstantinos Sideris 0588cb3dbf macOs: Add missing border on the TopBar 2018-09-08 14:16:51 +03:00
Konstantinos Sideris 19626dbb10 Small refactoring on the EditModal 2018-09-08 13:20:54 +03:00
Konstantinos Sideris 245a3735e5 Remove debug prints 2018-09-07 20:31:47 +03:00
Konstantinos Sideris 9e8f0b7409 Initial support for sending markdown formatted messages
fixes #283
2018-09-07 20:05:30 +03:00
Konstantinos Sideris a21db789e7 Fix double href links on username pills 2018-09-07 14:52:29 +03:00
Konstantinos Sideris 896fe069b6 Use proxy objects on lambdas instead of raw pointers
When the object is destroyed the connections will be removed
automatically by Qt.

fixes #433
2018-09-07 12:24:09 +03:00
Konstantinos Sideris a1af99becb Put back removed links 2018-09-06 22:41:02 +03:00
Konstantinos Sideris 8ad01f520a Add initial support for displaying formatted messages 2018-09-06 22:34:41 +03:00
Konstantinos Sideris 0c6a3b6282 Remove captcha dialog from the member list 2018-09-05 18:05:27 +03:00
Konstantinos Sideris 797a69fd90 Fallback to the login screen when the one-time keys cannot be uploaded 2018-09-05 16:57:26 +03:00
Konstantinos Sideris 4a30eb30b3 Enable colors in console logger 2018-09-04 13:17:21 +03:00
Konstantinos Sideris 990a3a97c7 Merge matrix-structs into the client lib 2018-09-01 13:35:10 +03:00
Konstantinos Sideris e9a8e51208 Guard against flickering for items added to the top of the timeline 2018-08-31 18:34:54 +03:00
Konstantinos Sideris 27fed83083 Retry initial sync on generic network errors (#422) 2018-08-31 16:25:27 +03:00
Konstantinos Sideris 28dda237c2 Don't block on empty from token 2018-08-31 14:56:55 +03:00
Konstantinos Sideris 641364c105 Handle some more edge cases in timeline 2018-08-31 10:47:27 +03:00
Konstantinos Sideris d608950bea Stop calling /messages if the prev_batch token is empty 2018-08-31 09:57:04 +03:00
Konstantinos Sideris e29fceaee4 Fix a use-after-free error during logout 2018-08-31 09:10:47 +03:00
Konstantinos Sideris b10e1bafc8 Add temp fix to work with servers that don't support e2ee endpoints
fixes #371
2018-08-30 20:37:24 +03:00
Konstantinos Sideris ee2ba93ec4 Only call /sync when retrying initial sync (#422) 2018-08-30 13:39:09 +03:00
Konstantinos Sideris 183975be1a Increase LMDB's map size (#413) 2018-08-29 16:47:28 +03:00
Konstantinos Sideris b7362298b0 Make lambda that updates avatar a class method 2018-08-29 16:15:31 +03:00
Konstantinos Sideris 56ee290b03 Add the ability to change the room avatar
fixes #418
2018-08-29 16:00:07 +03:00
Konstantinos Sideris db9c37d336 Call adjustSize before showing the timeline widget 2018-08-28 00:19:39 +03:00
Konstantinos Sideris 7e16730692 Remove unnecessary height setting for timeline messages
This will remove some minor flickering (hopefully for good)
2018-08-27 21:32:24 +03:00
Konstantinos Sideris 9f43ff876a Show the room id in the room settings modal
fixes #416
2018-08-26 14:56:35 +03:00
Konstantinos Sideris 345dca3544 Add method to delete old messages periodically
fixes #413
2018-08-25 21:08:43 +03:00
Rudi Floren c8a59f2d6e Add device ID and device fingerprint to settings page like in Riot. (#407) 2018-08-21 06:22:51 +00:00
Konstantinos Sideris 6d1f2ea9b3 Remove pixel ratio from image scaling 2018-08-20 11:58:13 +03:00
Konstantinos Sideris 04c888c44c Fix crash on logout 2018-08-13 09:35:55 +03:00
Konstantinos Sideris b06203a34b Install the bundled spdlog 2018-08-12 10:49:51 +03:00
Colin Lord bcd92c0604 Enable compilation on FreeBSD (#403) 2018-08-12 09:33:36 +03:00
Konstantinos Sideris cebd8cbc19 Add option to disable desktop notifications
fixes #388
2018-08-11 18:26:17 +03:00
Konstantinos Sideris 05547086fb Increase the minimum modal size 2018-08-11 17:55:44 +03:00
Konstantinos Sideris aa2f6ce77d Simplify dialog creation 2018-08-11 13:50:56 +03:00
Konstantinos Sideris a339f5062f Add solid background in TypingDisplay 2018-08-10 10:58:46 +03:00
Konstantinos Sideris 040e29dfb9 Add bottom border line on Linux 2018-08-09 18:45:18 +03:00
Konstantinos Sideris d4c3dac28f Remove the reserved space gap for the typing notifications 2018-08-09 18:20:17 +03:00
Konstantinos Sideris aec5587947 Allow user to configure join rules for a room 2018-08-09 16:38:11 +03:00
Konstantinos Sideris 509d3eb8b4 Add missing update() on typing display 2018-08-09 13:39:39 +03:00
Konstantinos Sideris f955ec762c Use archives instead of repos to fetch dependencies 2018-08-08 14:15:14 +03:00
Konstantinos Sideris 43a4676282 Remove hover event from emoji picker
fixes #398
2018-08-08 13:15:19 +03:00
Konstantinos Sideris 3fb57ac049 Add tooltips for the message indicators (#377) 2018-08-08 12:57:50 +03:00
Konstantinos Sideris 8d3ef470f9 Remove hardcoded colors from the typing display 2018-08-08 12:51:40 +03:00
Konstantinos Sideris df42fdc80f Remove unwanted whitespace from the user settings menu 2018-08-01 21:26:34 +03:00
Konstantinos Sideris b5b5faa5ec Consider the scale ratio when scaling down images
fixes #393
2018-08-01 21:10:03 +03:00
Konstantinos Sideris 06b30b3cca Use double instead of int when scaling pixmaps (#393) 2018-07-30 12:35:15 +03:00
Konstantinos Sideris 6ffb747421 Add tab-completion for usernames
fixes #394
2018-07-29 21:58:18 +03:00
Konstantinos Sideris f8a1ed84a8 Fix background color on the room list widget 2018-07-26 12:12:00 +03:00
Konstantinos Sideris 899249a485 Add missing tooltips on buttons
fixes #249
2018-07-25 23:28:37 +03:00
Konstantinos Sideris a845ccb8d7 Use repaint instead of update on the loading animation 2018-07-25 23:10:45 +03:00
Konstantinos Sideris 1f47a6af3a Improve the style of snackbar a bit 2018-07-25 23:07:56 +03:00
Konstantinos Sideris 8386dd73ce Enable scrollbar on the room list for macOS (#174) 2018-07-25 18:59:33 +03:00
Konstantinos Sideris 069f0a1fbd Use native scrollbar in the timeline 2018-07-25 18:48:11 +03:00
Konstantinos Sideris bfdbd49e3e Align timeline widgets to the bottom 2018-07-25 16:46:57 +03:00
Konstantinos Sideris 59a42183bc Fix issue with missing communities due to an unregistered metatype 2018-07-25 16:34:54 +03:00
Konstantinos Sideris 35067088f9 Disable paint updates when removing the room filter 2018-07-24 21:43:51 +03:00
Konstantinos Sideris 6583686a7c Remove spacer & set sizePolicy on the timeline view & widgets
This was causing some flickering when many messages were added.
Mostly visible on macOS.
2018-07-23 21:54:13 +03:00
Konstantinos Sideris 6b42e3b202 Simplify the message shown when another app instance is detected 2018-07-22 20:26:50 +03:00
Konstantinos Sideris 98548b1b8b Minor modal adjustments 2018-07-22 20:01:12 +03:00
Konstantinos Sideris 85e93a88a6 Add option to specify the scale factor
fixes #357
fixes #335
fixes #230
2018-07-22 19:48:58 +03:00
Konstantinos Sideris 18695d636d Add input field to specify the device name on login 2018-07-22 18:41:15 +03:00
Konstantinos Sideris 3d2e29bfa0 Remove pixel values from modals, use pointSize instead 2018-07-22 18:03:12 +03:00
Konstantinos Sideris 24bad93f6b Add option to ignore key requests altogether 2018-07-22 16:36:25 +03:00
Konstantinos Sideris 0247b47553 Refactor the room settings menu to look like the user profile 2018-07-22 15:41:06 +03:00
Konstantinos Sideris 5dfd26abc5 Reject key requests for users that are not members of the room 2018-07-22 14:11:28 +03:00
Konstantinos Sideris 73e3161c88 Disable paint updates while applying room filtering (#380) 2018-07-21 14:57:56 +03:00
Konstantinos Sideris 6c65213c83 Reuse the profile modal & adjust its spacing relative to the font size 2018-07-21 14:33:35 +03:00
Konstantinos Sideris 54c7eb374a Lower the complexity of the group filtering algorithm (#380)
The old algorithm during filtering will check every room
if it's part of the group. O(N*G)

The room ids for a group are now stored in a map for faster lookup
so the search can be completed in a single pass. O(N)
2018-07-21 13:35:36 +03:00
Konstantinos Sideris 9d718fccf4 Clear timeline widgets when they exceed a certain limit (#158)
That's a fix to deal with long running sessions which will end
up taking more & more memory given enough time.
2018-07-21 12:09:23 +03:00
Konstantinos Sideris e8cb2cee0c Use a smaller icon size in the sidebar 2018-07-20 17:44:09 +03:00
Konstantinos Sideris 83008f44e4 Show device list in user profile & add option to create 1-1 chat 2018-07-20 16:15:50 +03:00
Konstantinos Sideris d7e5171bfa Create user profile modal 2018-07-20 12:02:35 +03:00
Konstantinos Sideris 5540fc0737 Add user avatar after the 'encryption is enabled' message
fixes #378
2018-07-19 18:46:36 +03:00
Konstantinos Sideris 00f99d9ae5 Fix variable shadowing on clang 2018-07-18 17:11:02 +03:00
Konstantinos Sideris e4dedbcaba Mark own read messages with a double checkmark (#377) 2018-07-17 23:50:18 +03:00
Konstantinos Sideris 0e814da91c Move all files under src/ 2018-07-17 16:37:25 +03:00
Benedikt Heine c942a4b9fc Explicitly set no timeout for notifications
The notification spec handles -1 and 0 as special values:
-1 -> representation for "undef"
 0 -> infinitely
 values above 0 represent the timeout in ms.

The notification messages should disappear again and with 0, this insn't
the case. Setting it to -1 lets the notification manager decide the
timeout and displays the notification like all others.
2018-07-16 12:13:05 +02:00
Benedikt Heine a7cf30005b Update image_data hint to current notification spec
The current notification spec says image-data should get used instead of
image_data.
2018-07-16 12:12:07 +02:00
Konstantinos Sideris 21185a44e7 Properly reset the autocomplete anchor when the popup closes
fixes #305
2018-07-15 21:26:48 +03:00
Konstantinos Sideris fde066e236 Use MainWindow instead of QApplication::activeWindow to reference the main window
The latter will not always return a valid pointer.

fixes #363
2018-07-15 20:58:10 +03:00
Konstantinos Sideris 31d09dbd68 De-duplicate the m.room.encryption event 2018-07-15 20:32:22 +03:00
Konstantinos Sideris a9f02128a2 Use the http link for video messages
Add method to convert matrix content URIs to http links
2018-07-15 20:05:31 +03:00
Konstantinos Sideris 33490eddab Remove the v2 namespace from the http client 2018-07-15 19:09:08 +03:00
Konstantinos Sideris e6b45263bc User reverse iterator instead of while loop 2018-07-15 18:58:09 +03:00
Konstantinos Sideris 4059f17e15 Add the -v / --version option, which displays the version string of the application. 2018-07-15 14:53:18 +03:00
Konstantinos Sideris c4613b210e Fix Windows build 2018-07-14 16:27:51 +03:00
Konstantinos Sideris 73dbd3c8dd Re-enable groups 2018-07-14 12:08:16 +03:00
Konstantinos Sideris 363e3735f1 Allow close events from the session manager (#353) 2018-07-11 20:56:44 +03:00
Max Sandholm 80ebe3f29d Working D-Bus desktop notifications (#361)
* Working D-Bus desktop notifications

* Remove return type on constructor

* Fix the Windows placeholder class

* Fix wrong variable name

* Fix windows and macOS versions of notificationsmanager
2018-07-11 17:33:02 +03:00
Konstantinos Sideris e7f30b57e8 Use QSharedPointer::data to be compatible with Qt < 5.11 2018-07-11 16:49:09 +03:00
Konstantinos Sideris 6f07ab433e Send image dimensions in m.image event
fixes #215
2018-07-10 23:31:51 +03:00
Konstantinos Sideris 1312c139cc Don't pre-load messages from caches
Requires backfilling which is not implemented.

fixes #365
2018-07-09 12:17:22 +03:00
Konstantinos Sideris 172d111d1c Add -Wshadow 2018-07-08 22:10:40 +03:00
Konstantinos Sideris 6d474b77f1 Fix variable shadowing that caused the key response to be null 2018-07-08 21:24:44 +03:00
Konstantinos Sideris 278eccc040 Add context menu action to request encryption keys 2018-07-07 23:59:23 +03:00
Konstantinos Sideris 9a0e18dea7 Add a timeline message when encryption is enabled 2018-07-07 13:39:53 +03:00
Konstantinos Sideris 67458dd2f8 Mark all decrypted messages with a padlock
fixes #351
2018-07-07 12:35:29 +03:00
Konstantinos Sideris 3bc8d791fb Don't download dependencies during build
fixes #346
2018-07-04 01:38:54 +03:00
Konstantinos Sideris 6c5309d9eb Fix regressions regarding UI resizing
The room list would be hidden only through window resizing.
2018-07-04 00:05:05 +03:00
Konstantinos Sideris 4073d61045 Add shortcuts for chat-only & Room List-only views
Ctrl-O -> Chat
Ctrl-L -> Room list
2018-07-01 22:57:14 +03:00
Konstantinos Sideris ccc6cd8dab Mark encrypted messages with a lock icon 2018-07-01 19:40:53 +03:00
Konstantinos Sideris 95ce2ef920 Implement dekstop notifications on Windows (#290) 2018-07-01 00:23:16 +03:00
Konstantinos Sideris 5b5d35fd1f Add basic support for replies (#292) 2018-06-30 15:13:15 +03:00
Konstantinos Sideris d56446ce97 Allow arbitrary resizing of the main window & restore sidebar's size
fixes #160
fixes #163
fixes #187
fixes #127
2018-06-29 14:28:48 +03:00
Konstantinos Sideris 4344b6964f Save timeline messages in cache for faster startup times 2018-06-28 16:17:39 +03:00
Konstantinos Sideris 1d6746e4c9 Upgrade matrix-structs & mtxclient 2018-06-28 16:17:39 +03:00
Konstantinos Sideris 9802ea8809 Send one claim request per user that includes all devices
Add missing megolm algorithm field that was causing
the "unknown algorithm" error.
2018-06-25 17:19:52 +03:00
Konstantinos Sideris cb21433dc8 Allow copying the version info in the settings page 2018-06-23 01:46:18 +03:00
Konstantinos Sideris a72eca339f Immediately shutdown the http client on exit 2018-06-22 19:47:55 +03:00
Konstantinos Sideris 74396e9aba Verify signature of identity keys before sharing the megolm session
Ignore devices that fail the verification.
2018-06-20 00:38:34 +03:00
Konstantinos Sideris 961c880d55 Handle olm & lmdb exceptions during message decryption
fixes #345
2018-06-19 22:53:22 +03:00
Konstantinos Sideris 7ecabcd614 Mark encrypted rooms when processing room state 2018-06-18 18:36:19 +03:00
Konstantinos Sideris 604cdcec8a Save the olm account after we create new one-time keys
Otherwise after a restart the old account will be loaded and we
won't be able to decrypt messages from devices using the new one-time keys.

Also new one-time key upload requests will fail due to conflicts with
the existing keys with the same keyid.
2018-06-18 12:56:47 +03:00
Konstantinos Sideris 4514d13948 Improve logging a bit 2018-06-18 12:29:24 +03:00
Konstantinos Sideris 197b2dac74 Fix regressions regarding invites & slowness during shutdown 2018-06-17 18:44:04 +03:00
Konstantinos Sideris d081fe9b9e Setup BinTray 2018-06-17 16:53:14 +03:00
Konstantinos Sideris 66249ed126 Correctly mark received messages whose response came after /sync 2018-06-17 02:29:19 +03:00
Konstantinos Sideris c0d32ef319 Update CI instructions 2018-06-17 00:23:49 +03:00
Konstantinos Sideris 24e0285210 Don't try to send megolm session keys to devices with no one-time keys 2018-06-15 16:45:39 +03:00
Konstantinos Sideris 9102a141f3 Handle OLM_MESSAGE type of messages properly 2018-06-15 01:35:31 +03:00
Konstantinos Sideris 7fc010fc4f Fix CI errors on macOS & Windows
- Run the linter
- Explicitly use cmake for installing olm
2018-06-14 09:36:41 +03:00
Konstantinos Sideris 8e9d210a2a Rename the log namespace to avoid symbol clash with the math function
- Patch the olm repo with a CMakeLists.txt file
2018-06-14 02:28:35 +03:00
Konstantinos Sideris 5d47cc3940 Add support for sending encrypted messages 2018-06-13 12:28:00 +03:00
Konstantinos Sideris e5dd64c63a Add method to convert PendingMessage's to event types
Add more logging during message sending
2018-06-12 22:35:10 +03:00
Konstantinos Sideris a97528b432 Fix bug where cache was initialized twice in a row 2018-06-12 20:36:16 +03:00
Konstantinos Sideris 36cb62748b Add menu option to enable encryption in a private room 2018-06-12 09:45:26 +03:00
Konstantinos Sideris 626c680911 Add support for displaying decrypted messages 2018-06-10 20:03:45 +03:00
Konstantinos Sideris b89257a34b Migrate to mtxclient for the http calls 2018-06-09 16:03:14 +03:00
Konstantinos Sideris 0a9d95dfc9 Include mtxclient in the build 2018-06-04 13:54:51 +03:00
Konstantinos Sideris 0fe81ecd4a Show Matrix ID tooltip when hovering over display name
fixes #212
2018-05-26 22:44:49 +03:00
Konstantinos Sideris b371c15b5f Properly resize Audio & File widgets
Remove empty space between username & timeline widgets
2018-05-26 17:05:57 +03:00
Konstantinos Sideris 90595beb16 Set fixed height for the DateSeparator & TextLabel 2018-05-26 10:34:34 +03:00
Konstantinos Sideris bcba977f4c Fix resize slowness on the TopBar 2018-05-25 16:13:38 +03:00
Konstantinos Sideris 5538a04690 Make the number of unread messages fit in the bubble
fixes #330
2018-05-25 10:01:53 +03:00
Konstantinos Sideris 3cf7ab9f04 Fix line break issue on timeline with long words
fixes #193
2018-05-23 16:33:30 +03:00
Konstantinos Sideris 9eb1c496a0 Retrieve the current room state from cache when the edit modal opens 2018-05-18 21:43:58 +03:00
Konstantinos Sideris d88dee3185 Refresh the room info on the top bar after sync 2018-05-18 21:37:08 +03:00
Konstantinos Sideris 4ab42c68f4 Fix crash on unfinished animation & center the edit modal 2018-05-18 21:27:44 +03:00
Konstantinos Sideris 791a9d0a4d Hide the edit menu when the user doesn't have enough power 2018-05-16 23:30:50 +03:00
Konstantinos Sideris 340c9ab9de Add menu to modify the name & topic of the room
fixes #235
2018-05-16 20:41:15 +03:00
twahm 4bd43780d9 Add read support for room access options (#324)
- Join rules
- Guest access
2018-05-13 01:31:58 +03:00
Konstantinos Sideris 18061f0600 Use the correct avatar size for HiDPI displays 2018-05-11 16:00:14 +03:00
Konstantinos Sideris 05585ff8cf Make explicit that MatrixClient & Cache are unique pointers 2018-05-11 13:41:46 +03:00
Konstantinos Sideris 701aa93b0a Add scrollbar in the settings menu 2018-05-09 01:00:10 +03:00
Anton Karmanov 17896b1c82 Start in tray (#319) 2018-05-08 23:53:40 +03:00
Konstantinos Sideris 7d809be79f Hide SnackBar initially & guard against access of an empty list 2018-05-08 23:38:57 +03:00
Konstantinos Sideris ebed87ea57 Don't use shared pointers for cache 2018-05-08 20:30:09 +03:00
Konstantinos Sideris 4c4ea557b3 Replace shared pointers of MatrixClient with a single instance 2018-05-08 18:43:56 +03:00
Konstantinos Sideris 5aff3e4309 Don't send notification for the room that is currently open 2018-05-07 12:00:49 +03:00
Konstantinos Sideris 506cf68072 Implement desktop notification for mac 2018-05-05 22:40:24 +03:00
Konstantinos Sideris ed9501023a Add support for retrieving the notification events (#33) 2018-05-05 16:38:41 +03:00
Konstantinos Sideris 156e1e62a6 Fetch user avatars while browsing the member list 2018-05-04 17:59:29 +03:00
Konstantinos Sideris 8dd21b1dae Remove the extra top margin from timeline widgets 2018-05-04 15:47:04 +03:00
Konstantinos Sideris 7dab863738 Remove flickering by updating auto-complete menu items in-place
Instead of deleting the current items and creating new ones.
2018-05-03 17:29:02 +03:00
Konstantinos Sideris d6ac72ab3f Default to the first item in room selection menu
- Add backwards navigation with backtab

fixes #316
2018-05-03 15:19:28 +03:00
Konstantinos Sideris 916c0d48af Move access token to header 2018-05-02 16:00:37 +03:00
Konstantinos Sideris 7f69c71814 Handle invalid access token 2018-05-02 15:30:08 +03:00
Konstantinos Sideris 23accc50d6 Show user avatar for messages on different day or time gap > 15 mins
fixes #278
2018-05-01 23:32:11 +03:00
Konstantinos Sideris 763330fd3c Add member list 2018-05-01 19:35:28 +03:00
Konstantinos Sideris 3097037c3d Add prototype room settings menu 2018-04-30 21:41:47 +03:00
Konstantinos Sideris 21c68c5824 Show room tooltips when the sidebar is collapsed 2018-04-30 09:27:12 +03:00
Konstantinos Sideris 62d54146a7 More consistent spacing between messages 2018-04-29 20:39:22 +03:00
Konstantinos Sideris 95120c602b Refactor utils::getMessageDescription 2018-04-29 15:42:40 +03:00
Konstantinos Sideris 7621dc0cb0 Fix UI inconsistencies between room list & communities
fixes #204
fixes #255
2018-04-28 15:27:12 +03:00
Konstantinos Sideris bee9278a1a Remove old/unused code 2018-04-28 13:16:37 +03:00
Konstantinos Sideris 3f80725c33 Add support for displaying m.sticker events
fixes #291
2018-04-27 22:15:44 +03:00
Konstantinos Sideris c971602b2d Add remove_if for maps 2018-04-27 18:19:43 +03:00
Konstantinos Sideris 2c6192d08f Fix clicking on room list suggestions 2018-04-27 14:04:13 +03:00
Konstantinos Sideris b72e48cbab Improve room searching
fixes #257
2018-04-27 01:57:46 +03:00
Konstantinos Sideris 31f5fbf891 Improve the date separator widget 2018-04-25 15:38:25 +03:00
Konstantinos Sideris b655a503a7 Fix signal redefinition warning 2018-04-24 23:57:49 +03:00
Konstantinos Sideris 4fd8eccece Adjust completion menu to fit its contents 2018-04-24 16:03:50 +03:00
Konstantinos Sideris 649d73a7bd Clear typing notifications when the user list is empty
fixes #304
2018-04-24 14:50:47 +03:00
Konstantinos Sideris 0028fdfe6c Remove map from room_id to QPixmap from ChatPage
The avatars are loaded from cache
2018-04-24 14:13:05 +03:00
Konstantinos Sideris 4f6ffb6e73 Fix CI errors 2018-04-22 15:37:23 +03:00
Konstantinos Sideris 1642f3cf40 Update invites in the UI after sync 2018-04-22 14:19:05 +03:00
Konstantinos Sideris c0e355f485 Properly clean stale invites 2018-04-22 12:26:41 +03:00
Konstantinos Sideris 6d0bc0c05e Strip whitespace from room names for QuickSwitcher 2018-04-22 11:27:00 +03:00
Konstantinos Sideris 7a16e05b14 Initialize views before room list 2018-04-22 10:54:52 +03:00
Konstantinos Sideris 29bd8b71d1 Implement media cache 2018-04-21 21:18:57 +03:00
Konstantinos Sideris 54091cf403 Bump cache format version 2018-04-21 17:27:38 +03:00
Konstantinos Sideris 9d825b07ca Remove dead code 2018-04-21 17:27:06 +03:00
Konstantinos Sideris 74ff905582 Clean up Top Bar 2018-04-21 17:21:44 +03:00
Konstantinos Sideris 4a2f1af090 Save read receipts 2018-04-21 17:14:16 +03:00
Konstantinos Sideris 2f00fc51bf Cache refactoring 2018-04-21 16:35:03 +03:00
Konstantinos Sideris ca66940ec3 Popup improvements
- ESC closes the popup.
- Up/Down arrows for navigation.
- BackTab for backwards navigation.

fixes #301
fixes #302
2018-04-14 14:12:36 +03:00
christarazi 0b3029b3c4 Implement pressing tab to navigate auto completion (#294)
Fixes #287

* Fix pop-up not showing when less than max 

* Select suggestion by pressing Enter
2018-04-10 11:47:23 +03:00
Konstantinos Sideris 5125433552 Hide emoji panel if it's not under the mouse cursor
fixes #254
fixes #246
2018-04-08 15:49:53 +03:00
Konstantinos Sideris 8dc17ccecb Bump version 2018-04-03 15:17:34 +03:00
Konstantinos Sideris 33a8628059 Update the room list after a redacted event has been removed
fixes #286
2018-04-03 10:24:35 +03:00
Konstantinos Sideris 0a09ce0f75 Update first & last sender after message deletion
fixes #282
2018-03-27 21:07:39 +03:00
Konstantinos Sideris 284d200361 Fix invite button colors on the system theme
fixes #248
2018-03-27 20:21:14 +03:00
Konstantinos Sideris f4675165ea Add environment variable to allow insecure connections (self-signed certs)
NHEKO_ALLOW_INSECURE_CONNECTIONS=1 ./nheko

fixes #260
2018-03-27 10:38:00 +03:00
Konstantinos Sideris ed0b345e76 Pin invites to the top of the room list
fixes #252
2018-03-26 22:02:53 +03:00
Konstantinos Sideris 15931fc322 Track invites so they can be removed outside of nheko
fixes #213
2018-03-26 21:39:00 +03:00
Konstantinos Sideris f9fd03b958 Simplify variant usage 2018-03-26 20:41:16 +03:00
Konstantinos Sideris f6f46119a6 Fix CI errors 2018-03-25 23:05:44 +03:00
Konstantinos Sideris f02d3ee606 Replace std::thread with QtConcurrent 2018-03-25 21:50:45 +03:00
Konstantinos Sideris 72d5d6d286 Show avatars in the completion popup 2018-03-25 15:59:47 +03:00
Konstantinos Sideris 553a97c8bb Add basic support for username auto-completion
fixes #40
2018-03-24 23:16:15 +02:00
Konstantinos Sideris f77a103209 Add version info in the settings menu
fixes #239
2018-03-22 16:20:22 +02:00
Konstantinos Sideris 64a6771dc8 Fix text color on room switcher
fixes #245
2018-03-22 09:16:17 +02:00
Konstantinos Sideris 480de2d30b Adjust unread msg bubble 2018-03-20 21:23:01 +02:00
Hawkheart 42733eeb86 TimelineView: remove unneeded date separators when deleting a redacted message (#279)
fixes #276
2018-03-20 08:59:00 +02:00
Konstantinos Sideris d2d65b6662 More stylistic changes & dark theme tweaks 2018-03-19 20:26:14 +02:00
Konstantinos Sideris cef385e1e4 Use the full with of the roomlist for the last message 2018-03-19 18:10:48 +02:00
Konstantinos Sideris bac1f46127 Dark theme revisited 2018-03-18 23:38:04 +02:00
Konstantinos Sideris 48ee36f6b2 Add border in community list & minor refactorings (#204) 2018-03-18 17:38:57 +02:00
Konstantinos Sideris b70e09c7ec Add border line above the text input 2018-03-18 17:08:13 +02:00
Konstantinos Sideris 7253dc2c54 roomlist: Put the message timestamp on the top 2018-03-18 15:54:53 +02:00
Konstantinos Sideris fef7cd5b83 Don't count m.room.member or m.room.reaction events as viewable 2018-03-18 13:29:21 +02:00
Konstantinos Sideris 81d3bd8ce6 Remove redacted events from other users (#171) 2018-03-18 12:47:35 +02:00
Konstantinos Sideris 49270d10b4 Update matrix-structs library 2018-03-18 11:05:39 +02:00
Konstantinos Sideris a0ae6cf5d5 Add ability to redact messages 2018-03-17 21:23:46 +02:00
Konstantinos Sideris 2fe0dbb38c Fix CI & adjust snackbar animation 2018-03-17 11:38:06 +02:00
Konstantinos Sideris 4a6becacca Add fancy snackbar animation 2018-03-16 17:56:45 +02:00
Konstantinos Sideris 343acaf434 Remove opacity animation from the scrollbar
fixes #270
2018-03-16 17:29:21 +02:00
Konstantinos Sideris 511c58d608 Add context menu option to save images
fixes #265
2018-03-14 21:31:09 +02:00
Konstantinos Sideris 1b5e18cb1a Fix CI builds 2018-03-13 08:53:32 +02:00
Konstantinos Sideris 4659d0efc2 Implement user registration with reCAPTCHA
fixes #264
2018-03-12 22:23:26 +02:00
Konstantinos Sideris 39a8150fae Update room name & avatar on new rooms
fixes #253
2018-03-12 00:15:06 +02:00
Konstantinos Sideris d6b61fbb14 Add context menu option to mark events individually as read
fixes #261
2018-03-11 17:56:40 +02:00
Konstantinos Sideris 290de548bb Remove unused variables 2018-03-10 23:31:01 +02:00
Konstantinos Sideris 39abf163b8 Crete a proxy for media to uniquely match signal to the caller 2018-03-07 21:23:57 +02:00
Konstantinos Sideris ea22bdce18 Add a unique id for locally uploaded images
The event_id will be an empty string because we haven't received yet
2018-03-07 20:42:32 +02:00
Konstantinos Sideris af02b4f4a8 Show messages in the RoomList after initial sync 2018-03-04 15:39:41 +02:00
Konstantinos Sideris fb5719f184 Don't handle password when the matrix id is entered 2018-03-04 15:15:52 +02:00
Konstantinos Sideris 0f62cba498 Retry initial sync only on specific errors
fixes #233
fixes #89
2018-03-04 14:49:15 +02:00
Konstantinos Sideris 7fc33a71fd Bump version 2018-03-04 14:08:46 +02:00
Konstantinos Sideris b15a04b00a Don't open room switcher when another dialog is open
fixes #251
2018-03-04 13:40:30 +02:00
Stuart Mumford 47c31b9a18 Retry initial sync forever (#234) 2018-03-04 12:35:14 +02:00
Konstantinos Sideris 7f7f3a805b Remove dead code & small refactorings using the std library 2018-03-03 22:08:56 +02:00
Konstantinos Sideris 735d508a29 Handle empty matrix ID (regression from 9de1ec1)
fixes #259
2018-03-01 09:31:08 +02:00
Konstantinos Sideris f6c279f6f2 Propagate errors during /login & /versions 2018-02-28 22:07:53 +02:00
Konstantinos Sideris 9de1ec1b7b Fix crash when inviting users 2018-02-28 21:14:41 +02:00
Konstantinos Sideris 12a96aae6d Add some missing references 2018-02-28 12:12:07 +02:00
Konstantinos Sideris c75a136973 Enable room switcher only in the chat view (#251) 2018-02-26 13:17:04 +02:00
Konstantinos Sideris f525b7e6a9 Replace login request with the one from matrix-structs 2018-02-23 22:27:59 +02:00
Konstantinos Sideris fb850787d7 Relax matrix identifier parsing
fixes #241
2018-02-23 22:06:35 +02:00
Konstantinos Sideris 020f153f1f Fix crash when trying to use automatically deleted ImageOverlay dialog 2018-02-20 22:08:16 +02:00
Konstantinos Sideris f95998a64b Be explicit about the captured parameters in lambdas 2018-02-20 17:09:11 +02:00
Konstantinos Sideris 127c52e39a Scale down the preview image to fit in the application window
On macOS the modal has some extra space around the main content
that might make it unusable with a big enough image.
2018-02-19 23:33:11 +02:00
Konstantinos Sideris 1764bacd4b Move scaleImage() in Utils 2018-02-19 23:32:37 +02:00
Konstantinos Sideris 8b139c32a3 Minor adjustments 2018-02-19 22:09:21 +02:00
Konstantinos Sideris a8e17b9c91 Notify the user on upload failures 2018-02-19 00:17:54 +02:00
christarazi cd9d1a2ec6 Support audio, video, generic file for pasting (#220)
* Refactor widget items to use same interface

* Support audio, video, generic file for pasting

* Add utils function for human readable file sizes

* Set correct MIME type for media messages

This change also determines the size of the upload once from the
ContentLengthHeader, rather than seeking the QIODevice and asking for
its size. This prevents any future trouble in case the QIODevice is
sequential (cannot be seeked). The MIME type is also determined at
upload once, rather than using the QIODevice and the underlying data
inside.

* Allow for file urls to be used as fall-back

This fixes an issue on macOS which uses `text/uri-list` for copying
files to the clipboard.

fixes #228
2018-02-18 22:52:31 +02:00
Konstantinos Sideris c8bfb02211 Show loading indicator while waiting for /login & /logout
fixes #208
2018-02-18 22:22:26 +02:00
Konstantinos Sideris 7e2f835eec Properly detect the start of the timeline
We can't rely solely on the number of the returned messages
because it could be zero if all the event types are unknown.

fixes #168
2018-02-17 19:29:53 +02:00
Konstantinos Sideris fdd5051dcf Remove QPropertyAnimation from modals to work around a regression on Qt 5.10.1 (#87) 2018-02-17 18:43:40 +02:00
Konstantinos Sideris 59e4148a7c Fix transparency issue on custom dialogs
fixes #87
2018-02-17 14:04:46 +02:00
Konstantinos Sideris 8d867f418d Hide emoji picker when the app loses focus
fixes #184
fixes #209
2018-02-16 19:02:15 +02:00
Konstantinos Sideris 86280098b4 Implement server-side notification count 2018-02-15 21:58:57 +02:00
Konstantinos Sideris 6d08e67abd Simplify variant access with std::visit 2018-02-11 19:30:22 +02:00
William Pitcock 0be787f1e4 RoomList: do not blindly dereference RoomState (#232)
This can happen when a new room is being created from a different client and thus is created
with no known state to the local client.
2018-02-11 14:39:06 +02:00
Konstantinos Sideris ba8faa357f Remove empty destructors 2018-02-10 16:29:09 +02:00
Konstantinos Sideris 26f221ec23 Move LeaveRoom dialog to MainWindow (#87) 2018-02-10 16:05:31 +02:00
Konstantinos Sideris ddcc0f7f60 Generate a date separator before local messages 2018-02-10 01:09:30 +02:00
Konstantinos Sideris da6b816228 Remove tone emoji 2018-02-09 12:20:09 +02:00
Konstantinos Sideris b60554b8fd Add a timeout timer for initial sync (#223, #222)
Show a better message on the login screen after an initial sync failure.
2018-02-08 19:07:58 +02:00
Chris Tarazi 31eb0a9c88
Create new font for checkmark 2018-02-07 21:32:22 -08:00
Chris Tarazi 2dcc01633e
Apply fixed width for checkmark for all messages 2018-02-07 21:32:21 -08:00
Chris Tarazi a15079c68f
Fix #217: create space for checkmark beforehand 2018-02-07 21:32:20 -08:00
Konstantinos Sideris 43ba4d5ed5 Handle case with no available rooms
fixes #181
2018-02-02 10:51:07 -07:00
Konstantinos Sideris 96e99710fc Second attempt to fix failback text size for ImageItem 2018-01-31 09:27:34 -07:00
Konstantinos Sideris 117a739bc4 Add enough space for the failback text in ImageItem 2018-01-30 15:30:25 -07:00
Konstantinos Sideris 07a4e38ed8 Increase pagination retry timeout 2018-01-30 13:40:48 -07:00
Konstantinos Sideris b1f232bf86 Render messages received by `/messages` on demand 2018-01-30 12:56:01 -07:00
Konstantinos Sideris 992332adf7 Update user avatars in place 2018-01-30 11:39:06 -07:00
Konstantinos Sideris 597f829c57 Remove '#' from the room avatars 2018-01-25 18:10:05 +02:00
Konstantinos Sideris 67418e11b1 Add missing processEvents call 2018-01-25 17:18:37 +02:00
Konstantinos Sideris 2cf3161bff Call processEvents while rendering new events 2018-01-25 16:49:31 +02:00
Konstantinos Sideris 0e91dae922 Erase items using the key 2018-01-25 14:34:15 +02:00
Konstantinos Sideris 936e215aed Resize text input vertically to fit the contents 2018-01-25 07:57:19 +02:00
Konstantinos Sideris 1fad9398fc Use more stl containers & minor refactorings 2018-01-24 20:46:37 +02:00
Konstantinos Sideris 9eedcd700a Remove trailing whitespace from text messages
fixes #216
2018-01-23 18:14:13 +02:00
Konstantinos Sideris 2274642f12 Show the scroll-down button when showing the timeline 2018-01-23 17:34:57 +02:00
Konstantinos Sideris 48dabdfdc7 Don't dismiss the loading overlay by clicking 2018-01-22 16:47:08 +02:00
Konstantinos Sideris 72cba5d9eb Disable minimize to tray except for the ChatPage 2018-01-22 16:33:47 +02:00
Konstantinos Sideris 4098cf6780 Fix ci 2018-01-22 14:52:54 +02:00
Konstantinos Sideris 64dd4c5985 Remove Accept-Encoding header 2018-01-22 12:02:07 +02:00
Konstantinos Sideris c59cd0e80b Load the initial cache data without blocking the UI 2018-01-21 21:43:21 +02:00
Konstantinos Sideris c123bada94 Refactor avatar fetching in one function 2018-01-21 20:28:38 +02:00
Konstantinos Sideris fc890f572c Fix iterator crash 2018-01-21 18:25:58 +02:00
Konstantinos Sideris e37c2e34ce Use the Accept-Content header to enable response compression
fixes #86
fixes #89
2018-01-21 15:12:21 +02:00
Konstantinos Sideris 92a578f5e8 Convert 'if' to 'else if' to remove a no-op 2018-01-17 10:16:54 +02:00
Konstantinos Sideris 9de2db2fb8 Automatically focus on input when opening a dialog 2018-01-16 22:50:47 +02:00
Konstantinos Sideris eea33062e3 Add some very useful commands 2018-01-16 22:34:31 +02:00
Konstantinos Sideris 26540bd120 Hack to work around layout flickering when adding new timeline items 2018-01-16 22:24:23 +02:00
Konstantinos Sideris 7792ca7149 Fix emoji as avatars issue for the receipts 2018-01-16 21:02:29 +02:00
Konstantinos Sideris caf5b70994 Move the cursor to the start/end of the text before we move up/down in history
fixes #166
2018-01-16 20:51:46 +02:00
Konstantinos Sideris af5663b6bc Add borders 2018-01-15 21:04:49 +02:00
Konstantinos Sideris 020a842aef Change cache format to not allow duplicate receipts
Convert list of receipts to map<userId, timestamp>
2018-01-14 23:37:38 +02:00
Konstantinos Sideris 4521837765 Add option to disable typing notifications
fixes #131
2018-01-14 15:57:58 +02:00
Konstantinos Sideris c4fa8c844d Add a checkmark to messages that have been received by the server (#93) 2018-01-14 12:54:17 +02:00
Konstantinos Sideris dfeb0c833a Move timestamps to the right 2018-01-14 12:29:54 +02:00
Konstantinos Sideris d31a08f1d5 Keep syncing regardless of connectivity (#93) 2018-01-13 22:25:15 +02:00
Konstantinos Sideris d3603606e7 Make some functions inline 2018-01-13 17:52:23 +02:00
Konstantinos Sideris 3929261a8e Use QSharedPointer to save RoomStates 2018-01-13 17:15:47 +02:00
krombel f87b8fe817 Upload filter automatically and use filter_id (#201)
When a custom filter is inserted into nheko.conf or there was no filter
defined yet the default filter gets automatically uploaded.
After a successful upload the server-side generated filter-id is used.

This is done async as it is just an enhancement and it is not required
to upload the filter before the first request.
2018-01-13 14:49:51 +02:00
Konstantinos Sideris daabb40bed Use Q_NULLPTR to be compatible with qt5.7
fixes #199
2018-01-12 11:27:24 +02:00
Konstantinos Sideris 5b09c8e652 Handle surrogate pairs in avatars 2018-01-12 10:21:53 +02:00
Konstantinos Sideris 8beef5e61f Dismiss modal by clicking on the overlay 2018-01-11 18:10:18 +02:00
Konstantinos Sideris 9521efab7e Lint
[ci skip]
2018-01-11 16:34:43 +02:00
krombel 0570135253 Filter out content in sync that is currently unhandled (#198)
I had a look at sync.cpp and checked which parts of the sync response
are currently handled and which not. As I think it is unnecessary to let the 
unhandled data be transmitted without being handled I added these filters.

In the same term I increased the timeout server-side to 30s as Riot
defaults to this value as well. Especially now when a lots of presence-updates 
are not send anymore this value is more relevant.

It is now also possible to use a filter that is defined in`client/sync_filter`.
Advanced users might want to set an own filter here.

[ci skip]
2018-01-11 16:33:50 +02:00
Konstantinos Sideris 82341247f7 Remove Connection header 2018-01-10 23:38:34 +02:00
christarazi ddfce136ed Add support for pasting images into a room (#180)
fixes #132
2018-01-10 09:52:59 +02:00
Konstantinos Sideris 53f670096c Make group's sidebar visible through an option 2018-01-09 21:57:41 +02:00
Max Sandholm 312df6f3bb Communities (#195) 2018-01-09 15:07:32 +02:00
Konstantinos Sideris 81a706bf20 Make usernames in timeline less bold 2018-01-08 11:27:37 +02:00
Konstantinos Sideris 953634c9b5 Enable read receipts on messages sent through nheko 2018-01-05 15:28:38 +02:00
Konstantinos Sideris 983aea7c76 Create widgets on demand for messages added to the end of the timeline 2018-01-05 00:27:32 +02:00
Konstantinos Sideris a7e84b63ac Remove an extra colon from the receipt time
[ci skip]
2018-01-04 10:52:49 +02:00
Konstantinos Sideris eaf05748ff Initial support for read receipts 2018-01-03 18:06:29 +02:00
Konstantinos Sideris f7003ddeb5 Load last content from all rooms
fixes #175
2017-12-30 18:16:11 +02:00
Konstantinos Sideris 5e0fbe87a0 Use `toMSecsSinceEpoch` to be compatible with qt < 5.8 2017-12-30 17:44:47 +02:00
Konstantinos Sideris 208f957911 Re-order room list based on activity
fixes #2
2017-12-30 17:29:57 +02:00
Konstantinos Sideris d1d8b92b37 Use qobject_cast on TimelineItem 2017-12-30 11:59:55 +02:00
Konstantinos Sideris 1ab55d4732 Add date separator in the timeline
fixes #157
2017-12-25 23:02:33 +02:00
Konstantinos Sideris 6835a97b15 Use a better regex to identify URLs 2017-12-24 13:13:07 +02:00
Konstantinos Sideris e57f5f848b Restrict display name width to 500px 2017-12-23 14:06:59 +02:00
Konstantinos Sideris 9d763c4de9 Don't keep fetching history on non-visible timelines
If the user switched to another timeline before the current timeline
filled up with messages, nheko would keep fetching history.

Now it will check periodically if the timeline became visible so
it can decide whether or not to stop fetching history.
2017-12-23 13:50:11 +02:00
Konstantinos Sideris de61663e42 Use the "state_key" to assign avatars
fixes #113
fixes #173
2017-12-22 16:02:08 +02:00
Konstantinos Sideris 33f534c6f8 Cache room avatars (#139)
fixes #107
2017-12-22 00:00:48 +02:00
Konstantinos Sideris ece20dd917 Add rounded corners to inline images 2017-12-21 18:27:57 +02:00
Konstantinos Sideris 32377dc027 Remove the 'Video' prefix from video links 2017-12-21 16:02:54 +02:00
Konstantinos Sideris 1705273bb8 Fix font size inconsistencies 2017-12-21 14:36:05 +02:00
Konstantinos Sideris ccbcfe9fa4 Bold room names 2017-12-21 13:41:05 +02:00
Konstantinos Sideris aaa4d8c323 Prevent emoji selector for closing
fixes #176
2017-12-21 13:17:38 +02:00
Konstantinos Sideris f11044b5eb Handle incoming invites
fixes #128
2017-12-19 22:36:12 +02:00
Konstantinos Sideris 101bf47443 Remove minimum height limit (#160, #163) 2017-12-17 17:49:22 +02:00
Konstantinos Sideris b5e692bb28 Improve logging on event parsing failure 2017-12-16 19:31:07 +02:00
Konstantinos Sideris 65672d3dfb Allow only one application instance
fixes #141
2017-12-14 21:55:00 +02:00
Konstantinos Sideris 1d285993f7 Valgrind run
- Fix a memory leak where a layout was created without being used.
- Fix uninitialized value.
2017-12-12 09:31:00 +02:00
Konstantinos Sideris 544b623512 Add dialog to create rooms
fixes #25
2017-12-11 23:00:37 +02:00
Konstantinos Sideris ef0b0f6879 Add menu to invite users 2017-12-10 23:59:50 +02:00
Konstantinos Sideris 19bae2a2e6 Add gui option for joining rooms (#25) 2017-12-10 15:22:01 +02:00
Konstantinos Sideris d872b1060b Reset cache on breaking changes
fixes #154
2017-12-10 12:51:44 +02:00
Konstantinos Sideris f176af0f7a Catch deserialization exceptions on initial /sync 2017-12-06 21:25:56 +02:00
Konstantinos Sideris c1d0bbaf0b Prevent queue from getting blocked (#142)
Try sending a message when all the sent messages have been received
through /sync.
2017-12-06 02:59:15 +02:00
Konstantinos Sideris 6415c4125f Add style colors for the ScrollBar 2017-12-05 14:13:26 +02:00
Konstantinos Sideris b9c4a819ad Fix travis errors 2017-12-04 18:49:25 +02:00
Konstantinos Sideris a605e4486f Migrate to matrix-structs for event and response parsing 2017-12-04 18:41:19 +02:00
Konstantinos Sideris 3ea2053b25 Use std::exception for the login response 2017-12-03 02:50:46 +02:00
Konstantinos Sideris 914bdecc0b Initial integration with matrix-structs 2017-12-03 02:47:37 +02:00
Konstantinos Sideris f4f78b1d8a Add basic support for m.video messages
fixes #115
2017-12-01 18:28:26 +02:00
Konstantinos Sideris 5573548fb1 Allow audio clip uploads 2017-12-01 17:33:49 +02:00
Konstantinos Sideris 432a2e1354 Add inline audio clip player (m.audio) (#143) 2017-12-01 15:39:50 +02:00
Konstantinos Sideris eae069ad93 Group emoji and dialogs with namespaces 2017-11-30 20:02:46 +02:00
Konstantinos Sideris 32c8340577 Create directories for related files 2017-11-30 13:53:28 +02:00
Konstantinos Sideris 5663c58dd9 Use templates for the TimelineItem generation 2017-11-30 13:19:34 +02:00
Konstantinos Sideris deb1a6e292 Simplify timeline item creation 2017-11-30 12:55:30 +02:00
Konstantinos Sideris fdb76bb5c1 Implement file uploads
fixes #24
2017-11-29 23:39:35 +02:00
Konstantinos Sideris b21942a3e3 Add read support for m.file messages (#24) 2017-11-28 02:01:37 +02:00
Konstantinos Sideris f1eb0bbac0 Remove another /messages call (#139) 2017-11-26 22:30:14 +02:00
Konstantinos Sideris e4c8a555d6 Don't backfill messages automatically (#139) 2017-11-26 02:22:58 +02:00
Konstantinos Sideris 0dad256743 Reload theme without restart (#137) 2017-11-25 22:47:06 +02:00
Konstantinos Sideris 54cf3418bc Paint RoomList's background (#137) 2017-11-25 22:20:34 +02:00
Konstantinos Sideris f0ecf6eee6 Add dark theme 2017-11-25 18:19:58 +02:00
Konstantinos Sideris f36e498503 Update system theme 2017-11-25 15:14:37 +02:00
Konstantinos Sideris f4036f6f56 Use span tags to prevent html escaping 2017-11-25 14:01:01 +02:00
Konstantinos Sideris 0f363b5f44 Send read receipts
Automatically dismiss unread notifications when the window regains
focus.

fixes #111
fixes #68
2017-11-24 00:10:58 +02:00
Konstantinos Sideris fc34f373df Remove unnecessary comments 2017-11-22 21:13:22 +02:00
Konstantinos Sideris 56d8be5a27 Fix emoji picker's theme 2017-11-22 21:03:53 +02:00
Konstantinos Sideris 552941118b Fix minor stylistic issues on the nheko theme 2017-11-22 19:52:38 +02:00
Konstantinos Sideris 929b2df6fb Merge branch 'theme' 2017-11-22 19:09:19 +02:00
Konstantinos Sideris 937caddacd Keep track of newly joined rooms in the settings manager
fixes #134
2017-11-21 17:34:32 +02:00
Max Sandholm 19b526d453 Use system color scheme (using a Qt stylesheet) #104
The color scheme of nheko obeys the default color theme of Qt
(i.e. the system theme). It uses a Qt stylesheet to accomplish this,
which means replacing the color theme with a custom theme would only
be a matter of writing a new style sheet and loading it into the app.
2017-11-16 16:33:52 +02:00
Konstantinos Sideris 21fdb26bd4 Don't send empty messages 2017-11-16 14:42:13 +02:00
Konstantinos Sideris 4166a863b4 Lint 2017-11-15 18:42:21 +02:00
Jani Mustonen 4e1c8dd663 Implement a per-room send queue. (#118)
[ci skip]
2017-11-15 18:38:50 +02:00
Konstantinos Sideris e40dab9f98 Improve settings menu layout 2017-11-09 22:04:40 +02:00
Konstantinos Sideris b586a2329c Fix roomlist borders 2017-11-09 11:39:21 +02:00
Konstantinos Sideris 9c331905e6 Fix initial sidebar width 2017-11-09 00:17:08 +02:00
Konstantinos Sideris a6b84fac45 Remove unnecessary layouts 2017-11-08 23:09:15 +02:00
Konstantinos Sideris 26904fe992 Remove obsolete artifact from appveyor 2017-11-07 09:16:39 +02:00
Konstantinos Sideris dc0ffc26dd Merge remote-tracking branch 'ralith/fix-newlines' 2017-11-07 09:15:30 +02:00
Konstantinos Sideris 24dd76ee0b Parse unsigned key 2017-11-06 22:14:16 +02:00
Benjamin Saunders 097dac4f79 Fix wacky newline/linkification interaction 2017-11-05 16:23:19 -08:00
Benjamin Saunders e19775443a Fix newlines not being displayed (#122)
Fixes #64
2017-11-06 00:29:02 +02:00
Benjamin Saunders d0d15f8f58 Fix a formatting issue that snuck in between PRs (#123) 2017-11-06 00:25:47 +02:00
Benjamin Saunders 5bd5555a51 Use C++11 braced list style (#121) 2017-11-05 23:04:55 +02:00
Benjamin Saunders 4ccb5ed81f Add input history, enable multi-line input, refactor commands (#119)
This also fixes the transmission of mis-typed commands as messages,
fixes inability to send messages that start with a command, and does
some initial work towards automatically resizing the input field to fit
the input message.
2017-11-05 23:01:21 +02:00
Konstantinos Sideris 595d11cfa0 Exclude modifier keys from triggering typing notifications
fixes #116
2017-11-05 00:19:56 +02:00
Jani Mustonen 8c5a331c73 Simple SOCKS proxy support (#110) 2017-11-04 13:28:50 +02:00
Konstantinos Sideris 7e03ca4359 Reset the sender's name when paginating backwards
The first message of the timeline would have an avatar and
the rest of the messages would use the previous to be configured
(whether or not should have an avatar).

fixes #63
2017-11-03 14:25:01 +02:00
Jani Mustonen 13cb0521fa Improvements to the quick switcher (#109)
- Ghetto disambiguation for the quick switcher
- Fix the Ctrl+K shortcut
- Fix keyboard focus when the quick switcher is closed

fixes #114
2017-11-03 08:54:17 +02:00
Konstantinos Sideris beda0db543 Update issue template 2017-11-02 22:02:31 +02:00
Jani Mustonen 84741adc16 Implement a setting for the tray icon (#108) 2017-11-02 22:00:43 +02:00
Konstantinos Sideris 886edd03fb Add dummy settings menu 2017-11-02 00:41:13 +02:00
Thomas Herzog 287b5aa4c0 Implemented sending of typing notifications (#105) 2017-10-31 20:11:49 +02:00
Konstantinos Sideris 91b8427795 Add missing headers 2017-10-28 21:24:42 +03:00
Konstantinos Sideris e224440f5d Display user avatar changes 2017-10-28 21:11:40 +03:00
Konstantinos Sideris c18a49915b Save the changes between syncs in cache
- Fixes high cpu issues caused by the serialization of the whole
  in-memory state.
- Display name changes are now visible in the timeline.
2017-10-28 20:46:34 +03:00
Konstantinos Sideris a17b6dffaf Clean up headers 2017-10-28 15:46:39 +03:00
Konstantinos Sideris 845228ac6a Add scroll-down button 2017-10-27 22:20:33 +03:00
Konstantinos Sideris 8e15a5080d Adjust scrollbar only after pagination (#94)
The scrollbar will stay in the same position if new messages
are added to the bottom of the timeline.
2017-10-27 13:36:26 +03:00
Konstantinos Sideris c6e1068e0e Lint 2017-10-23 00:19:35 +03:00
Konstantinos Sideris 143ed5176a Use callbacks on MatrixClient 2017-10-22 22:51:50 +03:00
Konstantinos Sideris c0e55378c3 Remove extra inline keywords 2017-10-22 19:03:55 +03:00
Konstantinos Sideris 160fe1d668 Remove cache updates from the main thread 2017-10-21 21:17:01 +03:00
Konstantinos Sideris 3cae6c3983 Remove ui flickering when adding new timeline events 2017-10-21 18:53:15 +03:00
Konstantinos Sideris 47d1546adf Clean unread count when the user logs out
fixes #60
2017-10-21 16:46:11 +03:00
Konstantinos Sideris 13e526c27d Retry initial sync (#19) 2017-10-20 22:32:48 +03:00
Konstantinos Sideris 8a9a513ecd Move ctrl-k callback to the MainWindow 2017-10-20 21:39:05 +03:00
Konstantinos Sideris 9b60fdd620 Remove sync timer 2017-10-20 21:21:04 +03:00
Rokas Kupstys 3205e5fdd3 Make sidebar topic expand on click and fix html formatting of elided text. (#96)
Fixes #95
2017-10-20 20:58:23 +03:00
Konstantinos Sideris 8299a74775 Elide room topic 2017-10-19 19:04:51 +03:00
Konstantinos Sideris 8390ff253d Fix icons for retina displays 2017-10-15 22:08:51 +03:00
Konstantinos Sideris 513f69e88a Scroll to the bottom on new messages
Bug introduced on the last commit
2017-10-09 13:59:44 +03:00
Konstantinos Sideris ac8e42b926 Reduce timeline flickering 2017-10-09 01:32:25 +03:00
Konstantinos Sideris 76ddfb792b Add /join command support 2017-10-08 22:38:38 +03:00
Konstantinos Sideris ac525970b0 Add snackbar 2017-10-08 22:01:18 +03:00
Konstantinos Sideris ebe36b5713 Drop the loading screen if consensus can't be achieved 2017-10-08 21:35:37 +03:00
Konstantinos Sideris 6e1285bb0e Prevent FOUC 2017-10-07 20:51:35 +03:00
Konstantinos Sideris bc4b47a5e3 Use shared pointer for the modals 2017-10-07 20:51:35 +03:00
Konstantinos Sideris 985530e99b Resume sync when connectivity is established 2017-10-05 18:13:11 +03:00
Konstantinos Sideris 1fc68c5b7f Use string timeout parameter 2017-10-05 08:47:29 +03:00
Konstantinos Sideris 11a3282136 Remove full_state from initial sync 2017-10-04 22:11:55 +03:00
Konstantinos Sideris 28b3a3fde0 Put typing notifications above the text input 2017-10-04 22:00:26 +03:00
Konstantinos Sideris d60c2b76e3 Receive typing notifications (#88) 2017-10-04 11:33:34 +03:00
Konstantinos Sideris 88349eae90 Recover from corrupted cache data
Make Cache constructor exception free

fixes #74
2017-10-03 21:16:31 +03:00
Victor Berger 73222aa900 Fix unicode handling of replaceEmoji (#84) 2017-10-02 20:52:21 +03:00
Konstantinos Sideris 35355756e5 Build lmdb on appveyor 2017-10-01 22:38:46 +03:00
Max Sandholm 7ad45d8d64 React to externally left and joined rooms, and add "leave room" button in room menu (#75)
* Initial "join room" feature.
* React correctly to remotely joined rooms.
* Leaving rooms implemented both locally using the room menu
   in nheko, and reacting properly when leaving a room remotely 
   from another client.
2017-10-01 19:49:36 +03:00
Konstantinos Sideris 6e0ae807d5 Update badge counter only on change 2017-10-01 18:15:23 +03:00
Konstantinos Sideris 0c0ac68bc2 Remove extra clang-format options 2017-10-01 12:51:29 +03:00
Rokas Kupstys da6e7c11dc Fixes #50.
On KDE desktop icon failed to appear because TrayIcon requested a zero-size rect. Implementing MsgCountComposedIcon::availableSizes() method fixes that.

After icon became visible it was not transparent, and places that should have been transparent contained artifacts likely due to uninitialized memory. Implementing MsgCountComposedIcon::pixmap() which returns a pixmap with alpha channel fixes that.
2017-10-01 12:15:38 +03:00
Konstantinos Sideris 775d2e88f5 Don't move scrollbar to the bottom when it's active
fixes #55
2017-09-30 22:26:33 +03:00
Konstantinos Sideris 96562c078d Add custom logging format 2017-09-30 21:36:40 +03:00
Konstantinos Sideris 748f480077 Add missing update calls 2017-09-30 20:44:18 +03:00
Konstantinos Sideris 41a85832b3 Remove unnecessary animations 2017-09-30 17:05:05 +03:00
Konstantinos Sideris ff1bc797de Refactor the welcome page 2017-09-30 16:39:24 +03:00
Konstantinos Sideris b9521b0809 Stop sync timer after logout
Silence errors from redacted events
2017-09-30 15:52:14 +03:00
krombel 4c00e64f3f Allow handling of incomplete /sync responses (#67)
matrix-org/synapse#2358 proposes a change to only contain objects
in the sync stream where values get updated.
The current behavior leads nheko to fail when that is used.
2017-09-29 21:10:11 +03:00
Konstantinos Sideris 2f488bd9e3 Don't mangle bot's display name 2017-09-28 22:26:24 +03:00
Konstantinos Sideris 03da01423d Use a valid value for setWeight 2017-09-28 14:42:16 +03:00
Konstantinos Sideris 9def76aa08 Linting 2017-09-24 17:39:06 +03:00
Konstantinos Sideris f351b00075 Manually remove KDE accelerators
fixes #14
2017-09-24 15:25:57 +03:00
Max Sandholm b1214a9ae8 Ctrl-Q from the main window quits the application (#69)
Ctrl-Q from the main window now quits the application.

fixes #61
2017-09-24 13:58:36 +03:00
Konstantinos Sideris ed5a96341b Properly handle html tags 2017-09-22 22:12:36 +03:00
Konstantinos Sideris 1024198228 Fix reverse iterator crash 2017-09-22 21:34:31 +03:00
Konstantinos Sideris b45f35cb51 Remove hdpi scaling 2017-09-22 21:33:29 +03:00
Konstantinos Sideris 3d13e1416a Use white as the background color 2017-09-20 23:17:11 +03:00
Konstantinos Sideris e7b7bf86c5 Do not capitalise the organization name 2017-09-18 20:50:51 +03:00
Konstantinos Sideris fd552b8a9c Remove off-white color 2017-09-16 17:43:34 +03:00
Konstantinos Sideris 29e21e2970 Merge branch 'images' 2017-09-10 13:13:02 +03:00
Konstantinos Sideris 1bfe48de75 Style change again 2017-09-10 12:59:21 +03:00
Konstantinos Sideris edff71bc24 Implement image uploads (#24) 2017-09-10 12:58:00 +03:00
Konstantinos Sideris ed36bdb037 Allow port number as part of the hostname
closes #21
2017-09-04 00:32:47 +03:00
Konstantinos Sideris b5ae84c3c3 Add write support for m.emote events
closes #41
2017-09-03 11:43:45 +03:00
Konstantinos Sideris a44a4f36af Add read support for m.emote events (#41) 2017-09-02 16:47:59 +03:00
Konstantinos Sideris 6797cbc943 Linkify URLs in room topics
closes #52
2017-08-26 15:36:10 +03:00
Konstantinos Sideris 177dd6a5b0 Remove cache data when the user logs out 2017-08-26 14:31:23 +03:00
Konstantinos Sideris 7fbfe3af15 Update the cache state at once to avoid being in an invalid state 2017-08-26 13:49:16 +03:00
Konstantinos Sideris 43b1bdfe63 Remove nick colors 2017-08-26 11:33:26 +03:00
Konstantinos Sideris 18625d9d27 Fix login UX
The mxid input will not prevent the user from entering any invalid
value.

closes #22
2017-08-21 20:55:35 +03:00
Konstantinos Sideris c6ec20fa40 Place the completion popup under the search widget 2017-08-20 21:13:00 +03:00
Konstantinos Sideris 2644e4acca Small style change 2017-08-20 13:47:22 +03:00
Konstantinos Sideris 8d81489e05 Ghetto room switcher 2017-08-15 21:06:27 +03:00
Konstantinos Sideris 69036967ff Focus on the text input when switching rooms 2017-08-14 18:25:43 +03:00
Konstantinos Sideris 9c28ba28a8 Update the last sender from the initial pagination 2017-08-14 00:26:57 +03:00
Konstantinos Sideris f8505fe0bc Don't overwrite last user 2017-08-13 21:04:43 +03:00
Konstantinos Sideris 9189782d3b macOS: Get rid of text field's focus border 2017-08-12 13:21:52 +03:00
Konstantinos Sideris c428ef4b6a Remove unused variable 2017-08-06 22:37:55 +03:00
Konstantinos Sideris 7a56f65fb3 Use 'You' instead of your own user id 2017-08-06 22:28:54 +03:00
Konstantinos Sideris 146aaa8746 Display the most recent message instead of the topic
closes #11
2017-08-06 18:53:31 +03:00
Konstantinos Sideris 4fccc6270e Fix full screen image viewer on macOS sierra 2017-08-06 10:35:32 +03:00
Konstantinos Sideris 93e8297b61 The emoji panel shouldn't steal focus from other windows 2017-08-05 21:34:24 +03:00
Konstantinos Sideris dd30b5d06e Rename Event.h header to avoid header conflict 2017-08-05 17:02:53 +03:00
Konstantinos Sideris b1c7e58585 Remove extra exception catch 2017-08-05 16:27:30 +03:00
Konstantinos Sideris af0f22fc91 Keep fetching history until the scrollbar gets activated 2017-08-05 15:59:24 +03:00
Konstantinos Sideris 748eb949a7 Parse utf-8 data properly 2017-08-01 19:42:42 +03:00
Konstantinos Sideris 8d05073547 Initial support for state cache
- Adds detection for duplicate events
2017-07-30 14:30:55 +03:00
Konstantinos Sideris e5ccb73a20 Add serialization on matrix events 2017-07-30 14:30:55 +03:00
Konstantinos Sideris c6c024ccbf Append backwards events after the spacer 2017-07-30 14:02:15 +03:00
Konstantinos Sideris 622fc3f9c3 Save and restore app's window size
closes #46
2017-07-30 13:59:28 +03:00
Konstantinos Sideris 3c1f9696df Fix small timestamp misalignment 2017-07-15 19:18:34 +03:00
Konstantinos Sideris 30fb46e25b Use pixels to specify the font sizes
Basically reverts the last font related commits since pointSize isn't
as reliable as pixelSize.

Also some layout values (margins, spacings) have been moved out to Config.h.
2017-07-15 17:11:46 +03:00
Konstantinos Sideris 847ae37df2 Linting 2017-07-09 22:27:20 +03:00
Konstantinos Sideris b382dfbee6 Remove custom badge counter from mac and windows (#42)
- Add icon set on mac for future packaging
2017-07-09 12:49:17 +03:00
jansol f5ba63946b Improve login flow (#35)
* Validate both inferred and explicitly entered server addresses by attempting to call the /versions endpoint
* If the domain from the mxid fails validation, try prefixing it with 'matrix'
* Only show server address field if address validation ultimately fails
2017-07-08 14:41:49 +03:00
george99g 03437cc693 Fix emoji alignment issue (#43) 2017-07-04 23:40:41 +03:00
Konstantinos Sideris 140cbd3c27 Slow down spinner 2017-07-02 16:44:05 +03:00
Konstantinos Sideris 06cacc13d1 Show unread count on MacOs toolbar 2017-07-01 16:34:36 +03:00
Konstantinos Sideris 97ca8d0ed1 Remove hardcoded font sizes on the top bars and text input 2017-07-01 15:52:46 +03:00
Konstantinos Sideris 22d0f50e36 Add option for the default font size 2017-07-01 15:21:07 +03:00
Konstantinos Sideris 0ed2350664 Set emoji size relative to the default font 2017-07-01 14:03:00 +03:00
Konstantinos Sideris 730a56f58e Remove hardcoded font sizes, margins etc
- Fixes small font issue on MacOs
2017-07-01 12:46:58 +03:00
Konstantinos Sideris 82b48d926d Don't collapse room list 2017-06-06 15:03:11 +03:00
Konstantinos Sideris da190593c8 Repaint when the room avatar is received 2017-06-05 20:19:20 +03:00
Konstantinos Sideris 26dfbfd08c Lazy load initial timeline events 2017-06-05 19:54:45 +03:00
Konstantinos Sideris 36d25951dc Fix scrolling flickering on backwards pagination 2017-06-05 19:21:19 +03:00
Konstantinos Sideris 95c492bad8 Experimental support for user avatars in timeline 2017-06-05 02:14:05 +03:00
Konstantinos Sideris b8c8fed655 Show confirmation dialog on logout
Minor stylistic refactoring

closes #29
2017-06-02 18:04:51 +03:00
Konstantinos Sideris 5c283a5cda Don't mark messages from local user as unread
closes #37
2017-06-01 18:55:42 +03:00
Konstantinos Sideris af80c251d7 Add context menu on RoomList items 2017-05-31 19:42:07 +03:00
Konstantinos Sideris c184362044 Add menu to toggle notifications 2017-05-31 17:06:03 +03:00
Konstantinos Sideris 5197f8a886 Add drop shadow to emoji panel
- Minor refactoring
2017-05-31 02:35:28 +03:00
Konstantinos Sideris 0f72808858 Create a named device on login 2017-05-30 14:28:04 +03:00
Konstantinos Sideris 384fe7067e Set up translations 2017-05-29 19:09:12 +03:00
Konstantinos Sideris f490040811 Fetch avatar thumbnail instead of the original image
closes #31
2017-05-27 01:29:45 +03:00
Konstantinos Sideris 0cd9e3b1e5 Resolve name and avatar on 1-on-1 rooms 2017-05-26 21:34:16 +03:00
Konstantinos Sideris 251f569a5c Add custom scrollbar on the timeline 2017-05-24 22:45:13 +03:00
Konstantinos Sideris 0237fec90c Don't show the landing page when there is an active user 2017-05-22 18:03:37 +03:00
Konstantinos Sideris 9772f52876 Increase tray icon's bubble size 2017-05-22 17:35:17 +03:00
Konstantinos Sideris 0e04e4d00e pixelSize -> pointSize 2017-05-22 00:08:33 +03:00
Konstantinos Sideris 23431362d9 Properly quit app on tray icon's action
closes #30
2017-05-21 23:21:02 +03:00
Konstantinos Sideris 0fddb7ebff Be explicit about room's name color 2017-05-21 22:52:38 +03:00
Konstantinos Sideris a45582585d Minimize to tray 2017-05-21 16:36:06 +03:00
Konstantinos Sideris c480f8f4bc Snappy sidebar 2017-05-19 19:55:38 +03:00
Konstantinos Sideris 30fce32161 Remove RoomList UI form 2017-05-19 17:23:36 +03:00
Konstantinos Sideris f2ff4772a7 Reverse colors on selection for the unread message bubble 2017-05-19 16:49:25 +03:00
Konstantinos Sideris 48618b438f Add hover color on RoomList items 2017-05-19 03:45:46 +03:00
Konstantinos Sideris f4522f9bbf Simplify room list item 2017-05-19 03:28:15 +03:00
Konstantinos Sideris c470e49aa9 Add geometry animation on emoji picker 2017-05-16 21:21:31 +03:00
Konstantinos Sideris 992af5611b Show user info even if the display name or avatar are missing 2017-05-16 15:43:29 +03:00
Konstantinos Sideris 49831a2390 Clear room state on logout 2017-05-16 15:23:31 +03:00
Konstantinos Sideris a568d60cef Remove MainWindow ui form 2017-05-14 21:10:03 +03:00
Konstantinos Sideris e5ef84617c Add missing parents 2017-05-14 17:32:12 +03:00
Konstantinos Sideris b3bb0531de Make InputValidator class members static 2017-05-14 16:36:30 +03:00
Konstantinos Sideris 7502f167ae Use QSharedPointer to manage TimelineViews and RoomInfoListItems 2017-05-14 16:31:59 +03:00
Konstantinos Sideris ccad3f6bd6 Fix ripple size on RoomListItem 2017-05-14 01:27:30 +03:00
Konstantinos Sideris c060a136a9 Update prev_batch only while paginating 2017-05-13 19:58:48 +03:00
Konstantinos Sideris 0368d854cf Initial support for backwards pagination 2017-05-12 15:43:35 +03:00
Konstantinos Sideris ff611c1b39 Highlight URLs in TimelineView 2017-05-11 01:28:06 +03:00
Konstantinos Sideris f2ce910b16 Prefer non UserId as display names 2017-05-10 18:04:57 +03:00
Konstantinos Sideris 6f065530ae Restrict inline image size to its minimum 2017-05-10 13:12:50 +03:00
Konstantinos Sideris d277d5c68b Check for nullptr before delete 2017-05-10 12:45:53 +03:00
Konstantinos Sideris e78e43c86a Save the user defined domain instead of the one provided by login response 2017-05-09 16:57:41 +03:00
Konstantinos Sideris 1f10403ace Add settings panel for homeserver's domain 2017-05-09 13:25:43 +03:00
Konstantinos Sideris 0834b246ad Initial support for display names 2017-05-08 19:44:01 +03:00
Konstantinos Sideris 63db04793b Add sync timeout 2017-05-08 18:34:18 +03:00
Konstantinos Sideris e44cc374e1 Use strongly typed enums 2017-05-08 00:51:03 +03:00
Konstantinos Sideris 1f90c58076 Use timeline to retrieve state events
- Rooms without any history will be shown.
- Room's state will be kept in sync and any updates will be visible.
2017-05-07 17:15:38 +03:00
Konstantinos Sideris 8825e072f2 Add matrix::events namespace 2017-05-04 17:11:04 +03:00
Konstantinos Sideris 4ea76503fb Add base Event class 2017-05-04 17:11:04 +03:00
Konstantinos Sideris b064df8b45 Add event contents 2017-05-04 17:11:04 +03:00
Matthew Hodgson 9cc9b623eb macOS fixes (#15)
- Improve build instructions.
- Fix fullscreen image sizing.
- Remove horizontal overscroll of RoomInfoListItem.
2017-05-04 13:11:04 +03:00
Konstantinos Sideris fb76118309 Set application attributes before QApplication 2017-05-03 23:32:51 +03:00
Konstantinos Sideris 9de94061ec Set text color for QLineEdit 2017-05-03 21:42:51 +03:00
Konstantinos Sideris 3d77438878 Don't set the font size with a stylesheet 2017-05-02 14:15:13 +03:00
Konstantinos Sideris e3acb533ad Enable high dpi 2017-05-01 16:03:42 +03:00
Konstantinos Sideris 4a7b005c64 Add lint rule 2017-04-30 15:10:59 +03:00
Konstantinos Sideris e6fd80f87f Fix MainWindow being out of focus when the fullscreen overlay is closed
That was probably a Linux specific issue or my mouse is buggy.
2017-04-30 13:00:11 +03:00
Konstantinos Sideris 41f6dbe053 Close fullscreen overlay with out of contents click 2017-04-30 03:47:12 +03:00
Konstantinos Sideris 57332553c4 Add full screen overlay for image display 2017-04-30 01:55:10 +03:00
Konstantinos Sideris ec14e5e556 Show image text overlay on hover 2017-04-30 01:10:01 +03:00
Konstantinos Sideris c9d03b793b Add initial support for inline images 2017-04-28 14:56:45 +03:00
Konstantinos Sideris 4b4035eebc Rename History to Timeline
In order to be compatible with the Matrix terminology
2017-04-27 03:14:12 +03:00
Konstantinos Sideris 1a82150aa8 Exclude m.room.member events from initial sync 2017-04-27 00:32:33 +03:00
Konstantinos Sideris 415ef7e9c7 Add spinner to hide uninitialized layout after login 2017-04-26 02:24:10 +03:00
Konstantinos Sideris da39975047 Bundle fonts into the app
- Create QApplication instance before font initialization, otherwise
  QFontDatabase crashes.
- Fix broken QRC font paths
2017-04-25 17:36:52 +03:00
Konstantinos Sideris 46af37490f Set allowed TLD size to 63 chars 2017-04-24 20:33:42 +03:00
Konstantinos Sideris 9d9b5e4f68 Don't set initial room with an empty room list 2017-04-24 20:05:24 +03:00
Konstantinos Sideris 6d9acc8621 Add common style for the scroll bars 2017-04-24 17:06:34 +03:00
Konstantinos Sideris 42bb9bb63a Add full emoji support 2017-04-23 21:31:08 +03:00
Konstantinos Sideris fa83ae1cf8 Add logo icons 2017-04-21 17:16:29 +03:00
Konstantinos Sideris f046dc8ac6 Add initial read-only emoji support 2017-04-19 19:38:39 +03:00
Konstantinos Sideris e680865593 Update unread messages for the current room when the app is inactive 2017-04-16 22:34:57 +03:00
Konstantinos Sideris e1d48367f8 Show the unread message count on the window title 2017-04-15 19:04:02 +03:00
Konstantinos Sideris e02dd2b8c5 Move the main window to the center 2017-04-15 17:23:35 +03:00
Konstantinos Sideris 3b0ff1a4cd Add initial support for unread message count
- Add border width on Badge
2017-04-15 02:56:04 +03:00
Konstantinos Sideris a5ebff5949 Use color generator for nick names 2017-04-14 17:10:18 +03:00
Konstantinos Sideris 8358720d8e Use light theme 2017-04-14 15:13:09 +03:00
Konstantinos Sideris bb03a402d7 Add proper struct initialization 2017-04-13 04:32:18 +03:00
Konstantinos Sideris 27f7142cd8 Initial implementation for local echo
Each HistoryView maintains a list of pending events. Each pending
message is validated from the homeserver with either the returned
EventId or the body of the message.

Currently there is no support to remove invalid messages.

Also some small refactoring:
    - ChatPage doesn't know about the message being sent. The message
      delivery is solely handled by HistoryViewManager.
    - Nick coloring function moved to HistoryViewManager.
2017-04-13 04:11:22 +03:00
Konstantinos Sideris 718562737c Don't use icons as room avatars 2017-04-12 17:14:53 +03:00
Konstantinos Sideris 9092ae3db8 Use less contrast on the sidebar 2017-04-12 02:44:01 +03:00
Konstantinos Sideris e8aae26aea Small stylistic changes 2017-04-12 01:29:25 +03:00
Konstantinos Sideris 532b1ab38f Add style for m.notice
Tone down the main text color
2017-04-12 00:52:56 +03:00
Konstantinos Sideris c431eee401 Use a single nick to color map 2017-04-11 22:48:02 +03:00
Konstantinos Sideris 68d0696ca4 Decrease button's animation duration 2017-04-11 18:54:24 +03:00
Konstantinos Sideris 193490bd9e Remove halo animation 2017-04-11 18:45:01 +03:00
Konstantinos Sideris 40722b7af7 Remove capitalization 2017-04-11 18:25:39 +03:00
Konstantinos Sideris 6468faa39e Use only a MatrixClient as a shared pointer 2017-04-11 17:45:47 +03:00
Konstantinos Sideris 0770f6e6b5 Make the timer single shot 2017-04-11 02:35:09 +03:00
Konstantinos Sideris 792011c1c9 Allow message text selection 2017-04-10 19:08:27 +03:00
Konstantinos Sideris 1c9e92b8bd Handle room avatars in top bar without an icon 2017-04-10 19:01:09 +03:00
Konstantinos Sideris a859145983 Hide horizontal scroll bar on history view 2017-04-10 18:49:24 +03:00
Konstantinos Sideris ee72d8b7b7 Use QString::simplified instead of regex 2017-04-10 18:17:41 +03:00
Konstantinos Sideris 0f3cffcfd9 Use Matrix ID for login 2017-04-10 01:47:15 +03:00
Konstantinos Sideris 87ecb28558 Sanitize room info for display 2017-04-10 01:34:53 +03:00
Konstantinos Sideris b301a2828e Remove exception specifications 2017-04-09 18:09:09 +03:00
Konstantinos Sideris 3d3f2ec33e Add travis CI 2017-04-09 03:54:39 +03:00
Konstantinos Sideris 407afcd2f2 Clear text fields after login 2017-04-09 02:32:48 +03:00
Konstantinos Sideris 239780557f Add logout button
Logout from the current session and invalidate the current token
2017-04-09 02:17:04 +03:00
Konstantinos Sideris f50fb34fb6 Implement initial registration stage 2017-04-08 02:53:23 +03:00
Konstantinos Sideris c7c3ee19ee Use QLabel to display registration errors 2017-04-07 19:25:06 +03:00
Konstantinos Sideris 73e73f46ea Use const refs for the deserialized data 2017-04-06 19:56:33 +03:00
Konstantinos Sideris 5bcaaa3aa3 Initialize sync timer 2017-04-06 15:17:58 +03:00
Konstantinos Sideris 4f45575c79 Initial commit 2017-04-06 02:06:42 +03:00