Commit graph

378 commits

Author SHA1 Message Date
fiaxh a8ee61b34c Move notification sounds (canberra dependency) into plugin, introduce libdino/NotificationEvents 2018-03-05 15:43:02 +01:00
Rahix 08c8b9c6d6 Implement notification sounds
Add a new setting to toggle notification sounds on or off. Plays the
systems default instant messaging message sound (message-new-instant)
whenever a notification is shown if toggled on.
2018-02-17 21:51:02 +01:00
fiaxh ef40b61734 Small fixes 2018-01-30 17:29:54 +01:00
fiaxh 78de584ad0 Make slack workarounds use in-pipeline 2018-01-28 22:27:50 +01:00
fiaxh f6db249c92 Only display transferred images, display file names, open in system viewer, include and use pgp embedded file names 2018-01-28 22:00:22 +01:00
fiaxh bec810e234 Visually highlight mentions in MUCs
fixes #267
2018-01-28 20:32:54 +01:00
fiaxh 57c72d2818 Pipeline for incoming messages in libdino 2018-01-28 13:37:53 +01:00
Marvin W 03a349bfaf Small fixes to MucManager 2018-01-28 00:38:47 +01:00
Marvin W bbfac91155 Fix certain Slack specific issues (using host-based workarounds) 2018-01-28 00:38:47 +01:00
Marvin W 782ae4c049 Move Jid class to xmpp-vala, partially refactor namespace 2018-01-28 00:38:47 +01:00
linkmauve 0ce28c0b0d Fix typos in comments and variable names (#269)
Thanks `codespell`!
2018-01-10 15:12:54 +01:00
Mathieu Bridon 5557c03be8 Move to GNetworkMonitor (#236)
* Move to GNetworkMonitor

Dino currently talks to NetworkManager over DBus to know the state of
the network.

That doesn't work in a Flatpak sandbox by default though, because
Flatpak filters DBus communications and only allows a very small set of
things to pass (which are known to be safe).

Gio provides an API to know the state of the network (and be notified of
changes via a signal): GNetworkMonitor.

And GNetworkMonitor works both inside a Flatpak sandbox, and in
traditional builds. (in Flatpak it uses what we call a "portal", which
are the clean, safe way to let apps exit their sandbox)

Fixes #235

* Don't check for network connectivity for now

The connectivity check really is the correct thing to do:

* network_available means that the computer has network routes to
  "somewhere". That is, it is connected to a router.
* connectivity.FULL means that the computer can access "the
  Internet". That is, if it is behind a router, that router is
  connected.

As a result, only checking for network_available is not correct.

Unfortunately, NetworkManager tends to wait a long time before checking
for connectivity. As a result, it is possible that a transient network
error leaves NetworkManager thinking that network_available is true but
connectivity!=FULL, and it will wait several minutes before realizing
that the Internet connexion did come back.

During that time, apps checking for connectivity (e.g the whole GNOME
desktop) will think they don't have access to the Internet, while apps
that don't (e.g Firefox) will access the Internet just fine. Users are
understandably confused when that happens.

Removing the check for connectivity is an acceptable trade-off in the
short-term, until this situation is improved on the NetworkManager side.

https://bugzilla.gnome.org/show_bug.cgi?id=792240
2018-01-09 20:39:45 +01:00
David Plassmann 5d6cf9d8d5 Add support for setting a new Affiliation in a muc (#266)
* Added support for setting a new Affiliation in a muc

* small changes

* fix parameter order
2018-01-09 01:06:32 +01:00
fiaxh a8cc94c188 Show error on invalid TLS certificate 2018-01-04 21:17:56 +01:00
fiaxh c7c1fb5124 Restore window state (size, maximized, position) 2017-12-31 22:48:14 +01:00
fiaxh 119e7cce4f Place time+encryption+read directly right of name 2017-12-31 22:48:14 +01:00
fiaxh 8cbc4e7f89 Clear chat states on own/contact disconnect
fixes #197
2017-12-30 13:10:06 +01:00
fiaxh b4bb0912fc Show subscription request in conversation summary 2017-12-30 13:10:06 +01:00
fiaxh fc0d7feb5a Load messages for conversation view from cache 2017-12-13 21:11:33 +01:00
fiaxh bbbfdf0551 Match message with previously arrived marker 2017-12-05 15:07:15 +01:00
fiaxh cee39b0117 Rename resources to have a reverse DNS prefix 2017-12-03 21:43:19 +01:00
fiaxh f3ca14f2d6 ConversationView: Date separator 2017-12-01 02:28:51 +01:00
fiaxh 9165c4db27 Async service lookup, connect and write 2017-11-23 01:28:29 +01:00
fiaxh f3063f56b7 ConversationView: Split merged messages when an in-between one is added 2017-11-22 00:32:11 +01:00
Translations ebf8d7ab01 Update translations 2017-11-18 19:43:59 +01:00
fiaxh 2a514d0969 Fix unit tests using async + read message marker 2017-11-17 17:24:03 +01:00
fiaxh 3f531d6b91 Read+(write) stream async 2017-11-16 17:43:00 +01:00
fiaxh 1d0745177e Replace deprecated function usages 2017-11-16 14:09:30 +01:00
fiaxh d82194af58 Go offline before quiting application
fixes #141
2017-10-31 17:32:48 +01:00
fiaxh 0102abeec1 Fix warnings 2017-10-31 15:41:45 +01:00
fiaxh b9df78e449 Move DatabaseError handling into Qlite 2017-10-31 15:41:45 +01:00
fiaxh d9b91206c0 Keep MUC join dialog open until joined, show errors 2017-10-31 15:41:45 +01:00
fiaxh 7e83529afc Blocking setting in Contact Details 2017-10-31 15:40:42 +01:00
Emmanuel Gil Peyrot a8d06e634b xmpp-vala: Add support for XEP-0191: Blocking Command 2017-10-31 15:40:42 +01:00
linkmauve 1e1aa704a2 Remove new from struct initialisation, as it is deprecated (#180)
* Remove new from struct initialisation, as it is deprecated.

* Use Map.has_key instead of Map.contains, as it is deprecated.
2017-10-23 16:10:15 +02:00
fiaxh 749edd21b9 Add oob tag to http-upload messages
fixes #166
2017-10-22 18:26:31 +02:00
fiaxh 555187deb9 Offline messages for MUCs
fixes #187
2017-10-22 18:26:31 +02:00
fiaxh 9ea16b6d85 PGP encrypted file transfers 2017-10-22 18:26:31 +02:00
fiaxh 8b43df8ec3 Handle file uploading in libdino & main, have http upload as provider 2017-10-21 23:31:05 +02:00
fiaxh 9d8e1e88ec http-files: max-file-size handling 2017-09-26 17:01:06 +02:00
fiaxh 7430efee57 Change conversation (un)read marking 2017-09-19 23:39:17 +02:00
fiaxh 8fdb38b99b Use GNotification instead of libnotify 2017-09-19 23:39:17 +02:00
fiaxh d0e86d0a8e small fixes 2017-08-31 23:52:15 +02:00
fiaxh d2a5287eff Use utc time everywhere 2017-08-31 18:54:38 +02:00
fiaxh a257b16337 Download & inline display images 2017-08-31 18:54:38 +02:00
Marvin W 7c2023803e
libdino: try to load all plugins found in the respective folders 2017-08-29 22:08:31 +02:00
fiaxh 8bc0d107e7 Plugins providing conversation items for ConversationView 2017-08-28 00:02:59 +02:00
fiaxh 8533ba6450 Handle xmpp ?join and ?message uris 2017-08-25 22:30:03 +02:00
Marvin W b672df94e8 Use single process, accept xmpp:-URIs as program argument 2017-08-25 22:30:03 +02:00
fiaxh f9436b63f1 connection: keep-alive pings, act upon connection change (VPN) 2017-08-25 22:30:03 +02:00
fiaxh a8ba4a3974 "Default" per-contact settings (change UI) 2017-08-25 22:30:03 +02:00
fiaxh 5fcf8e73ef Show nicks in MUCs, real jid in individual occupant menu 2017-08-25 22:29:40 +02:00
fiaxh 51b4f9b204 fixup 4a4b595 2017-08-22 16:36:37 +02:00
fiaxh 4a4b5956c9 Move settings from GSettings to own db 2017-08-22 16:22:56 +02:00
fiaxh a8aceb1e39 README: Discussion MUC, change url 2017-08-22 16:04:41 +02:00
fiaxh dff8e08669 MAM fixes
- don't send first request for timestamp -60
- only open conversation for messages within last 24h
- always show latest message in conversation tabs
2017-08-19 00:31:44 +02:00
Marvin W 781d241b93
add plugin api for text commands 2017-08-17 19:56:10 +02:00
Marvin W 5dc460fc1a
libdino: remove dependency to GTK+ (all GTK+ code is in main+plugins) 2017-08-17 19:53:34 +02:00
Marvin W e44cad1b92
libdino: do not process message twice 2017-08-17 18:58:13 +02:00
fiaxh bff6885a6b fixup 4aee957 (request history since last known messages) 2017-08-17 01:37:15 +02:00
fiaxh fb36ea0553 Message Archive Management 2017-08-17 01:26:03 +02:00
fiaxh a59f728bdd Stream Management 2017-08-14 22:38:12 +02:00
fiaxh b29d52fdda SRV records for XMPP over TLS 2017-08-11 11:56:37 +02:00
Max Weller 4aee95703d request history since last known messages (#110)
request history since last known messages
when rejoining a room at startup
2017-08-05 12:56:32 +02:00
fiaxh ea174ab632 Http file upload 2017-08-03 15:59:04 +02:00
fiaxh 3f0089db86 Session establishment 2017-06-21 01:58:09 +02:00
fiaxh 26973c89e3 Set jid handle in ContactDetails, use LabelHybrids more, remove edit from StartConversation 2017-06-17 16:13:23 +02:00
fiaxh 7bbbb738fd Get rid of manual storage objects for delegates 2017-06-13 20:12:40 +02:00
fiaxh dabc2a8b1d MUC join behaviour + small MUC error changes 2017-06-13 19:51:24 +02:00
fiaxh e63d59eb34 Muc Invite + Kick 2017-06-11 13:59:24 +02:00
fiaxh 5ba95ef6b7 Conversation details dialog 2017-05-30 22:51:58 +02:00
fiaxh 387433ebb9 Notifications + typing notifications + message marker settings per conversation 2017-05-30 22:33:33 +02:00
fiaxh 142257a544 fixup bcb9690 (Roster versioning) 2017-05-24 17:29:17 +02:00
fiaxh bcb96909c9 Roster versioning 2017-05-22 01:02:09 +02:00
fiaxh 4247922e8c Member affiliation in occupant list 2017-05-18 23:14:44 +02:00
Marvin W 9728e832b1
qlite/libdino: optimize db access 2017-04-26 21:48:53 +02:00
Marvin W eddf17c682
cmake/signal-protocol: shared lib, mark_as_advanced and others 2017-04-26 21:48:53 +02:00
fiaxh 3eb9aa0fa7 Sync MUC join/part behaviour with autojoin flag in bookmarks 2017-04-23 14:03:44 +02:00
Marvin W f95b4f4e09
xmpp-vala/core+libdino: concurrency + nullity improvements 2017-04-18 20:20:41 +02:00
fiaxh c6ff3387fa Handle conference bookmarks w/o nick 2017-04-17 22:48:43 +02:00
fiaxh e3b69538ba gettext improvements (more strings, times, plural, de lang) 2017-04-13 14:13:57 +02:00
fiaxh a37b5ac823 MUC improvements 2017-04-11 21:25:33 +02:00
fiaxh 9bc83539d1 Gettext support 2017-04-10 15:47:21 +02:00
fiaxh d8881c4b16 Show account status (incl errors) in ManageAccounts.Dialog 2017-04-10 15:47:17 +02:00
fiaxh d6e742eb61 Application menu fallback button 2017-04-04 19:55:24 +02:00
fiaxh cb3c896bdb fixup 75e51b5 2017-04-04 16:33:51 +02:00
fiaxh 75e51b5ed3 MessageStorage/Processor, correctly resolve conversations (fixup 22adbd3) 2017-04-04 15:57:35 +02:00
fiaxh ea5d3e50c6 Start private conversation with MUC occupant via occupant menu 2017-04-03 19:48:01 +02:00
Marvin W 2a49d4a1aa
Add --print-xmpp flag to log details 2017-04-03 15:09:30 +02:00
Marvin W 8248cfcbb2
Make FHS compliant, split RPMs, fix compilation on older GCCs 2017-04-03 15:05:39 +02:00
fiaxh 22adbd38dc Handle MUC private messages 2017-03-31 16:39:28 +02:00
fiaxh 7d2f995a09 Fix conversation last_active 2017-03-31 01:21:35 +02:00
Marvin W 3733d24a90
Fix -Werror=format-security issues 2017-03-30 22:38:51 +02:00
Marvin W b63e5f5f9f
Some caching and fix gpgme on some systems 2017-03-24 15:18:39 +01:00
fiaxh c0314212a0 Tab completion for MUC occupants 2017-03-24 00:24:33 +01:00
Marvin W e6f89f8751
New CMake
- add install and uninstall targets
- compatibility for systems without pkg-config
2017-03-23 17:16:08 +01:00
Marvin W ef0483765a
Small bug fixes and compatibility with Vala 0.36 2017-03-23 16:48:26 +01:00
fiaxh 492baaf084 Add back on subscription request 2017-03-23 15:43:20 +01:00
fiaxh fa78573b05 Move some database interaction into entities
fixes #2
2017-03-23 14:36:53 +01:00
fiaxh 6f3225979c Select conversation on startup, placeholder for "No conversation selected", start services before UI 2017-03-20 22:28:32 +01:00
fiaxh db57a97353 Add typed identity to manager modules and stream flags 2017-03-20 22:28:27 +01:00
fiaxh 582cc78edd "No accounts active, add?" stack in main view 2017-03-18 00:17:29 +01:00
fiaxh 1eca8c6f67 Fix message stanza default type 2017-03-18 00:12:27 +01:00
fiaxh 6f3eee1430 Improve when to send chat state notifications 2017-03-16 19:46:22 +01:00
Marvin W 5038db063e
omemo plugin: improve session bootstrapping 2017-03-15 17:23:13 +01:00
Marvin W 2d6f580c87
correctly bootstrap omemo when there is no devicelist on server yet + concurrency bug fixes 2017-03-13 22:00:17 +01:00
Marvin W 0087a7135e
Fix account repeated disconnect/connect issues 2017-03-13 15:52:54 +01:00
Marvin W 2804799f61
Reduce GTK dependency to 3.16, fix dark theme 2017-03-13 15:34:17 +01:00
fiaxh 13cef27d46 Search messages having a uuid stanza id by id + account 2017-03-12 21:24:25 +01:00
Marvin W c2643a45b0
Qlite: Return OptionalRow instead of Row?, add ability to remove columns on version upgrade 2017-03-12 20:55:11 +01:00
fiaxh f24b47c44d PGP module: store data in own db, use pgp key as specified in account settings 2017-03-12 14:44:09 +01:00
Marvin W dbbe5e39d0
Automatically compile and use gsettings schema 2017-03-12 14:42:04 +01:00
Marvin W e8f11178ec
Move storage into user directory and fix plugin search path 2017-03-12 14:09:32 +01:00
Marvin W a9ea0e9f87
Split OMEMO plug-in into files, various fixes 2017-03-12 03:17:21 +01:00
fiaxh 7e1ecb34cb Move PGP support into plugin 2017-03-12 02:52:43 +01:00
Marvin W 00ac82e648
Move gsettings schema back to libdino (where it belongs) 2017-03-12 00:56:57 +01:00
Marvin W d5ea5172a7
Add OMEMO via Plugin 2017-03-11 23:59:04 +01:00
Marvin W e27d63269d
Move UI code into main dir 2017-03-11 23:58:35 +01:00
Marvin W cd6b904e97
CMake: merge created header+vapi files into a single directory 2017-03-11 23:58:34 +01:00
fiaxh f40a34bdc1 Use delegates + object storage instead of listener objects 2017-03-11 23:09:57 +01:00
Marvin W 0ea4ac7e20
Plug-In API: allow adding custom entries to account settings
Also make OpenPGP code use this API
2017-03-11 22:50:28 +01:00
fiaxh 47ab19b3a0 UI to choose PGP key/disabled in account settings 2017-03-11 12:22:55 +01:00
Marvin W 4c48bdc072
Improve Plugin API (allow to move encryption into plugin) 2017-03-11 02:04:38 +01:00
fiaxh 1ccad732b9 Use typed identity in stream modules 2017-03-11 01:40:42 +01:00
fiaxh 95e8d126db Merge branch 'master' of github.com:dino/dino 2017-03-10 23:20:36 +01:00
Marvin W d8e102a160
Use typed identity in module manager 2017-03-10 21:49:29 +01:00
fiaxh 24b55d83a1 Merge branch 'master' of github.com:dino/dino 2017-03-10 19:53:24 +01:00
Marvin W 29ca70a6d5
Initial plugin system 2017-03-10 19:50:34 +01:00