Commit Graph

452 Commits

Author SHA1 Message Date
miruka
aa8dbce3a7 Re-add local unread "counter" similar to 0.5.0 2020-06-26 05:59:11 -04:00
miruka
213867750d Add unimplemented auth popup for deleting devices 2020-06-26 04:30:47 -04:00
miruka
a22c8ba3ad Account: remove line break after "User ID:" 2020-06-26 03:19:58 -04:00
miruka
78c04e6404 Fix flickable pages keyboard scrolling 2020-06-26 03:16:36 -04:00
miruka
2e610cf167 Correctly size the device list page 2020-06-26 02:51:31 -04:00
miruka
eca801df4c Fix laggy device list loading 2020-06-26 02:36:40 -04:00
miruka
ce1373653a Improve device list footer
- Always visible
- Add a refresh button
- Will no longer make the list slowly grow
2020-06-26 02:32:25 -04:00
miruka
cddf4ac2fe Reload section item counts on verify/blacklist 2020-06-26 02:20:12 -04:00
miruka
edc73c6952 Implement blacklisting from verification key popup 2020-06-26 02:16:00 -04:00
miruka
bcbc356a98 Implement manual key verification popup 2020-06-26 02:09:59 -04:00
miruka
d35173adc3 Correctly handle & warn about key-less devices 2020-06-25 16:10:44 -04:00
miruka
308771f0bf Limit max device name length to 255 2020-06-25 12:37:05 -04:00
miruka
ee5675bc9b Add apply button to device renaming field 2020-06-25 12:36:36 -04:00
miruka
51327d810b Implement device renaming 2020-06-25 12:11:11 -04:00
miruka
3001131ffa Fix DeviceSection number vertical alignment 2020-06-25 11:26:21 -04:00
miruka
dcc634be04 Page & popups: standardized keyboard accept/cancel 2020-06-25 10:27:24 -04:00
miruka
78affeddd9 Room settings avatar color: respond to name field 2020-06-25 10:06:03 -04:00
miruka
d5ea248ba1 Account page: spinners while profile is loading 2020-06-25 10:00:34 -04:00
miruka
da4a5ab5cd Rework HBox-based pages and account settings
- Refactor everything about HBox, and adapt all the pages and popups
  that used it

- Replace HTabContainer by HTabbedBox

- Make boxes swippable

- Make esc presses in boxes click the cancel button

- Make all boxes and popups scrollable when needed

- Replace generic apply button icons in popups

- Fix tab focus for error and invite popups

- Rework (still WIP) the account settings page:
  - Use the standard tabbed design of other pages
  - Ditch the horizontal profile layout, hacky and impossible to extend
  - Add real-time coloring for the display name field

- Implement a device list in account settings (Sessions, still WIP)
2020-06-25 08:49:27 -04:00
miruka
ad36fc72f4 Fix Connections deprecation warning on Qt 5.15
Adopt the correct behavior to get rid of
"QML Connections: Implicitly defined onFoo properties in Connections
 are deprecated. Use this syntax instead:
 function onFoo(<arguments>) { ... }"
2020-06-22 14:11:56 -04:00
miruka
ae37e13c6e Use new scrollbars for scrollviews (ie text areas) 2020-06-22 13:57:49 -04:00
miruka
f2f4643189 Remove event list scrollbar padding 2020-06-22 13:10:48 -04:00
miruka
d4350f6e86 Borders for HTextArea 2020-06-06 21:54:13 -04:00
miruka
0f679956ec Fix topic text area inside scrollview 2020-06-05 06:33:55 -04:00
miruka
e5d64f76b7 Limit max height of room settings topic area 2020-06-05 05:48:25 -04:00
miruka
3314489a26 Make room settings pane scrollable
The new Base/ButtonLayout components will be used in the near future to
refactor other HBox-based components
2020-06-05 05:42:12 -04:00
miruka
43ed7b2eb9 Update highlighted room when adding new chat 2020-06-05 01:07:39 -04:00
miruka
5402a332d2 Fix updating read receipt
- Find the last event that wasn't sent by us to update the marker to,
  instead of picking whichever is the most recent

- Use the proper event ID instead of ID that could be a local echo

- Wait for the current marker update request to complete before trying
  to send a new one
2020-06-04 23:12:03 -04:00
miruka
106bb3546f Topic text areas: focus next item on tab 2020-06-03 04:58:09 -04:00
miruka
7f72373afe Implement editing & saving room settings 2020-06-03 04:52:33 -04:00
miruka
6772f14c24 Use a text area instead of field for room topic 2020-06-02 21:52:16 -04:00
miruka
241c16932f Immediatly update cached profile after changing it 2020-06-02 21:09:21 -04:00
miruka
8ec715eab7 Improve "user not found" error messages 2020-06-02 20:30:04 -04:00
miruka
bb7178a5c4 Handle bad gateway error when starting direct chat 2020-06-02 20:24:53 -04:00
miruka
eb2c98f67f Handle MatrixNotFound errors, not UserNotFound
UserNotFound doesn't exist anymore
2020-06-02 20:19:09 -04:00
miruka
e676473f82 HLabeledTextField → extensible HLabeledItem 2020-06-02 20:14:55 -04:00
miruka
835d1c486f Add markRoomReadMsecDelay setting 2020-06-01 18:57:17 -04:00
miruka
f686b96511 Cross-client unread counters & send read receipts 2020-06-01 09:25:09 -04:00
miruka
8b9681dc78 Rename HTextArea.append() → .insertAtCursor() 2020-05-30 23:08:21 -04:00
miruka
a91a0c18f7 Refactor Composer
- Have a simple HTextArea component instead of HScrollTextArea
- Split composer parts between multiple files
2020-05-30 23:08:21 -04:00
miruka
1fea162fac Give up finding last event to respond to after 1k 2020-05-22 00:18:44 -04:00
miruka
6c7335e5db Add keybind to open links in messages
Ctrl+O by default.
Opens externally all links in selecteds, focused or the last
message that has links.
Can't open files (media events) yet.
2020-05-22 00:10:45 -04:00
miruka
a48b1cedd0 Don't limit width of messages with code blocks 2020-05-20 11:08:02 -04:00
miruka
8823077a1c Composer: on escape, cancel any response 2020-05-20 07:19:02 -04:00
miruka
d6846b08d9 Fix debugFocusedMessage keybind 2020-05-20 07:12:00 -04:00
miruka
26074fabd5 Handle reply keybind when multiple events selected 2020-05-20 06:58:38 -04:00
miruka
d1d7bffc8f Add replyToFocusedOrLastMessage keybind (ctrl+Q) 2020-05-20 06:51:26 -04:00
miruka
b09b3b990b Clear reply-to when sending message 2020-05-20 06:20:24 -04:00
miruka
fb35a6ec14 Implement replying to event in backend 2020-05-20 06:19:13 -04:00
miruka
aa8d3cf8d3 Add reply GUI controls 2020-05-20 05:19:06 -04:00
miruka
5128f0d888 Base TypingMembersBar on new InfoBar component 2020-05-20 04:45:30 -04:00
miruka
63af4be1e2 Defer fetching user profiles for events
Previously, events for which the sender, target (state_key) or remover
was missing from the room members would have their profile fetched
from network when registering the event into models.

This could cause very slow past events loading times for rooms, since
the event registering function (which contained the profile retrieval
directives) is run sequentially event-by-event.

Missing profiles are now lazy-loaded when events come into the
user's view in the QML timeline.
2020-05-20 03:42:40 -04:00
miruka
a1b485c039 Add ownMessagesOnLeftAboveWidth setting
Replaces the theme eventList.ownEventsOnRightUnderWidth property.
Can be set to -1 to always keep our own messages on the right.
2020-05-16 14:37:45 -04:00
miruka
60ad7416d9 Add maxMessageCharactersPerLine setting
Can be set to -1 for no maximum width.
2020-05-16 14:37:34 -04:00
miruka
e147b87d1b Remove superfluous HTileDelegate, use HTile 2020-05-15 20:56:23 -04:00
miruka
bbb00dd8a0 Let escape presses work properly inside HDrawer
Also add escape to clear member filter when focusing the field, and
clearMemberFilterOnEscape setting.
2020-05-15 20:56:23 -04:00
miruka
45048e625c Fix UI parts focus keybind and buttons 2020-05-15 20:56:23 -04:00
miruka
8e0c046cdb MemberView: no need for onAdd transition hack now 2020-05-15 20:56:23 -04:00
miruka
e90312803b Fix event delegates extra bottom space 2020-05-15 20:56:23 -04:00
miruka
b4561ce50b Fix back/forward headers buttons in small window 2020-05-15 20:56:23 -04:00
miruka
37a9332aed Python filtered models for room members 2020-05-15 20:56:23 -04:00
miruka
c352275089 Maybe fix the DelegateModel + ListView.add bug 2020-05-15 20:56:23 -04:00
miruka
7418f0fe93 Add dedicated HStringFilterModel component 2020-05-15 20:56:23 -04:00
miruka
69a525d317 Replace SortFilterProxyModel by DelegateModel 2020-05-15 20:56:23 -04:00
miruka
744c6f1b3f Load all room members when showing a room to user 2020-05-15 20:56:23 -04:00
miruka
99d59bb49b Use filtered model strictly when neccessary 2020-05-15 20:56:23 -04:00
miruka
2cc3f27247 Add Ban to member context menu
Also don't try to load past messages in rooms we've left/been
kicked/banned from.
2020-05-15 20:56:23 -04:00
miruka
2d231b7af1 Properly check power levels before allowing kick 2020-05-15 20:56:23 -04:00
miruka
2a0a3765fc Add kick to room member context menu 2020-05-15 20:56:23 -04:00
miruka
3e10a6d530 Don't show popup when focusing unredactable event 2020-04-03 12:58:15 -04:00
miruka
1e049a0159 Unselect before unfocusing messages with keybind 2020-04-03 07:53:36 -04:00
miruka
0e04eafebd Redaction local echo for our other accounts 2020-04-03 07:53:36 -04:00
miruka
5cb013838b Be able to redact our other account's events 2020-04-03 07:53:36 -04:00
miruka
d991d04a8c Fix copying event when no selection or focused 2020-04-03 07:53:36 -04:00
miruka
f8fe5d812b Imrpove redacted events text 2020-04-03 07:53:36 -04:00
miruka
38cc0b1bc7 Ensure last event to delete is ours 2020-04-03 07:53:36 -04:00
miruka
5ea339ea33 Add keybinds for message removal 2020-04-03 07:53:36 -04:00
miruka
05319af858 Redaction code adjustments + theme addition 2020-04-03 07:53:36 -04:00
vSLG
e60a7f6dac Make "Remove" option conditional in context menu
Refactor code in the backend so things can work
better
2020-04-03 07:53:36 -04:00
vSLG
fc878e7537 Fix event redaction and remove junk code 2020-04-03 07:53:36 -04:00
vSLG
db1afc980e Add RedactionEvent support on backend 2020-04-03 07:53:36 -04:00
vSLG
b3f1075507 Add redacting event via context menu 2020-04-03 07:53:36 -04:00
miruka
554f5d6013 Fix need to press Esc twice to exit popups/menus 2020-04-03 07:53:36 -04:00
miruka
e33c202376 panes toggleFocus(): more reliable focus detection 2020-04-03 07:53:36 -04:00
miruka
4602366b9c debugConsole: add toggle() conveniance function 2020-04-03 07:53:36 -04:00
miruka
ad937573cf Rewrite HTile and adapt components using it
Rewrite HTile in a more standard way, hopefully fixing the
mysterious segfault on some systems
2020-04-03 07:53:36 -04:00
miruka
6e63569ad7 Add leaveRoom and forgetRoom keybinds 2020-04-03 07:53:36 -04:00
miruka
2a648d7f59 Add invite to room keybind 2020-04-03 07:53:36 -04:00
miruka
790229e188 Make DebugConsole keyboard-scrollable again 2020-04-03 07:53:36 -04:00
miruka
1038678a2f Refactor global shortcuts, simplify debug consoles
- Move out all shortcuts from their central file to the component they
  actually belong to

- Get rid of DebugConsoleLoader and the multiple consoles handling mess,
  have only one global console
2020-04-03 07:53:36 -04:00
miruka
6850ef26f5 Show details when login fails with unknown error 2020-03-29 11:48:04 -04:00
miruka
311a53f8f4 "Unselect" → "Deselect" 2020-03-27 07:06:38 -04:00
miruka
ff8fd01eb1 Fix copying selected non-message events 2020-03-27 05:38:29 -04:00
miruka
c03bf32a7b Theme color for eventList highlight 2020-03-27 05:09:49 -04:00
miruka
af6cdc9013 Rename HListView checking-related functions 2020-03-27 05:05:25 -04:00
miruka
3f69710813 Allow copying text from non-message events 2020-03-27 04:58:49 -04:00
miruka
936c49127d Add keyboard controls for message focus/selection 2020-03-27 04:49:01 -04:00
miruka
6ca10e1f2b Customizable unselectAllMessage keybind 2020-03-27 03:53:25 -04:00
miruka
ba86414ddf Implement shift+click/A-B message selection 2020-03-26 23:24:37 -04:00
miruka
e696c16fc8 Remove old drag-scrolling hack code 2020-03-26 22:22:07 -04:00
miruka
43c018d0a4 Improve "Copy text" text and availability 2020-03-26 22:00:00 -04:00
miruka
18f53829d9 Make composer/eventList ctrl-c work again 2020-03-26 22:00:00 -04:00
miruka
a61f1d5d04 Make selection look better 2020-03-26 22:00:00 -04:00
miruka
2d471b70f5 Single message text selection for mouses 2020-03-26 22:00:00 -04:00
miruka
3852357614 Start implementing new message selection system 2020-03-26 22:00:00 -04:00
miruka
710dba09ec Remove message text selection hack 2020-03-26 22:00:00 -04:00
miruka
f148837fae Remove Invite/LeftBanner avatar radius 2020-03-26 21:59:33 -04:00
Rinigus
d17c6334da Add pen as an input device to the right click handler 2020-03-24 19:52:48 +02:00
Rinigus
5058e3c13e Fix activation of right-click on touch devices 2020-03-24 16:43:31 +02:00
miruka
831dca3723 EventContent: avoid some false name detection 2020-03-23 16:50:12 -04:00
miruka
469992b650 Fix avatar size for one line events like m.emote 2020-03-23 16:10:13 -04:00
miruka
3c64b33cb7 Color user mentions 2020-03-23 13:30:40 -04:00
miruka
0682990666 Fix compact mode msg names on their own lines 2020-03-23 00:48:39 -04:00
miruka
53dfd08131 Add toggleCompactMode keybind, re-rename setting 2020-03-22 13:30:03 -04:00
miruka
18c16ca486 Rename compact mode setting → compactModeByDefault 2020-03-22 13:24:38 -04:00
miruka
d29b393ad2 Less vertical spacing between msgs in compact mode 2020-03-22 13:20:16 -04:00
miruka
ce7c986e5b Compact mode for messages 2020-03-22 13:05:35 -04:00
miruka
5d513f84fa Add compact mode for sidepanes + setting 2020-03-22 12:50:51 -04:00
miruka
73f14cac8e Fix room pane header buttons onClicked 2020-03-21 15:02:37 -04:00
miruka
373ce6b925 Make EventContent.contentText not readonly
For debugging (really)
2020-03-21 14:56:44 -04:00
miruka
ee6ac18671 Show pages headers to go back to pane when needed 2020-03-19 20:33:46 -04:00
miruka
2511a03045 Fix event debug returning wrong event json 2020-03-19 18:49:33 -04:00
miruka
03251f019e Really fix icon-only buttons alignment 2020-03-19 11:37:05 -04:00
miruka
b6b2e35221 Fix invite to room button alignment 2020-03-19 11:14:28 -04:00
miruka
aaf34a9312 Better example placeholder text for composer alias 2020-03-19 11:14:28 -04:00
miruka
fe40d117b2 Fix room pane default size 2020-03-19 00:13:19 -04:00
miruka
2f46656827 Add button in reduced room pane to go back to chat 2020-03-17 21:21:29 -04:00
miruka
adc6fc4af5 Fix visible room header overflow in small window 2020-03-17 18:19:26 -04:00
miruka
9585465461 No background for room header pane buttons 2020-03-17 18:06:19 -04:00
miruka
9981dfd682 Add room header pane buttons tooltips 2020-03-17 18:05:51 -04:00
miruka
a64d0f037d Make room header font size match main pane top bar 2020-03-17 17:34:09 -04:00
miruka
e495922aee Center room settings avatar 2020-03-17 17:16:03 -04:00
miruka
cf9df8d036 Focus an item when changing view in roomPane 2020-03-17 17:14:47 -04:00
miruka
53bace3915 Add keybind to toggle room pane focus 2020-03-17 16:52:14 -04:00
miruka
b092cc11eb Add room header buttons to access sidepanes 2020-03-17 16:52:11 -04:00
miruka
84734599e3 Fix lag with Alt+S when mainpane is collapsed 2020-03-17 14:48:14 -04:00
miruka
d96304dc33 Have labels for text fields 2020-03-17 14:24:35 -04:00
miruka
9a66afb4eb Delay msgs a bit more for faster room switching 2020-03-16 20:58:50 -04:00
miruka
d00db2256d PointHand cursor when "upload profile pic" hovered 2020-03-15 19:08:12 -04:00
miruka
de729e42d9 Notice event line: respect UI zoom 2020-03-15 19:08:12 -04:00
miruka
64d67234ab Fix room settings background 2020-03-15 19:08:12 -04:00
miruka
90a2773a8c Fix room header and composer avatar radius 2020-03-15 19:08:12 -04:00
miruka
ebab1e15c2 Add more control on radiuses from themes 2020-03-15 19:08:12 -04:00
miruka
1c23450805 Make events, checkbox, avatars respect radius 2020-03-15 19:08:12 -04:00
miruka
9d7bffcee8 Ignore alias in room with no permission to talk 2020-03-13 12:47:01 -04:00
miruka
8d6fcf5c88 Limit display name setting to 255 bytes 2020-03-13 12:18:31 -04:00
miruka
5d7aa0b142 Fix composer alias field label overflow 2020-03-13 12:16:09 -04:00
miruka
298043b3cb Prevent saving alias taken by other account 2020-03-13 12:10:47 -04:00
miruka
a0c42fe5a6 Example placeholder for composer alias 2020-03-13 11:44:47 -04:00
miruka
8c1c3ef05c Add explanation tooltip for composer alias 2020-03-13 11:35:05 -04:00
miruka
15afce3393 Fix invisible room pane filter placeholder text 2020-03-13 10:34:37 -04:00
miruka
5cee0f6c8a Improve overall theme and pane colors 2020-03-13 01:09:04 -04:00
miruka
02d09f405a Improve MainPane when reduced to minimumSize 2020-03-12 23:17:23 -04:00
miruka
ca53e18e24 Add main pane top bar, improve readability 2020-03-12 22:16:33 -04:00
miruka
b531ca0a4a Mention keys *until present time* are exported 2020-03-12 15:52:43 -04:00
miruka
04790b3ed3 EventList: Add missing QtQuick.Window import 2020-03-12 13:30:46 -04:00
miruka
9bad0132d6 Make upload cancelling instant without visual hack 2020-03-12 13:28:30 -04:00
miruka
8f19adf279 Don't show Chat spinner for short loadings 2020-03-12 13:28:30 -04:00
miruka
b26fe10810 Load Chat faster by delaying EventList loading 2020-03-12 13:28:30 -04:00
miruka
c8bf9a6e63 Optimize EventList cacheBuffer binding 2020-03-11 10:57:20 -04:00
miruka
5f6a23f051 Split HPage into more specialized components 2020-03-11 10:45:47 -04:00
miruka
a8c6538de1 Update register/reset not implemented labels 2020-03-10 09:03:56 -04:00
miruka
baac01d1ad Revise default theme 2020-03-10 08:58:14 -04:00
miruka
aafbecfdda Fix main pane highlight 2020-03-10 05:38:28 -04:00
miruka
49966e06ad Fix Transfer.time_left that could be None 2020-03-09 17:36:47 -04:00
miruka
46f3f15694 Fix cached thumbnails extensions 2020-03-09 12:10:04 -04:00
miruka
7ee83c5fe4 Downloaded files: include title + ext in filename 2020-03-09 11:46:08 -04:00
miruka
bd7b45cc7a Add title property for EventMediaLoader 2020-03-09 11:08:07 -04:00
miruka
2a2b3df845 Utils.urlExtension: don't lowercase returned ext 2020-03-09 11:00:48 -04:00
miruka
ff642485e8 Show max size in "too large" UI Transfer error 2020-03-09 10:27:22 -04:00
miruka
61cc87cf18 Show max file size on upload button tooltip 2020-03-09 09:57:53 -04:00
miruka
ca8dd65f34 Disable buggy composer backspace override 2020-03-09 08:09:58 -04:00
miruka
d1e42a72a0 Fix upload pause/cancel 2020-03-08 07:34:38 -04:00
miruka
cdb79d11aa Use const instead of let when possible 2020-03-08 04:46:20 -04:00
miruka
7d2b85dfda Remove Chat user/roomInfo binding loop 2020-03-08 04:02:26 -04:00
miruka
1556e569b8 Replace room loading bar with an eventList header 2020-03-07 11:11:32 -04:00
miruka
c49f9b98b2 Split RoomPane into Base/MultiviewPane 2020-03-06 08:41:04 -04:00
miruka
ce0a868579 Refix Event.source, JSONify dicts for ListModel 2020-02-12 14:14:09 -04:00
miruka
ae780345e8 Make "Filter members" work again 2020-02-12 08:15:54 -04:00
miruka
e982de1c61 Make Event.inline_content & links pure attrs 2020-02-12 06:21:43 -04:00
miruka
8a29143b60 Working Event.event_type & source fields 2020-02-12 06:19:49 -04:00
miruka
9990fecc74 Begin yet another model refactor
Use native ListModel which require a lot of changes, but should be
much faster than the old way which exponentially slowed down to a crawl.
Also fix some popup bugs (leave/forget).

Not working yet: side pane keyboard controls, proper highlight,
room & member filtering, local echo replacement
2020-01-06 03:41:14 -04:00
miruka
a1256cf20a Turn Clipboard into a singleton 2019-12-27 09:06:42 -04:00
miruka
f34d2a1c6d Turn CppUtils into a Singleton 2019-12-27 08:58:24 -04:00
miruka
35fd57be56 Improve HDrawer complience/behavior with zoom 2019-12-26 11:09:40 -04:00
miruka
fc7f7256a1 Fix RoomPane buttons background static height 2019-12-26 10:51:41 -04:00
miruka
4f1e4fcf1c Remove excess period 2019-12-22 11:36:31 -04:00
siedes
f3e87eb3fc Minor spelling and wording corrections 2019-12-22 11:29:33 -04:00
miruka
b4df752f8a Improve MembersView when RoomPane collapsed 2019-12-22 09:35:21 -04:00
miruka
be61a34ec0 Event context menu entry to open debug console
Replaces the hidden double-click-on-empty-space feature
2019-12-20 10:39:10 -04:00
miruka
9bd739a0db Fix focus and simplify popup-opener menu items
Introduce a HmenuItemPopupSpawner component that takes care of reacting
to onTriggered signals and calling the utils.makePopup() function.

The combination of this new component used in HMenu to open a HPopup
now correctly takes and restore focus to the right element when closed.
2019-12-20 10:30:50 -04:00
miruka
d9b7118f45 load_past_events: raise instead of logging errors 2019-12-20 09:30:57 -04:00
miruka
5e26188dfe Fix & improve EventImage thumbnail sizes 2019-12-20 09:12:16 -04:00
miruka
be6292a521 RoomPane leave more space for chat in small window 2019-12-20 07:38:42 -04:00
miruka
5857f4e398 Better defined maximum sizes for the panes 2019-12-19 19:27:39 -04:00
miruka
090c53898c Fix width for messages with text + image previews
The width of the images weren't taken into consideration to calculate
the message xOffset, resulting in these messages being pushed way past
what they should be and looking very thin
2019-12-19 16:03:00 -04:00
miruka
be0541f2d9 Improve HRepeater width properties 2019-12-19 16:00:37 -04:00
miruka
2229b41af1 New way to open debug consoles
Replace broken old utils.debug(...) (since the utils.js → Utils.qml
transition) with a declarative approach:
a console can now be opened with by placing a `DebugConsoleLoader {}`
anywhere.
mainUI has a default console opened by F1/alt-shit-c when no other
console is loaded.
2019-12-19 14:11:13 -04:00
miruka
fb1f9c62e5 Add SPDX ID LGPL v3+ license headers 2019-12-19 07:46:16 -04:00
miruka
36359b05fa Transfer.qml: fix typo 2019-12-18 16:24:36 -04:00
miruka
f4d7636df6 Move Chat/ dir under Pages/ 2019-12-18 04:53:08 -04:00
miruka
2bdf21d528 Rename some filers and folder for clarity 2019-12-18 04:45:09 -04:00