Commit graph

564 commits

Author SHA1 Message Date
Claudio Cambra
bc08559655 Add a placeholder item for empty activity list
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-22 12:17:21 +02:00
Camila
7db68ad2c5
Fix two factor auth notification: activity item was disabled.
User couldn't click on the links.

Signed-off-by: Camila <hello@camila.codes>
2022-09-20 18:56:31 +02:00
Claudio Cambra
547e5a4675 Do not format text in QML components as HTML
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-17 15:05:22 +02:00
allexzander
65cd8d06bc Do not ignore return values for SyncJournalDB in accountsettings folderstatusmodel activitylistmodel abstractpropagateremotedeleteyncrypted lockgilejobs and propagator jobs
Signed-off-by: allexzander <blackslayer4@gmail.com>
2022-09-17 09:47:15 +02:00
Claudio Cambra
5a56584fba Deallocate call notification dialog objects when closed
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-14 12:34:47 +02:00
Claudio Cambra
1a5fa50fbb Refactor ActivityListModel population mechanisms
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-13 19:34:41 +02:00
Claudio Cambra
4c9e0873a3 Fix low-resolution file changed overlay icons in activities
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-13 18:55:47 +02:00
Claudio Cambra
871ad24e28 Fix ActivityItem activityHover error
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-10 12:11:23 +02:00
Claudio Cambra
b7b374c442 Fix rebase issue with activity list keyboard navigation PR
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-07 18:45:58 +02:00
Claudio Cambra
b820df90b9 Improve activity list highlighting/keyboard item selection
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-07 18:27:14 +02:00
Claudio Cambra
85c5002d34 Simplify activity list delegates by making them ItemDelegates, clean up
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-07 18:19:49 +02:00
Claudio Cambra
7882e224fd Set UnifiedSearchResultNothingFound visibility less messily
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-07 15:01:07 +02:00
Claudio Cambra
316f3981ab Align, resize, and layout everything uniformly in the unified search view
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-06 09:02:17 +02:00
Claudio Cambra
5acb0b272a Use same tooltip component everywhere
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-09-06 08:40:03 +02:00
alex-z
ba9a39856b Change Activities dialog show and Systray.forceWindowInit call sequence to fix the issue of Activities dialog not being shown.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-08-29 10:59:55 +03:00
alex-z
22a3b6cc16 Fix File Activities dialog not showing up.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-08-29 10:59:55 +03:00
Claudio Cambra
2ab95a30f9 Ensure file activity dialog is centered on screen and appears at top of window stack
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-17 14:01:32 +02:00
Claudio Cambra
7d41530284 Fix account switching and hover issues with UserLine component
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-10 18:07:02 +03:00
Claudio Cambra
37bd55b232 Fix unified seach item placeholder image source
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-10 13:31:45 +02:00
Claudio Cambra
387dfa96a1 Refactor user line
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-10 12:10:20 +02:00
Claudio Cambra
d86f25d215 Make UserStatusSelector a dismissible page pushed onto the tray window
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-10 09:22:33 +00:00
Claudio Cambra
0a89bf2335 Fix QML warnings
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-09 14:45:18 +03:00
Claudio Cambra
81bb290e4c Eliminate padding around the menu separator in the account menu
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-08 16:14:32 +02:00
Claudio Cambra
e9e482b174 Restyle unified search skeleton items animation and simplify their code
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-05 18:40:13 +02:00
Claudio Cambra
c74c466725
Merge branch 'master' into bugfix/clean-up-talkreplytextfield 2022-08-02 18:28:28 +02:00
Claudio Cambra
789179214f Clicking on an activity list item for a file opens the local file if available
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-02 17:43:18 +02:00
Claudio Cambra
b1deb6cd1d Replace unified search text field busy indicator with custom indicator
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-08-02 13:23:33 +02:00
Claudio Cambra
78b3e09f3b Clean up TalkReplyTextField, remove unnecessary parent Item
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-29 12:47:08 +02:00
Claudio Cambra
061f443920 Make apps menu scrollable when content taller than available vertical space, preventing borking of layout
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-27 12:19:10 +02:00
Claudio Cambra
7a78f2b19f Ensure that throttled notifications still appear in tray activity model
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-25 13:15:50 +02:00
Claudio Cambra
8d0df62c49 Stop styling QML unified search items hierarchically, use global Style constants
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-21 15:38:18 +02:00
Claudio Cambra
8dfe1647ed Stop clearing notifications when new notifications are received
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-21 13:14:51 +02:00
Claudio Cambra
e3d897cb7f Fix ActivityItemContent QML paintedWidth errors
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-18 15:13:58 +02:00
Claudio Cambra
539ba93fd1 QMLify the UserModel, use properties rather than setter methods
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-15 16:47:17 +02:00
Claudio Cambra
6872e1a75b Take ints by value rather than reference in UserModel methods
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-15 15:01:48 +02:00
Claudio Cambra
bc01db7cff
Merge branch 'master' into bugfix/limit-concurrent-notifications 2022-07-13 00:18:08 +02:00
Claudio Cambra
ce9e4a99c0 Refactor tray window opening code for clarity and efficiency
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-12 22:54:00 +02:00
Claudio Cambra
7d087026ca Limit concurrent notifications
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-12 20:24:50 +02:00
Claudio Cambra
b712eb95e2 Clean up systray methods, make more QML-friendly
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-06 11:26:53 +02:00
Claudio Cambra
22464f5005 Work around issues with window positioning on Linux DEs, hardcode tray window to screen center when new account added
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-04 14:11:19 +02:00
Claudio Cambra
a504dbf965 Close call notifications when the call has been joined by the user, or the call has ended
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-07-01 11:39:50 +02:00
Camila
fae5b5573c Clean up code, move values to Style.qml.
Signed-off-by: Camila <hello@camila.codes>
2022-06-28 09:25:48 +02:00
Camila
3ff781ee17 Talk reply field should now have the same height as the 'Reply' button.
Signed-off-by: Camila <hello@camila.codes>
2022-06-28 09:25:48 +02:00
Claudio Cambra
b7c2e16aa9 Make client language gender-neutral and more clear
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-06-24 14:36:36 +02:00
Claudio Cambra
e873f3b348 Fix crashing when selecting user status
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-06-24 12:34:52 +02:00
Camila
ac0c227263 Remove unused signal fileActivityButtonClicked.
Signed-off-by: Camila <hello@camila.codes>
2022-06-23 10:10:55 +02:00
Camila
55d6035f1e absolutePath was undefined.
It was not part of the model, the correct one was path (PathRole).

Signed-off-by: Camila <hello@camila.codes>
2022-06-23 10:10:55 +02:00
Camila
7744ad29a9 Remove tooltip because it is only repeating the label of the link.
It is bad for accessibility.

Signed-off-by: Camila <hello@camila.codes>
2022-06-23 08:56:23 +02:00
Claudio Cambra
0d26929d41 Ensure call notification stays on top of other windows
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-06-22 10:25:51 +02:00
Camila
fc2408cf41 Add contrast to the text/icon of buttons if the server defined color is light.
Signed-off-by: Camila <hello@camila.codes>
2022-06-21 11:49:30 +02:00
Claudio Cambra
281e50f4cd Prevent call dialogs from being presented when do not disturb is set as the user status
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-06-10 11:30:16 +02:00
Camila
6ff82659ac Change color of text field to ncTextColor instead of ncSecondaryTextColor.
Signed-off-by: Camila <hello@camila.codes>
2022-05-25 12:08:53 +02:00
Camila
f911c546d9 Add a transparent background to the send reply button.
Signed-off-by: Camila <hello@camila.codes>
2022-05-25 12:08:53 +02:00
Camila
282aadb7e9 Reduce spacing above the notification buttons.
Spacing is now the  same as space between lines in the text above.

Signed-off-by: Camila <hello@camila.codes>
2022-05-25 10:01:38 +02:00
Camila
2fa834446a Fix 'TypeError: Cannot readproperty 'messageSent' of undefined'.
Signed-off-by: Camila <hello@camila.codes>
2022-05-24 11:51:55 +02:00
alex-z
43a37637cf Display chat message inside the OS notification.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-05-23 17:01:22 +03:00
Matthieu Gallien
d622999971 add explicit capture for lambda
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-05-17 13:33:22 +02:00
Valdnet
f4931026d7
i18n: Add a space
Signed-off-by: Valdnet <47037905+Valdnet@users.noreply.github.com>
2022-05-17 09:08:37 +02:00
Camila
290851c33a Convert primary, WEB and DELETE notification links to action buttons.
Signed-off-by: Camila <hello@camila.codes>
2022-05-16 22:03:53 +02:00
Camila
9c63615a78 Do not add a second DELETE to the list of actions in one notification.
Signed-off-by: Camila <hello@camila.codes>
2022-05-16 22:03:53 +02:00
alex-z
53654b2a50 Allow manual renaming of files and folders with spaces. Allow uploading invalid file name via the InvalidFileName dialog.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-05-16 18:07:26 +03:00
Claudio Cambra
463496153a Fixed several issues with activity items relating to icon colouration and activity item sizing + layout
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-05-16 16:42:53 +02:00
Claudio Cambra
b6def51945 Fix notifications not being shown when they should be
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-05-16 14:28:33 +02:00
alex-z
514f72f975 Use proper online status for user ('dnd', 'online', 'invisible', etc.) to enable or disable desktop notifications.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-05-16 10:47:05 +03:00
Camila
e4a0d57bc8
Do not replace strings in action links coming from the notification api.
Signed-off-by: Camila <hello@camila.codes>
2022-05-12 12:47:48 +02:00
rakekniven
994c2e02d8 l10n: Changed triple dot to ellipsis
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2022-05-04 11:33:47 +02:00
Claudio Cambra
7129bf2489 Add user avatars in talk notifications in activity list
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-05-02 15:12:45 +02:00
Matthieu Gallien
2d27a68e73 show errors on lock/unlock actions
use a native dialog to show users errors when trying to lock/unlock
files

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2022-05-02 13:52:05 +02:00
alex-z
7b441a0f6e Optimize activities fetch requests. Do not fetch when the Tray is not open. Fetch next subset only when scrolling. Fix duplicate notifications.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-04-29 20:59:56 +03:00
Claudio Cambra
3f5243aaee Add an incoming talk call notification to the desktop client
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>

Co-authored-by: Camila <hello@camila.codes>
2022-04-28 09:13:13 +02:00
Claudio Cambra
010f49a392
Realigned and resized thumbnails
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-04-27 18:02:37 +02:00
Claudio Cambra
15078260b4
Removed spacing between activies, labels now centre-aligned
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-04-20 18:07:41 +02:00
Claudio Cambra
7b65c1ceed
Fix thumbnails for new files made while client open
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-04-19 10:16:43 +02:00
Claudio Cambra
5ce736222e Use header text color to improve contrast with header colours when hovering on themed elements
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-04-15 13:17:09 +02:00
Camila
74d214726c
Remove unused function parameter.
Signed-off-by: Camila <hello@camila.codes>
2022-04-06 10:38:01 +02:00
Camila
6189b2115e
Adress design issues.
- The input field was not using the  theming.
- After submitting the reply, the text and icon on the left were moving.

Signed-off-by: Camila <hello@camila.codes>
2022-04-06 10:38:01 +02:00
Camila
f524635cf4
Do not hide'View chat' link.
This logic was also hiding 'Answer call'.

Signed-off-by: Camila <hello@camila.codes>
2022-04-06 10:38:01 +02:00
Camila
ead4eeda1e
Windows fix: activityIndex was not being passed to the lambda slot function.
Signed-off-by: Camila <hello@camila.codes>
2022-04-06 10:38:00 +02:00
Camila
c254572e80
Add 'Reply' as activity link instead of changing the 'View chat' link.
- Align 'Reply' button.
- Do not display 'View chat' as a link: the 'View chat' action is active when
the user clickcs on the notification item in the tray window.
- Convert the QByteArray verb value to String.
- Handle logic to toggle the reply textfield in the QML code.

Signed-off-by: Camila <hello@camila.codes>
2022-04-06 10:38:00 +02:00
Claudio Cambra
a2e1c68c26 Fix broken activity icon and loading entries colour in unified search
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-04-05 16:41:11 +00:00
Camila
7cc2486d79
Address PR comments.
Signed-off-by: Camila <hello@camila.codes>
2022-03-28 16:04:54 +02:00
Camila
9b00e5268e
Rename functions.
Signed-off-by: Camila <hello@camila.codes>
2022-03-28 16:04:54 +02:00
Camila
a46482ca91
Fix background color so it switches with light/dark theme.
Signed-off-by: Camila <hello@camila.codes>
2022-03-28 16:04:54 +02:00
Camila
0890a78262
Display input once user clicked on Reply.
Signed-off-by: Camila <hello@camila.codes>
2022-03-28 16:04:54 +02:00
Camila
b2056187a0
Let qml know the message reply was sent.
Signed-off-by: Camila <hello@camila.codes>
2022-03-28 16:04:54 +02:00
Camila
94530b6305
Rename data role.
Signed-off-by: Camila <hello@camila.codes>
2022-03-28 16:04:53 +02:00
Claudio Cambra
3d086ae305 Fix dark mode stuff relating to unified search, fix macOS auto dark/light theme switching not always working, fix Windows detection of dark/light theme switching
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-28 09:21:35 +00:00
Claudio Cambra
bbd988d8c5 Fixes to UI issues
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-20 16:32:43 +00:00
Claudio Cambra
98e297bf0b Fix for VFS crashes
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-19 23:31:24 +01:00
Claudio Cambra
c342c304ac Added dark mode
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-18 16:43:15 +00:00
Camila
73bae8cd30
Add TalkReply class and tests.
- Add struct TalkNotificationData to handle token and messageId.
- Handle chat and call notifications with the new struct.
- Add talk token and messageId to data roles in ActivityListModel.
- Add Talk Reply component to the ActivityList.
- User Loader to display the TalkReply component.
- Move Talk Reply from ActivityItem to ActivityItemContent due to PR #4186.
- Use TextField instead of Text.
- Disable send reply button instead of changing border color when field is empty.

Signed-off-by: Camila <hello@camila.codes>
2022-03-17 17:50:33 +01:00
Claudio Cambra
65f2bada3e Add thumbnails for files in the activity view
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-17 10:46:09 +00:00
Claudio Cambra
f585b8bd48 Add support for server color theming by using server color as accent
color

Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-16 13:57:45 +01:00
Claudio Cambra
02f3a1aed6 File activity dialog now works for all file actions activities (e.g. deleted files)
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-16 08:38:14 +01:00
Claudio Cambra
ead4cc6fe3 Increase max line of text in activity item text to two
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-15 09:22:11 +00:00
Claudio Cambra
2f795df701 Ensure file activity dialog appears in centre of screen
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-03-13 22:11:26 +00:00
alex-z
ae44dd5978 Adjust icons for activity entries in main dialog. Refactor the dialog by splitting it to separate components.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2022-02-04 17:52:37 +02:00
Claudio Cambra
a2524763c8
Merge branch 'master' into bugfix/account-menu-scroll 2022-02-01 17:01:51 +01:00
Claudio Cambra
ce5494b4ec Add testing for ActivityListModel
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-02-01 13:57:08 +00:00
Claudio Cambra
7a1eae45d3 Account menu can now scroll
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-31 15:06:55 +00:00
Felix Weilbach
99457e8c38 Use the font size that Qt suggest
Fixes: https://github.com/nextcloud/desktop/issues/3797

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2022-01-17 11:11:57 +00:00
Claudio Cambra
2a27882307 Show only filenames in tray activity items, with full path in tooltip
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2022-01-14 08:02:08 +00:00
Claudio Cambra
8c091a2daa Hide share button for deleted and ignored files in tray activity
Signed-off-by: Claudio Cambra <claudio.cambra@gmail.com>
2021-12-20 16:07:11 +00:00
Carl Schwan
38ac585e7c Add WheelHandler to the Search result list too
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-11-22 11:18:18 +00:00
Carl Schwan
892d289f38 [tray] Makes scrolling with a touchpad in activiy list more natural
This basically use the same method that is used in Kirigami and Plasma
Components3.

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-11-22 11:18:18 +00:00
alex-z
911e35bc50 Use QUrl::fromLocalFile to open local files in Unified Search results.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-11-18 09:34:54 +00:00
Matthieu Gallien
c59f88ca82 avoid adding icon data in a cache we never use
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-11-16 16:11:44 +01:00
Carl Schwan
d84673376d More fixes to the menu implementation
Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-11-16 09:27:10 +00:00
Carl Schwan
69def04ec2 Fix focus indicator
This improve considerably the keyboard navigation in the SystemTray.
But this is still not as good as the golden standard that is recommended
by this article: https://www.sarasoueidan.com/blog/focus-indicators/

Signed-off-by: Carl Schwan <carl@carlschwan.eu>
2021-11-16 09:27:10 +00:00
Felix Weilbach
07a8e8c91d Check if the server has user status app enabled
According to
https://docs.nextcloud.com/server/latest/developer_manual/client_apis/OCS/ocs-status-api.html#user-status-retrieve-statuses
we should check the user status capability, not the the end points.

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-11-15 16:20:58 +00:00
Felix Weilbach
3e368ee4df IconJob: Send request through the accounts NAS
This helps tracking requests on the server

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-11-10 13:11:49 +01:00
alex-z
2f3c58daac Fix review comments. Use QImage for QML and QPixmap for rest of code. Do not cache images for QML. Fix tests. Use signal in QML.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-11-04 20:50:51 +00:00
alex-z
0b8ab5c079 Use SvgRenderer for Unified Search input icons. Refactor IconUtils. Extend unit tests.
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-11-04 20:50:51 +00:00
alex-z
0d8375e798 Clear Unified Search Input Field in a proper way
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-11-04 20:50:51 +00:00
rakekniven
c39b97adb3
Update UnifiedSearchInputContainer.qml
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2021-10-26 10:44:07 +02:00
rakekniven
beffd63512
Changed triple dot to ellipsis
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2021-10-26 07:35:47 +02:00
Matthieu Gallien
69d6f4acec our source code files have lower case names
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-10-25 15:38:21 +02:00
alex-z
c1dab7e4cb Unified Search via Tray window
Signed-off-by: alex-z <blackslayer4@gmail.com>
2021-10-25 14:45:05 +03:00
rakekniven
91884eef4a Changed wording to suggestion
Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2021-10-23 07:06:23 +00:00
rakekniven
fb3c740129 Changed wording of status message
The files themselves have no problem. The sync process has problems. 

Signed-off-by: rakekniven <2069590+rakekniven@users.noreply.github.com>
2021-10-23 07:06:23 +00:00
Felix Weilbach
9f35fa6d3d Also update sync state summary based on connectivity
Otherwise, with zero folders configured, the state will stay at
offline.

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-10-20 12:31:55 +02:00
Felix Weilbach
0792dc36c2 Check if current user exists before getting it's account state
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-10-13 11:25:13 +02:00
Felix Weilbach
4c11f6763e Show sync progress in main dialog
Fixes #3662

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-10-12 16:14:24 +00:00
Felix Weilbach
0c9dce1154 Add file activity dialog
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-10-05 12:41:34 +00:00
Felix Weilbach
d3d8b1c631 Add dialog to resolve invalid filenames
Fixes #3751

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-09-23 10:45:15 +00:00
Felix Weilbach
8a8d488454 Add dialog to set user status
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-09-09 11:18:22 +02:00
Felix Weilbach
fa37f5c2bc Don't create binding loop
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-09-03 11:48:42 +00:00
Felix Weilbach
8a2097e7b9 Implicitly defined onFoo properties in Connections are deprecated
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-09-03 11:48:42 +00:00
Matthieu Gallien
25669938fd let clang-tidy add missing override after enabling again the check
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-08-31 08:35:56 +00:00
Felix Weilbach
ccd27870a7 Don't compare integers with different signs
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-08-11 20:20:39 +00:00
Felix Weilbach
7bb0c588c1 Don't constrain size of hover background
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-07-28 10:29:04 +00:00
Felix Weilbach
a421ebf01c Make main dialog normal window when displayed as regular window
This will enable users to minimize the dialog.

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-07-22 10:34:13 +02:00
Camila
6886d6213a
Add custom component ActivityItem.
That also addresses QML warnings.

Signed-off-by: Camila <hello@camila.codes>
2021-07-21 17:03:26 +02:00
Camila
79dd4f73fe Fix QML warning: Unable to assign [undefined] to QFont.
Signed-off-by: Camila <hello@camila.codes>
2021-07-21 14:46:04 +00:00
Felix Weilbach
4e95e32791 Call setClosed() on correct Object
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-07-20 12:56:00 +02:00
Matthieu Gallien
064f64f06d fix width of user status message to not overlap other elements
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-07-16 15:19:20 +00:00
Matthieu Gallien
260e1d77f5 clean indentation in UserLine.qml
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-07-16 15:19:20 +00:00
Matthieu Gallien
c2602135ab fix size of the Label with user status
ensure the label width is not higher than the parent to ensure log
string get elided as expected

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-07-16 13:04:33 +00:00
Felix Weilbach
036db9d22d Position main dialog on at tray icon if not a regular window
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-07-14 18:27:50 +02:00
Felix Weilbach
efaccbd6fd Show main dialog as normal window if tray icons not available
Fixes #3307

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-07-12 14:10:26 +00:00
Matthieu Gallien
c27fc1be4a use fallback icons for activities without icons
Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-06-30 11:28:13 +00:00
Matthieu Gallien
269d225511 directly send the icon url for activities to teh qml component
should allow usage of default cache from Image qml standard component

Signed-off-by: Matthieu Gallien <matthieu.gallien@nextcloud.com>
2021-06-30 11:28:12 +00:00
Camila
7ddc4ca170 Remove extra RowLayout.
Signed-off-by: Camila <hello@camila.codes>
2021-06-16 07:55:33 +00:00
Camila
449fda16e1 Fix QML Warning: ReferenceError: PopupMenu is not defined.
Signed-off-by: Camila <hello@camila.codes>
2021-06-16 07:55:33 +00:00
Camila
19e581657d Fix QML warning: Cannot specify left, right... anchors for items inside Row.
Signed-off-by: Camila <hello@camila.codes>
2021-06-16 07:55:33 +00:00
Camila
5585f61cc0 Fix QML warning: Detected anchors on an item that is managed by a layout.
Signed-off-by: Camila <hello@camila.codes>
2021-06-16 07:55:33 +00:00
Camila
c8edb11228 Fix QML warning: Accessible must be attached to an Item.
Signed-off-by: Camila <hello@camila.codes>
2021-06-16 07:55:33 +00:00
allexzander
a3d12a616b Add error message to GUI.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-06-15 14:33:45 +03:00
Camila
f758157973 Fix aligment emoji + message on Windows.
Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:53 +00:00
Camila
8d2264e027 Display the user status emoji separated from the message.
It allows to align the emoji with the message.

Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:53 +00:00
Camila
1cb7f63575 Remove signal refreshCurrentUserGui.
Use only QML property bindings to refresh the UI.

Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:53 +00:00
Camila
46f7cd3884 User property isConnected instead of a invokable.
Remove unnecessary connection to refreshCurrentUserGui signal.

Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:53 +00:00
Camila
1adde8d547 serverUserStatus => serverHasUserStatus.
Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:53 +00:00
Camila
73da14040b Rename ServerUserStatusRole to ServerHasUserStatusRole.
- serverHasUserStatus Q_PROPERTY is CONSTANT.
- Fix code style.

Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:53 +00:00
Camila
828881d82a Do not display the folder status if there are no folders being synced.
Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:53 +00:00
Camila
4326eb53ba Fix margins and sizes to align both avatar + user status displays.
Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:52 +00:00
Camila
f7e9e31bc9 Rename isDesktopNotificationsAllowed property to desktopNotificationsAllowed.
- User !== instead of !=.
- Fix code style.

Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:52 +00:00
Camila
820e97cd9b Do not display the user status if there is no pre defined message.
Display the server url instead.

Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:52 +00:00
Camila
c793cbe593 Always display the server url in the drop down account menu.
Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:52 +00:00
Camila
419595ce5e Use DesktopNotificationsAllowedRole to check if user is online.
Rename ServerUserStatus to ServerUserStatusRole.

Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:52 +00:00
Camila
bd65eee278 Remove unused methods in UserModel.
Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:52 +00:00
Camila
671b099c98 Check if the user is connected and if the server supports user status.
Signed-off-by: Camila <hello@camila.codes>
2021-05-25 06:55:52 +00:00
Felix Weilbach
696979cb0e Display invalid filenames as warning
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-04-13 14:58:51 +00:00
Felix Weilbach
b736355985 Add notification cache
The notification cache helps to not display duplicate desktop
notifications to the user.

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-04-13 14:58:50 +00:00
Camila
29f4a3857b Reposition qml elements for the folder status icon.
Signed-off-by: Camila <hello@camila.codes>
2021-04-08 07:10:59 +00:00
Camila
50de12b3c3 Undo unnecessary removal of lines.
Signed-off-by: Camila <hello@camila.codes>
2021-04-08 07:10:59 +00:00
Camila
163015492a Fix #3067: missing apps icon.
Signed-off-by: Camila <hello@camila.codes>
2021-04-08 07:10:59 +00:00
Camila
d2b762aa66 Move curly brackets to the correct line.
Signed-off-by: Camila <hello@camila.codes>
2021-04-08 07:10:59 +00:00
Camila
98cfc362f7 Remove const and reference of base types.
Signed-off-by: Camila <hello@camila.codes>
2021-04-08 07:10:58 +00:00
Camila
9219926a74
Add checks in case userStatus is not available/fails on the server side.
Signed-off-by: Camila <hello@camila.codes>
2021-03-24 15:42:26 +01:00
Camila
d9a0778e52
Add UserStatus enum with the pre defined status.
- User QHash to map status strings and Status enum.

Signed-off-by: Camila <hello@camila.codes>
2021-03-24 15:41:31 +01:00
Camila
974e2fb718
Do not display notifications when user status is do not disturb.
- This information is retrieved from the notifications endpoint.
- Add icons for the different pre defined status.
- Make functions available to QML to decide which status icon to display.
- Display the user status icon on the avatar and
move the online/offline connection status to the folder icon.

Signed-off-by: Camila <hello@camila.codes>
2021-03-24 15:40:05 +01:00
Camila
f4d8699db8
Add UserStatus class to retrieve the user status.
- AccountState controls UserStatus.
- Display user status in the system tray menu next to user's avatar.

Signed-off-by: Camila <hello@camila.codes>
2021-03-24 15:39:13 +01:00
Felix Weilbach
e3ac63e9ff Rename isActivityIgnored() to isUnsolvableconflict()
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-03-11 09:42:38 +00:00
Felix Weilbach
05d31e2e53 Split content of User::isValueableActivity()
Refactoring of User::isValueableactivity() because of changes
introduced with merge commit f17c52d.

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-03-11 09:42:38 +00:00
Felix Weilbach
63dbb90bbd Iteration
Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-03-05 11:32:44 +00:00
Felix Weilbach
ef5abac567 Fix crashes with conflict dialog
When the client runs and a conflict gets detected, the sync engine runs
two times.

On the first run, the sync engine detects the conflict, marks the
file as a conflict and propagates that to the GUI. This leads to an
error notification with the original filename in the main dialog.

The sync engine runs then a second time. On this second run, the file
that originally caused the conflict is not anymore a conflict
file. Instead, the sync engine detects the conflicted copy and
propagates that file as a conflict to the GUI.

When opening the conflict dialog with the original file name (not the
conflicted copy) a crash happens. Usually, the two sync runs are really
fast, so the user does not notice the first notification. However, a
problem can occur if a conflict gets created while the client is not
running. Since then, the client does not do two sync runs. It does only
run once.

Signed-off-by: Felix Weilbach <felix.weilbach@nextcloud.com>
2021-03-05 11:32:44 +00:00
allexzander
013f3cea70 Validate sensitive URLs to onle allow http(s) schemes.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-02-09 15:00:35 +02:00
allexzander
8c4d5333c1 Use push notifications for Tray activities/notifications fetch trigger.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2021-01-27 19:53:28 +02:00
Felix Weilbach
51d8cf8102 Start file conflict resolve dialog asynchronous
Fixes #2804

Signed-off-by: Felix Weilbach <felix.weilbach@t-online.de>
2021-01-27 08:01:25 +00:00
Kevin Ottens
8c4bd2bb52 Ensure a sync happens after a conflict resolution
You'd expect that after a conflict resolution the file watcher would
pick up the change and trigger a sync. For some reason it doesn't seem
to happen on at least some Ubuntu systems. In such cases the user would
then still have a stale conflict entry in the activity list and wouldn't
be able to do anything with it.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-15 09:40:57 +00:00
Kevin Ottens
d640076454 UserModel: check indices are inside the user list
The model was just checking for the user list being empty or not which
is overly optimistic. Indeed there might be cases where the id is
actually outside the boundaries so properly check for this.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-12-15 08:43:32 +00:00
Camila
cfbd22b5e7
Use the icon color property to color the icons in the tray window header.
The icon color is set with APPLICATION_WIZARD_HEADER_TITLE_COLOR in the
theme.

Signed-off-by: Camila <hello@camila.codes>
2020-12-10 17:43:45 +01:00
allexzander
f04281cb69 Implemented notification action buttons and context menu for confirm/dismiss and other actions.
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-12-02 08:08:37 +00:00
allexzander
665a8c4217 Use dynamic path for account online/offline state icon. Refresh GUI on connection state change.
Signed-off-by: Alex Zolotov <alex.zolotov.nextcloud.com>
Signed-off-by: allexzander <blackslayer4@gmail.com>
2020-11-23 17:49:25 +02:00
Kevin Ottens
24964e2b9b Ensure we quickly show/hide the systray window on startup
This is quick enough that no flickering should appear in practice.

We end up doing this because for some reason on Windows (I dug up deep
into the Windows QPA without nailing it down) not showing that systray
window at least once prevents the app object to return from exec() when
the session ends.

It's as if that window would be in some limbo state (neither opened nor
closed) which would prevent quitting. Clearly what we're doing here is a
workaround...

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-22 17:31:05 +00:00
Kevin Ottens
b835092ae9
Use the ConflictDialog directly from the activity list
No need to go to the file manager first to then have the user go through
the context menu, just popup the dialog directly.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-22 16:40:47 +02:00
Kevin Ottens
4116c90c9c
Move the activity action behavior on the C++ side
We better do this before this business logic grows in the QML side and
gets out of control. We'll need finer grained information due to the
conflict handling anyway.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-22 16:40:46 +02:00
Kevin Ottens
c42f4abd25
Add a function to know the user id matching a given account
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-22 16:40:46 +02:00
Kevin Ottens
de63e5e221
Don't hardcode the color of text in the header
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-21 13:40:42 +02:00
Kevin Ottens
0e9efe728a
Get rid of ncBlueHover
Use a similar trick of a semi-transparent rectangle on top when the
mouse area is hovered. This way it will always work whatever is the
background color.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-10-21 11:24:06 +02:00
Nicolas Fella
206c98688e Avoid string translation puzzle
Combining translated strings like this makes them hard to translate since the order of words is different between languages.
Use proper placeholder strings instead.

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-10-12 13:34:50 +00:00
Nicolas Fella
f5860928d9 Make QML code more declarative by using properties
By using properties and property bindings the QML code gets more declarative rather than imperative, which is considered better.

This patch:
- Introduces a currentUserId property in UserModel that replaces the equivalent Q_INVOKABLE call
- Introduces an avatar property in User that contains the avatar's image provider url without any fallback
- Introduces new image provider urls for fallback images
- Moves the fallback image selection to QML since we want different fallbacks according to where it is used
- Wires up the necessary signals to propagate a changing avatar

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-10-12 11:00:20 +00:00
Camila
954544830d Add a clickable icon for Talk notifications.
Signed-off-by: Camila <hello@camila.codes>
2020-09-30 08:46:01 +00:00
Camila
dc12cdf196
Correct the object name returned by the api.
The id was always 0 so no new systray messages were displayed.

Signed-off-by: Camila <hello@camila.codes>
2020-09-29 18:53:28 +02:00
Camila
d2eb24a9a8
Connect signal guiLog to slot to display systray message.
Signed-off-by: Camila <hello@camila.codes>
2020-09-29 18:53:28 +02:00
Valdnet
d50ad548d2
l10n: Remove space from string text 2020-09-29 14:39:34 +02:00
Dominique Fuchs
b96b7e20c7 emitting signals from Qts Accessibility interaction invocations instead of duplicating actions
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-09-28 12:38:21 +00:00
Dominique Fuchs
1053c58b0f KISS. Removed description for now, instead clarified some Accessible.name
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-09-28 12:38:21 +00:00
Dominique Fuchs
8abe4219a5 Added missing qsTr() calls - again
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-09-28 12:38:21 +00:00
Dominique Fuchs
a69898371f Added missing qsTr() calls
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-09-28 12:38:21 +00:00
Dominique Fuchs
a4151d71bc Fix typo
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-09-28 12:38:21 +00:00
Dominique Fuchs
3287ec2387 Typo fixes, minor additions
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-09-28 12:38:21 +00:00
Dominique Fuchs
c6047e4d63 Re-add wrongly delete action
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-09-28 12:38:21 +00:00
Dominique Fuchs
43bf703806 Initial accessibility declarations for tray window qml src
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-09-28 12:38:21 +00:00
Kevin Ottens
78b03739a7
Force tooltip wrap mode because it's not enabled in Qt 5.12...
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-09-24 14:47:56 +02:00
Jeremy Plsek
3a53afd704 Remove "This includes" due to tooltip order
Signed-off-by: Jeremy Plsek <jeremyplsek@gmail.com>
2020-09-21 09:46:25 +00:00
Kevin Ottens
3171cb2720 If there's no description just say nothing
Otherwise we get lots of "No description available" lines in the
activity list which is basically noise. Also trains the user to ignore
the secondary line.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-09-18 17:46:38 +00:00
Jeremy Plsek
797df2b5d5 Include list info in tooltip
Also extend the tooltip timeout

Signed-off-by: Jeremy Plsek <jeremyplsek@gmail.com>
2020-09-15 10:04:06 +00:00
Kevin Ottens
6ee37b5975 Make sure menu are closed when button is clicked again
This way we also made sure all the Menu are currently on the same close
policy.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-09-15 08:46:10 +00:00
Kevin Ottens
f7efe6a902 Delay binding on the menu width
Indee the MenuItem might not be linked to its Menu at creation time
which will make the binding fail and give a warning. Delay for the menu
availability.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-09-15 08:46:10 +00:00
Kevin Ottens
eb0cedebfa Remove pre-QQC2.3 workaround
Now that we depend on Qt 5.12 anyway, the count property is available
just fine on the Menu item.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-09-15 08:46:09 +00:00
Kevin Ottens
01986df8ca Don't use a confusing "royal you" in the sync messages
Users get rightfully confused with the "You changed ..." messages in the
activity list for syncs. Indeed, some of those changes might be coming
from the server in which case we don't really know who did the change.

So now we use the old "Synced ..." messages for changes pulled from the
server and we have a more precise "You changed ..." (renamed, deleted,
created) when the changes were initiated locally (since there we know
the user reading the message did it).

Also changed how the messages are constructed so that they can be
properly translated.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-09-10 15:40:05 +02:00
Camila
95f634ce28 Click on activity list in systray open file in the file manager.
Clean up code, add more const and auto.

Signed-off-by: Camila <hello@camila.codes>
2020-09-09 20:06:46 +02:00
Camila
c1086c9886 Fix tooltip for activity info.
Also improves readability of the items in the list.

Signed-off-by: Camila <hello@camila.codes>
2020-09-09 20:06:46 +02:00
Kevin Ottens
1a0945a973 Enable all the misc clang-tidy check except one
This flagged mostly unused parameters. Didn't enable the
misc-non-private-member-variables-in-classes check as we got a lot of
those. Hopefully we'll get to fix them at some point but that feels too
early and too much work for now.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-08-31 09:14:09 +02:00
Kevin Ottens
ed5e9de9f6
Present sharing of E2EE files from the main dialog too
The visibility of the share button for the activity list is tied to the
path role in the ActivityListModel, so make sure we don't return a path
for E2EE files and folders.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-08-20 14:53:14 +02:00
Kevin Ottens
866ffc2a6b Enable the modernize-loop-convert check on clang-tidy
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-08-13 12:55:14 +00:00
Kevin Ottens
2f8c29082a Enable the modernize-use-equals-default check on clang-tidy
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-08-13 14:19:42 +02:00
Kevin Ottens
cdf6e7d72b Enable the modernize-user-nullptr check on clang-tidy
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-08-12 19:45:25 +02:00
Kevin Ottens
d58ec4bf70
Enable the modernize-use-using check on clang-tidy
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-08-12 18:18:57 +02:00
Camila
8f300ffe66 Remove extra check for talk app on server in AccountState.
- Remove repeated hard coded "spreed" string.

Signed-off-by: Camila <hello@camila.codes>
2020-08-04 16:28:19 +00:00
Camila
6d6cc3852b Fix #2243: use server url instead of hard coded string.
Signed-off-by: Camila <hello@camila.codes>
2020-08-04 16:28:19 +00:00
Camila
e89177b25b Add OpacityMask to fix mouse hover on round corner.
- Fix for #2173.
- Removed the workaround for the left round corner which was also
fixed with the OpacityMask.

Signed-off-by: Camila <hello@camila.codes>
2020-07-28 11:19:22 +02:00
Stephan Beyer
e32bd75519 Set maximum height of account and app menu
The menus may become too large if they have too many items
(the account menu has this in case of many accounts, the apps
menu in case of many apps).  This commit limits the maximum
height such that the menus do not hide the header.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
2020-07-07 17:35:09 +02:00
Kevin Ottens
b98cf0a029 Reach out to the contentItem inside of the ListView to find the width
Turns out that the ListView embedded in the Menu (reachable via
contentItem) would create a binding loop if we're using its
childrenRect. But really we're interested in the total width for the
instantiated delegate *inside* the ListView. That's why we go one level
deeper and get the childrenRect of the inner contentItem instead.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-07-06 20:39:42 +00:00
Kevin Ottens
d3d713ff9c Fix the hover for the other menu items
Ultimately we would avoid the code duplication by creating our own
proper QQC2 style instead of directly tuning everything. That's a battle
for another time (more elements would need to be adjusted for that, I
don't want to dilute this branch too much).

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-07-06 20:14:57 +02:00
Dominique Fuchs
180f191014 Fix hover cutoff in apps menu
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-07-06 20:14:57 +02:00
Camila
fdc160460b Fix #2085 new tray menu.
Update systray behavior and context menu:
- left click brings up the new QtQuick based dialogs on all latforms
- right click brings up the new QtQuick based dialog on Mac OS only
- right click brings up a context menu on all other platforms than Mac OS
- "Quit Nextcloud" => "Exit Nextcloud"
- Add "Open main dialog" option.

Signed-off-by: Camila <hello@camila.codes>
2020-07-02 19:21:10 +02:00
Stephan Beyer
080505ef46 Simplify tray window positioning
The Qml position setting code is moved to C++, which allowed to get rid
of the currentScreenIndex() method (which seemed to be just a detour to
pass the screen from C++ to Qml).

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
2020-06-26 12:03:26 +00:00
Michael Schuster
d71249bb6e Fix crash in UserModel::currentUser() and add more sanity checks
Commit 07bede8 (PR #1892) introduced a new helper method currentUser()
that didn't check for _users.count() thus causing to throw an
"index out of range" exception when no accounts are configured.

This commit uses the opportunity to add more sanity checks to UserModel.

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-25 20:52:30 +02:00
Stephan Beyer
3f4ed0883a Make sure the menu separator uses Style.menuBorder color
In case the default color value will ever change, this
commit makes sure that the colors of the menu border and
the menu separator coincide.

Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
2020-06-22 06:54:57 +00:00
Kevin Ottens
4f7a6cfb1d Make activity items with a link clickable
We then get more items clickable, in particular the bottom one proposing
to open the activity application. Now we can click it and it opens the
activity application straight away.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-16 18:52:20 +02:00
Kevin Ottens
f147e5a66f Don't use a bright blue color for menus
As advised, use a light gray instead, this electric blue was a bit too
much.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-16 18:52:20 +02:00
Kevin Ottens
bc863584db Don't duplicate file name in the info line
For the "Activity" type activities, displayPath contains the file name
which is also in the subject. This was redundant, so now we don't
display an info line at all for that type of activities.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-16 18:52:20 +02:00
Kevin Ottens
f8e2e3403a Close all menus on window show
We previously missed the app menu which wasn't closed.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-16 18:52:20 +02:00
Nicolas Fella
07bede8a56 Use properties to get user details
Convert imperative QML code to declarative code using property bindings

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-06-16 15:01:37 +02:00
Nicolas Fella
a12205f322 Port from context properties to singletons
Context properties are deprecated and will be removed in Qt 6.
QML singletons are the better option here, especially given that
UserModel and UserAppsModel already are singletons.

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-06-16 14:34:59 +02:00
Nicolas Fella
be2e5266aa Create HeaderButton QML component
Deduplicate the Button code by moving it into a separate file.

Also use the same background code for the apps button since as far as I can tell it didn't behave any different

Signed-off-by: Nicolas Fella <nicolas.fella@gmx.de>
2020-06-15 20:52:41 +02:00
Michael Schuster
44a9200c5d Fix crash caused by setting Tray window screen pointer on the QML side
Seems like Qt sometimes doesn't like the QML window's screen property to be set
to a C++ (QVariant) pointer value, so we use the index: Qt.application.screens[]

See Qt docs: https://doc.qt.io/qt-5/qml-qtquick-window-window.html#screen-prop

This fix returns the matching window's index from the QGuiApplication::screens()
list to the QML side, instead of the window pointer.

Steps to reproduce the crash with the previous code:
- Open the Tray menu and close it a few times,
  or scroll randomly up and down in its activity list.

Tested with Qt 5.12.5

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-15 12:32:25 +00:00
Kevin Ottens
40824dc427 Get rid of screenIndex
This was leading to the same logic being duplicated several times. It's
fine to return the QScreen* on the QML side directly but wrapped into a
QVariant.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-15 12:32:25 +00:00
Kevin Ottens
6c6dfb15a7 Move all the position computation on the C++ side
The API is just more convenient there, the rect and point types on the
QML side are just pale shadow of their C++ counterparts.

Also improved a bit the constness of the Systray class.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-15 12:32:25 +00:00
Kevin Ottens
83b36b4ab0 Rename tbOrientation into taskbarOrientation
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-15 12:32:25 +00:00
Kevin Ottens
aa90237e94 Introduce a screenRect as coordinate space
The top left corner of that screenRect is (0,0) or based on
(virtualX,virtualY) depending on the platform. This leads to easier
reduction in code duplication.

Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-15 12:32:25 +00:00
Kevin Ottens
65e8f33ccf Use TaskBarPosition enum on the QML side
Signed-off-by: Kevin Ottens <kevin.ottens@nextcloud.com>
2020-06-15 12:32:25 +00:00
Dominique Fuchs
a6f918f3c2 More simplifications, also transfer of more tray positioning logic to C++ backend.
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-06-15 12:32:25 +00:00
Dominique Fuchs
f44df7f61a Major multi monitor improvements and rewrite of tray window positioning
Signed-off-by: Dominique Fuchs <32204802+DominiqueFuchs@users.noreply.github.com>
2020-06-15 12:32:25 +00:00
Michael Schuster
456c1eadbe
Simplify nullptr comparisons where appropriate
Make the codebase consistent, we already have a lot of implicit pointer comparisons.

Exception: Stay explicit on return's, example:
  return _db != nullptr;

Signed-off-by: Michael Schuster <michael@schuster.ms>
2020-06-11 00:27:30 +02:00
Stephan Beyer
0f620acc1f Replace prefixing of paths with file:// by QUrl::fromLocalFile()
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
2020-06-09 16:45:46 +02:00
Stephan Beyer
749070a29c Hide openLocalFolderButton if no local folder is configured
Signed-off-by: Stephan Beyer <s-beyer@gmx.net>
2020-06-09 16:45:46 +02:00