Commit Graph

923 Commits

Author SHA1 Message Date
Philipp Hörist 410aee7ba0 Fix typo in DB migration 2017-12-17 11:34:54 +01:00
Philipp Hörist ba54c304e8 Add GTK+ version check on start 2017-12-16 23:20:37 +01:00
Apromixately b8fe0e20c3 Remove incorrect assert
When a ping reply is received there is probably a connection. Anyway, the
last ping might have been lost and the ids might not match up.
2017-12-16 16:23:44 +01:00
Philipp Hörist a344a94102 Fix chatstate flood
The new Placeholder text inside MessageTextView was causing many
buffer changed events.

- Add a method that lets us know if there is user input
- Add logging
2017-12-15 23:00:15 +01:00
Yann Leboulanger 3764567c10 update version number for 1.0.0-alpha1 release 2017-12-15 22:29:31 +01:00
Emmanuel Gil Peyrot 0707f1a27c Fix xmpp: URI handling.
It was previously removing the first three characters of the JID, and
ignored any URI without an action.
2017-12-15 02:40:53 +01:00
Philipp Hörist 4009625e02 Catch invalid URIs 2017-12-14 20:19:12 +01:00
Emmanuel Gil Peyrot f4cae17d9f Remove support for AWN, which isn’t maintained anymore 2017-12-13 23:19:16 +01:00
Yann Leboulanger 4e7fcea288 Merge branch 'logind' into 'master'
Port logind_listener to GTK dbus

See merge request gajim/gajim!167
2017-12-13 21:57:57 +01:00
Yann Leboulanger a39d68d4ae when internet connection is back, only connect accounts that were
connected before connection broke
2017-12-11 21:13:53 +01:00
Philipp Hörist f8ddefb6da Fix var reference 2017-12-10 22:56:20 +01:00
Philipp Hörist 7815ce19a5 Dont use callbacks when sending messages
Using a callback to display a sent message inside the ChatControl means
that all messages we send have to be issued from the GUI layer
(send_message()) if we want them to display in the ChatControl.

This replaces the callback and catches the stanza-message-outgoing event
after it was processed by the core.

This is easier to read/understand than dealing with callbacks and lets
the core issue messages without having to care if a ChatControl is open or not
2017-12-10 18:56:29 +01:00
André Apitzsch 5364c1980c Port logind_listener to GTK dbus 2017-12-09 15:04:15 +01:00
André Apitzsch be32d9afe6 Remove upower_listener
the 'Sleeping' signal has been removed from UPower about four years ago
https://cgit.freedesktop.org/upower/commit/src/org.freedesktop.UPower.xml?id=1ee642e705a63f5ad56a6b55e4bf5c4a64c959b8
2017-12-09 00:34:47 +01:00
Philipp Hörist 786ef96400 Port InformationEvent handling to new interface 2017-12-09 00:15:26 +01:00
Philipp Hörist 6926bdaee0 Port some error messages to new interface 2017-12-08 20:20:07 +01:00
Philipp Hörist 61ad783658 Add new interface to raise dialogs 2017-12-08 19:50:48 +01:00
pitchum cb7eba562d Bugfix in printing fuzzy time. 2017-12-06 21:44:13 +01:00
Philipp Hörist f724359c2b Raise required nbxmpp version 2017-12-05 17:25:17 +01:00
Philipp Hörist beb9fa2f17 Merge branch 'location' into 'master'
Get location with GeoClue2

Closes #8772

See merge request gajim/gajim!164
2017-12-05 17:10:51 +01:00
André Apitzsch 2aab433932 Get location with GeoClue2 2017-12-04 21:00:20 +01:00
Philipp Hörist feaf9df0cf Remove xmpp uri handling from gajim-remote 2017-12-04 17:06:24 +01:00
Philipp Hörist 38944331b3 Handle ?message uris 2017-12-04 00:20:18 +01:00
Philipp Hörist 1afd4f0e72 New StartChat Dialog 2017-12-03 23:58:02 +01:00
Philipp Hörist 010b166fd2 Handle ?roster uris 2017-12-03 23:58:02 +01:00
Philipp Hörist ace904573a Add new Join Groupchat dialog
- Complete rewrite of the old Groupchat dialog
- Has now a "minimal" mode, which is used if we have all infos for joining except the nickname and if we want to bookmark
- Handle xmpp uris received via command line
2017-12-03 23:58:02 +01:00
Philipp Hörist d814a42345 Remove old JoinGroupchat dialog 2017-12-03 23:58:02 +01:00
Philipp Hörist 553ba9e59f Dont preserve aspect ratio when loading an avatar
Clients should only upload square sized avatars
2017-12-03 23:58:02 +01:00
Philipp Hörist 47f1f41977 Dont use mutable objects as default arguments 2017-12-03 15:34:33 +01:00
Yann Leboulanger 086eeb3dc8 resolve TXT record only for non-zeroconf accounts. Fixes #8792 2017-12-03 14:55:41 +01:00
Andrey Gursky 5a28322e6a Fix appearance of status icon in MATE
Tested in Debian testing (Buster) with gtk2 based MATE 1.12,
gtk3 based 1.16 and 1.18.

Moreover the used environment variable is depreacated already in 1.12:
$ echo $MATE_DESKTOP_SESSION_ID
this-is-deprecated

Fixes #8757
2017-11-30 23:30:48 +01:00
Yann Leboulanger eb764fa1af refactor the way we call SQL 2017-11-30 22:45:21 +01:00
Yann Leboulanger 79ba81825d better parse of version in config file in case old sha version of git is
used (-xyz instead of +xyz)
2017-11-30 17:19:17 +01:00
Yann Leboulanger 46711e1107 Merge branch 'XEP-156' into 'master'
implement XEP-0156

Closes #5795

See merge request gajim/gajim!154
2017-11-29 14:25:49 +01:00
Philipp Hörist b3ef0d6196 Catch ValueError on Gspell import 2017-11-26 01:11:19 +01:00
Philipp Hörist 7692b376ee Refactor SpellChecker
- use Gspell instead of GtkSpell, it seems to have alot less problems
and needs less code
2017-11-26 00:44:50 +01:00
Emmanuel Gil Peyrot cdf4d0ee69 Also log the offending JID on avatar decoding issue 2017-11-25 17:37:48 +00:00
Philipp Hörist fc627fc19c Use appmenu only if system supports it 2017-11-24 18:54:30 +01:00
Philipp Hörist 276daa991c Correctly split version string
We changed the version format
2017-11-24 16:49:30 +01:00
Philipp Hörist 9322ed4405 Show missing dbus message only on Linux
Mac and Windows dont have dbus available
2017-11-24 16:28:22 +01:00
André Apitzsch f97b799f9a Fix invalid dev version string 2017-11-23 00:22:40 +01:00
Yann Leboulanger d86c7f47f5 lower debug level for unresolved host. 2017-11-22 14:57:08 +01:00
Philipp Hörist 7ec57e4dab Lower debug level for malformed avatar stanzas 2017-11-22 14:53:32 +01:00
Yann Leboulanger 149edfe3ef implement XEP-0156. Fixes #5795 2017-11-20 21:31:29 +01:00
Yann Leboulanger 84af966a87 prevent traceback 2017-11-20 21:18:32 +01:00
Philipp Hörist 1c895e8983 Persist resource across sessions
This was somehow lost once we implemented random resource strings
Although its good that initally a random resource is chosen, it
still should persist across sessions.

This helps to kill zombie client connections on the server because
most servers kill the old session once a new with the same resource
connects

Also dont notify the user about resource conflicts if no custom
resource is set. We should not expect users to know about resources
and what they are used for as long as possible.
2017-11-20 18:10:51 +01:00
Philipp Hörist c45d0f5b27 Query MUC archives with the correct namespace 2017-11-19 23:45:03 +01:00
Philipp Hörist 3683f23877 Merge branch 'master' into 'master'
Add MAM for MUCs

See merge request gajim/gajim!152
2017-11-19 23:14:10 +01:00
Philipp Hörist 7f1776ede9 Improve deduplication
A stanza-id is only unique within a specific archive
This adds the archive jid to the query
2017-11-19 19:36:26 +01:00
Philipp Hörist cac1185a23 Remove log message 2017-11-19 19:36:26 +01:00
Philipp Hörist 44bb8e374d Request one day history when first joining MUCs 2017-11-19 19:36:26 +01:00
Philipp Hörist 51c0a05ac9 Parse from jid correctly 2017-11-19 19:36:26 +01:00
Philipp Hörist f57ec2fa34 Move common code out of HistoryWindow
- move it into message_archiving.py
2017-11-19 19:36:26 +01:00
Philipp Hörist 40f537cda9 Save last archive timestamps in DB
- A Migration from last_mam_id config value is included
2017-11-19 19:36:26 +01:00
Philipp Hörist 95357361bf Save account_id in logs table 2017-11-19 19:36:25 +01:00
Philipp Hörist a07470a7d2 Add new DB methods 2017-11-19 19:36:25 +01:00
Philipp Hörist 9759dcf152 Add account_id column to logs table
When we search for duplicated stanza-ids we have to do it
in the context of an account
2017-11-19 19:36:25 +01:00
Philipp Hörist 52827c6add Add new DB table last_archive_message 2017-11-19 19:36:25 +01:00
Philipp Hörist 536a504f69 Remove Support for mam:0 2017-11-19 19:36:25 +01:00
Philipp Hörist 75b1d54b4c Add MAM for MUCs 2017-11-19 19:36:20 +01:00
Yann Leboulanger b66311532f Merge branch 'new_visible_func' into 'master'
New visible func

Closes #8670

See merge request gajim/gajim!153
2017-11-19 18:00:26 +01:00
Yann Leboulanger 0b2e558834 Take into account show_transports_group option to show transports 2017-11-19 17:56:13 +01:00
Yann Leboulanger 7724dd181b New visible func faster and cleaner. Fixes #8670 2017-11-19 17:54:33 +01:00
Philipp Hörist 24320c894c Remove unused code 2017-11-19 14:34:04 +01:00
Philipp Hörist f7bb9c8a33 Merge branch 'networkmonitor' into 'master'
Use Gio.NetworkMonitor for reconnecting

See merge request gajim/gajim!149
2017-11-18 22:09:35 +01:00
Yann Leboulanger 639f0db164 Merge branch 'symbolic' into 'master'
Add symbolic icon

See merge request gajim/gajim!151
2017-11-18 21:11:19 +01:00
Annika Sommer 86f5953e2b MUC: Improve error messages
Distinguish between 'item-not-found' and 'remote-server-not-found'

Fixes #8749
2017-11-18 18:10:10 +01:00
Philipp Hörist c1c2a92efc Init Plugins and Caps after Roster
- Some plugins do not depend on gui extension points and need the
roster to be initialized
2017-11-18 11:11:47 +01:00
André Apitzsch 566b5370e6 Add symbolic icon 2017-11-17 23:04:05 +01:00
Philipp Hörist a80f41e2bf Support unpublishing avatars (with XEP-0084)
- Add more logging
2017-11-17 19:19:59 +01:00
Philipp Hörist 9f0154ef84 Add caps to first presence
According to the XEP, caps hash has to be added to all presences
2017-11-15 22:28:57 +01:00
Philipp Hörist d5ddbe3766 Add extension point for plugins to add their caps 2017-11-15 22:28:11 +01:00
Philipp Hörist 775fec2fea Dont activate plugins in PluginManager init
Plugins maybe want to use in their activation Gajim methods that
use an extension point. But because the PluginManager Object is not fully
initialized, the extension point method is not available yet

First create the PluginManager Object, then load Plugins.
2017-11-15 22:26:55 +01:00
Philipp Hörist 0fe78daae8 Init PluginManger earlier
- Plugins need the possibility to add caps before Gajim updates them
2017-11-15 21:57:15 +01:00
Philipp Hörist e8004084fb Use Gio.NetworkMonitor for reconnecting
- This uses also NetworkManager, but also other more low level interfaces
on linux
- This should work cross-platform
- Leave network_watcher.py for now, because it shows how
to use the Gtk dbus interface
2017-11-12 23:53:03 +01:00
Philipp Hörist 5236693df9 Parse stanza-id in groupchat correctly 2017-11-11 21:46:00 +01:00
Philipp Hörist 309e844b4e Escape account label in roster and menus 2017-11-11 17:10:31 +01:00
Philipp Hörist d19e87eb7b Fix showing normal message event
Regression introduced in 9b866fd1a0
2017-11-10 18:09:36 +01:00
Philipp Hörist 947106bb66 Catch more errors on vCard request 2017-11-09 20:57:03 +01:00
Philipp Hörist 6e91a05590 vCard: Handle IQ error and change logging level 2017-11-08 23:58:25 +01:00
Philipp Hörist 35d2beae74 Logger: only search if ids are available 2017-11-08 22:27:37 +01:00
Philipp Hörist 47f4838c7c Fix typo and logging arg 2017-11-07 22:56:15 +01:00
Philipp Hörist d4fdf0d7c1 Shorten search intervall for MAM messages 2017-11-07 20:39:45 +01:00
Philipp Hörist 7f1a839e77 Deduplicate GC and MAM Messages based on stanza-id
- Add methods to determine the unique/stable id
- Write the id to the stanza_id DB field
- Add method to deduplicate based on the unique/stable id
2017-11-07 20:39:36 +01:00
Philipp Hörist 46926e71d1 Remove old message duplicate code
- Calculating so many hashes for each Message is quite expensive
- It hides our own implementation bugs, like when we retrieve history
from a MUC with wrong timestamps, or on rejoin. We never know about it
because the Messages are dropped.
- It should not be necessary anymore. The original problem was a bug
in nbxmpp which triggered mass resending of old messages.
2017-11-07 20:39:36 +01:00
Philipp Hörist 07055ccaad Update menus on account label change 2017-11-06 23:29:07 +01:00
Philipp Hörist e4ad111c02 ServerInfo: Make InfoItems selectable 2017-11-06 23:05:32 +01:00
Philipp Hörist 8c8b491846 ServerInfo: Show if features are disabled by user
- Show new Symbol if a feature is available but not enabled
- Add this info to the tooltip
2017-11-06 23:04:49 +01:00
Philipp Hörist 6fc2cd30e8 ServerInfo: fix pylint/pep8 2017-11-06 23:04:33 +01:00
Philipp Hörist 80f658e81f ServerInfo: Add server uptime info 2017-11-06 23:03:16 +01:00
Philipp Hörist 3c823d307d Save oob data also on MAM Messages
- add get_oob_data() so we can use it on more than one event
- also remove a forgotten print call
2017-11-04 13:51:12 +01:00
Philipp Hörist cb1d8cc78c Merge branch 'master' into 'master'
Add extension points to history window

See merge request gajim/gajim!147
2017-11-03 23:24:28 +01:00
Philipp Hörist 20d5ea90e7 Store oob data into DB
Right now oob data is merged into the message text and stored into the DB.
If we load this message from the DB we cannot know anymore if and which
parts of the text was oob data.

Use the additional_data api to store oob data into the DB instead of
altering the original message text.

This lets us decide later on if and which data we want to display, even
on history replays. Also plugins can use the data.
2017-11-03 20:36:53 +01:00
Thilo Molitor e97e7b13cd Add gui extension point to history window 2017-11-03 17:45:03 +01:00
Philipp Hörist 4c45c186c4 Pass additional_data to groupchats 2017-11-03 16:33:34 +01:00
Philipp Hörist 0c8d88d372 Ensure that jid_id is created on new accounts 2017-11-02 16:00:18 +01:00
Philipp Hörist 3bf3ddebfe Merge branch 'master' into 'master'
Fix additional_data in events

See merge request gajim/gajim!146
2017-11-01 23:44:43 +01:00
Thilo Molitor 0638cdc690 Fix additional_data in events 2017-11-01 23:14:47 +01:00
Philipp Hörist f397e1b7cb Rename OptionType.BOOL to VALUE 2017-11-01 12:25:19 +01:00
Philipp Hörist 5510e042d4 Make OptionsDialog extendable
Plugins or other code can pass custom Options
2017-11-01 11:42:44 +01:00
Philipp Hörist ecd5c652a2 Get drag and drop data correctly
Fixes #8773
2017-10-31 18:13:31 +01:00
Philipp Hörist 1b9c5066f5 Add Option to hide Gajim on pressing close
This also adds that Gajim gets present if Gajim is launched a second time
2017-10-31 17:33:32 +01:00
Philipp Hörist a7e53eb04b Catch Application signals instead of overwriting 2017-10-31 17:33:32 +01:00
Philipp Hörist cb3d4f4687 Update nbxmpp dependency to 0.6.0 2017-10-31 17:33:02 +01:00
Philipp Hörist 417464d9c5 Remove advanced commandline handling
Its enough to connect to the handle-local-options signal for what we
currently want to do.
2017-10-31 17:29:54 +01:00
Philipp Hörist 0b21c12c41 Make Scrollbar look more unobtrusive 2017-10-31 00:05:03 +01:00
Philipp Hörist 7ab6ed7e16 Disable overlay scrolling 2017-10-30 23:01:46 +01:00
Philipp Hörist 174a429d20 Add Separator in ChatControl 2017-10-30 23:01:34 +01:00
Philipp Hörist 7ee0636574 Pass iter to print_special_text extension point 2017-10-30 21:11:27 +01:00
Philipp Hörist 06e4c2c4f1 Display carbons in MUC-PMs correctly 2017-10-29 09:50:16 +01:00
Philipp Hörist 0490414079 Fix saving MUC-PMs
If the JID is not in the DB we need a type to insert
2017-10-29 00:37:05 +02:00
Philipp Hörist 87b6540104 Fix height of MessageTextView in some cases 2017-10-27 10:46:59 +02:00
Philipp Hörist 12783e039b Catch require_version ValueError 2017-10-27 10:42:43 +02:00
Philipp Hörist 40547c4d4b Fix import error 2017-10-27 10:36:00 +02:00
Philipp Hörist 3c103315ec Refactor Speller 2017-10-26 22:52:27 +02:00
Philipp Hörist 970d6f8c3f New style for ChatControl
- Move ActionBar into HeaderMenu
- Make Design of ChatControl look cleaner
- Hide the Roster in Groupchats per default
- Add Button to hide/show Roster in Groupchats
- Move Groupchat topic into popover
- Display Avatars on the right side of the ChatControl and status on the
left
- Add a default Avatar for contacts that have none
2017-10-26 22:52:20 +02:00
Philipp Hörist 398ad0eed8 Fix removing avatar sha from DB
the account name was passed instead of the account jid
2017-10-22 20:12:26 +02:00
Philipp Hörist b95759dfb8 Logger: Refactor insert_jid()
- make it use get_jid_id() and return the jid_id
2017-10-22 20:12:26 +02:00
Philipp Hörist accef11c93 Logger: Get rid of old jids list
Use _jid_ids dict instead
2017-10-22 20:12:26 +02:00
Philipp Hörist 1c7369229e MUC: Save last message time after each message 2017-10-22 20:12:25 +02:00
Philipp Hörist 0aa07522fb Logger: Refactor get_jid_id()
- Cache jid_id so we save on DB querys
2017-10-22 20:12:21 +02:00
Philipp Hörist 9e39287d8e ProfileWindow: Fix typo 2017-10-20 20:51:40 +02:00
Philipp Hörist 456d7f87ff Catch OSError when converting with Pillow 2017-10-20 19:09:41 +02:00
Philipp Hörist 2c7861bc1d Groupchat: Dont update avatar on offline presence 2017-10-19 15:54:49 +02:00
Philipp Hörist 3a6e1ac9fc Catch exception for invalid avatars 2017-10-17 20:36:27 +02:00
Philipp Hörist 0d16ef32e6 Fix StatusIcon on MacOS 2017-10-17 18:36:02 +02:00
Philipp Hörist 1f0cc2b665 Fix bindtextdomain not available on MacOS 2017-10-17 16:28:56 +02:00
Philipp Hörist f234722456 Correctly pass authentication mechs to nbxmpp 2017-10-16 17:04:35 +02:00
Philipp Hörist ed764789f1 Show blocked contacts as offline 2017-10-15 21:34:42 +02:00
Philipp Hörist 03e326688d MUC: Hide block menu if privacy list is absent 2017-10-15 21:34:42 +02:00
Philipp Hörist 29cf416da4 Send Presence probe on unblock 2017-10-15 21:34:32 +02:00
Philipp Hörist 2446c7e3ed Refactor Blocking List
Fixes #8762
2017-10-15 18:03:41 +02:00
Philipp Hörist f22fa200ea Return IQ result on blocking push 2017-10-15 15:53:28 +02:00
Philipp Hörist 2e9de7702f Remove discovery of generic pubsub support
We use PubSub only on our account jid, this use case is what PEP
was made for. If PEP is discovered we know that certain PubSub
features are supported, see: https://xmpp.org/extensions/xep-0163.html#defaults

The current check for <feature var='http://jabber.org/protocol/pubsub'/>
is pretty useless, as it just tells us that there is a PubSub implementation
but not much about the features. Only `publish` and `subscribe` are MUST
in XEP-0060 which is not enough for our needs.

If there is ever need to discover a generic PubSub implementation
that is not PEP we should check for all the PubSub features we need
instead of only for <feature var='http://jabber.org/protocol/pubsub'/>
2017-10-15 01:56:52 +02:00
Philipp Hörist 64d3bf63cf Discover PEP on the account jid
see: https://xmpp.org/extensions/xep-0163.html#support
2017-10-15 00:52:34 +02:00
Philipp Hörist 16ad608066 Minimize Roster correctly on ESC
Fixes #8765
2017-10-14 21:08:58 +02:00
Philipp Hörist 2b0ab5e9aa Fix syntax error 2017-10-14 09:48:57 +02:00
Philipp Hörist c6fc9081c5 Catch exception when closing window
Fixes #8761
2017-10-14 09:43:44 +02:00
Philipp Hörist fcf15fcaf2 Bookmarks: Remove invalid publish option 2017-10-14 00:13:19 +02:00
Philipp Hörist dd4a80054d Discover PublishOptions also if PubSub is not discovered
PEP supports a subset of PubSub and can also support publish options
2017-10-14 00:13:19 +02:00
Philipp Hörist ac281533f5 Get Pubsub bookmarks also if PEP is supported 2017-10-14 00:13:19 +02:00
Philipp Hörist 149522dcee ServerInfo: Add PubSub discovery 2017-10-14 00:13:18 +02:00
Philipp Hörist e79af35e9c Refactor store_bookmarks()
- Add logging
- Move Node building code into own methods
2017-10-14 00:13:13 +02:00
Philipp Hörist 4379c2d014 Execute handler only for the correct account 2017-10-08 22:29:15 +02:00
Philipp Hörist 95a984f645 HistoryWindow: Fix some UI issues
- Set application and menubar
- Remove deprecated settings

Fixes #8756
2017-10-08 19:02:55 +02:00
Philipp Hörist 0b1d5a3174 Remove unused import
- Sort imports correctly (PEP8)
2017-10-08 18:09:15 +02:00
Philipp Hörist 57efe7c457 Set application and menubar on MessageWindow 2017-10-08 18:08:13 +02:00
Philipp Hörist 1d5665632a Print malformed pubsub avatar stanzas 2017-10-08 14:32:59 +02:00
Philipp Hörist 1b90f75b17 Fix missing conn attr 2017-10-08 14:21:40 +02:00
Philipp Hörist fec3fe9605 Fix db migration 2017-10-08 14:03:37 +02:00
Philipp Hörist ed6278aeb3 Move Presence code into ConnectionHandlers 2017-10-08 11:26:33 +02:00
Philipp Hörist 21db50bbaa Move IQ Handler into ConnectionHandlers 2017-10-08 11:26:33 +02:00
Philipp Hörist 38406e39d6 Remove BigAvatarWindow 2017-10-08 11:26:33 +02:00
Philipp Hörist a01cdbf271 Refactor Avatars
- Add support for Pubsub Avatars
- Dont poll for vCard Updates, only use XEP-0153
- Dont cache vCards
- Store the avatar SHA of roster contacts in the DB
- Store the current SHA of each contact in the Contacts Object
- Move some code into the ConnectionVcard Class
2017-10-08 11:26:28 +02:00
Philipp Hörist 68f13788ed Add avatar_sha field to Cache DB 2017-10-08 11:25:49 +02:00
André Apitzsch 2872405f07 Fix deprecation warnings 2017-10-07 21:01:27 +02:00
André Apitzsch c758da1123 Replace make_color_string() by Gdk.RGBA method 2017-10-07 17:03:31 +02:00
Yann Leboulanger 372c1f9941 make a string not translatable 2017-10-07 14:54:39 +02:00
Philipp Hörist 2a2d4477a7 Fix broken highlight sound in Groupchat
tim is epoch, time.localtime() a struct_time
2017-10-07 11:15:10 +02:00
Philipp Hörist 6f2fbde60e Highlight on mention of own real JID in Groupchat
Fixes #8752
2017-10-07 11:10:53 +02:00
Philipp Hörist 4e1d296dcf Make Groupchat JID selectable
Fixes #8753
2017-10-07 10:28:43 +02:00
André Apitzsch 749a01a276 Simplify check_X509.py
as pyasn1 and pyOpenSSL are required now
2017-10-05 21:58:45 +02:00
Yann Leboulanger 6d10a5e2cf fix translation strings 2017-10-03 12:36:31 +02:00
Philipp Hörist 7bd73e2424 Fuse Emoticons/Authentication with TextView 2017-10-03 03:12:31 +02:00
Philipp Hörist 0b83a675ea Make Groupchat Roster larger 2017-10-03 00:38:47 +02:00
Philipp Hörist ef748c6d46 Remove send button 2017-10-03 00:38:47 +02:00
Philipp Hörist 6f472cc120 Set message as read before removing an event
When we receive carbons of a conversation, we remove the events once
we receive a carbon from ourself, because that means we anwered from
another device.

This sets these removed messages also as read in the unread_message
table, so they dont popup on restart.
2017-09-29 12:41:26 +02:00
Philipp Hörist 83f4d6e191 OptionsDialog: Destroy dialog on ESC 2017-09-29 02:43:29 +02:00
Philipp Hörist b9aba06f71 Remove unused variables 2017-09-29 02:41:03 +02:00
Philipp Hörist dd39067ef7 Allow Plugins to use other dialogs 2017-09-29 02:40:01 +02:00
Philipp Hörist 69248b2fe7 Fix pylint/pep8 errors 2017-09-29 00:11:29 +02:00
André Apitzsch 5794b040d3 Replace deprecated Gtk.Image.*_from_stock() 2017-09-28 19:42:00 +02:00
Philipp Hörist 3e764c3d35 Fix some logging calls
- Add logging domain to some modules
- Log to module domain instead of generic 'gajim'
2017-09-26 07:14:01 +02:00
Philipp Hörist f8f84338b2 Rename Zeroconf Credentials Dialog 2017-09-25 13:57:25 +02:00
Yann Leboulanger 81a6be74ad Merge branch 'setuptools' into 'master'
Use Setuptools to build gajim

Closes #8633

See merge request !128
2017-09-25 11:15:40 +02:00
Philipp Hörist 65d2284b59 Reduce PROCESS_TIMEOUT on Windows
If io_add_watch is available like on Linux, the PROCESS_TIMEOUT,
is only used to check for timed out events.

On Window its also used to call select() on the socket, so we get
pending data. We need this as low as possible otherwise Gajim on
Windows feels painfully slow.
2017-09-23 10:10:36 +02:00
André Apitzsch 5819f7e439 setup.py: move plugins directory to data directory 2017-09-22 21:48:18 +02:00
André Apitzsch 864e572584 setup.py: install missing files 2017-09-22 19:12:26 +02:00
André Apitzsch 30424b364a Move ipython_view to gajim.dev and exclude it from tarball 2017-09-22 19:12:26 +02:00
André Apitzsch 06102e7d97 Linux: fix translation issue 2017-09-22 19:12:26 +02:00
André Apitzsch 77014f09c6 Add dev version number support 2017-09-22 19:12:26 +02:00
André Apitzsch 624bee755c fix file lookup location and other issues 2017-09-22 19:12:26 +02:00
André Apitzsch ad600f5193 Move data required to run gajim into gajim directory 2017-09-22 19:12:26 +02:00
André Apitzsch cf36549fde Remove Makefiles 2017-09-22 19:12:26 +02:00
Philipp Hörist 9785f31415 Set lock_image from icon name instead of filepath
Fixes #8673
2017-09-22 16:44:07 +02:00
Philipp Hörist b60fe02680 Use own module logger for connection_zeroconf 2017-09-22 00:07:48 +02:00
Yann Leboulanger 66e9bc4e03 Merge branch 'master' into 'gnotification'
# Conflicts:
#   gajim/gajim.py
2017-09-21 20:44:18 +02:00
Yann Leboulanger 28184273e6 annouce XEP-0380 support 2017-09-21 20:36:45 +02:00
Philipp Hörist 7e475705c9 Add simple log instance getter 2017-09-21 19:49:07 +02:00
Yann Leboulanger 0c167b6561 Merge branch 'master' into 'master'
implement XEP-0380. Fixes #8734

Closes #8734

See merge request !133
2017-09-21 17:28:32 +02:00
Yann Leboulanger 3e1ea4a3dc implement XEP-0380. Fixes #8734 2017-09-21 17:19:25 +02:00
Philipp Hörist f50f22c4bd Use custom font for MessageTextView 2017-09-20 21:18:22 +02:00
Yann Leboulanger ab60bcbe85 PyOpenSSL removed rand module. Stop using it. Fixes #8731 2017-09-20 11:39:55 +02:00
Philipp Hörist f6deff2cd0 Fix import 2017-09-19 22:06:21 +02:00
Philipp Hörist 267dd73fcb Catch LibSecret errors 2017-09-19 22:04:39 +02:00
Yann Leboulanger 84060484c4 Remove more Gmail things 2017-09-19 15:52:53 +02:00
Yann Leboulanger a378152a9c Remove Gmail special options 2017-09-19 15:44:58 +02:00
Yann Leboulanger 152be4473b Fix some strings for a better translation 2017-09-19 12:45:02 +02:00
Philipp Hörist b93098a379 Dont use Resolver when using a proxy
This leaks the DNS request
2017-09-17 14:02:01 +02:00
Philipp Hörist 2c9d5d838b Fix Resolver Test 2017-09-17 10:43:10 +02:00
Philipp Hörist cf61eac086 Merge branch 'moveData' into 'master'
Move data files to module

See merge request !132
2017-09-16 16:34:45 +02:00
Philipp Hörist 539c1969db Remove old AccountsWindow 2017-09-16 16:09:19 +02:00
Philipp Hörist dfdeb65e8f New AccountsWindow 2017-09-16 15:55:32 +02:00
André Apitzsch 0080c61014 Install data to new location 2017-09-16 12:18:22 +02:00
André Apitzsch 3be1c2093f Move data files to module 2017-09-16 12:07:31 +02:00
Philipp Hörist 41b977b914 Add option to disable ascii emoticons 2017-09-15 23:22:47 +02:00
Philipp Hörist ef75e93c70 Change License in AboutDialog 2017-09-13 21:52:18 +02:00
Philipp Hörist f6e754727c Differentiate upper/lower case string emojis 2017-09-13 21:20:59 +02:00
Yann Leboulanger 083e3017ab Use GNotification instead of pynotify or dbus 2017-09-13 21:20:37 +02:00
Yann Leboulanger 1b4e856d80 fix reading secrets file 2017-09-13 14:25:36 +02:00
Philipp Hörist 995ade8a11 Only log for GC Message for one account 2017-09-07 16:42:51 +02:00
Philipp Hörist 1a0b7ee163 Dont lose own JID from bind
_registered_name is None on a smacks resume.

Gajim creates on every connection attempt a new nbxmpp.NonBlockingClient
instance. This is why _registered_name is None when we go through a
smacks resume, because there is no bind event, and the new NonBlockingClient
instance has no knowledge of the previous successful bind.
2017-09-06 21:26:40 +02:00
Philipp Hörist 8bc2ab096e Add more log output in case we drop carbons 2017-09-03 22:35:56 +02:00
Philipp Hörist a462af555b Hide License Button only on Windows 2017-09-02 12:07:14 +02:00
Philipp Hörist 4372b67433 Refactor AboutDialog
- Move Credits to const.py
- Minor Refactoring
2017-09-02 11:22:18 +02:00
Yann Leboulanger b7efb3604e Merge branch 'gtkgui_helpers' into 'master'
gtkgui_helpers: remove some unused code

See merge request !125
2017-08-28 15:38:55 +02:00
André Apitzsch fbc5851748 gtkgui_helpers: remove some unused code 2017-08-27 22:43:47 +02:00
Philipp Hörist ec1d75f15b Fix typo in link 2017-08-27 22:41:11 +02:00
Philipp Hörist 298fa4b96d Update old trac links 2017-08-27 22:32:33 +02:00
Yann Leboulanger d6a8a238f8 Merge branch 'os_info' into 'master'
common.helpers: simplify get_os_info()

See merge request !122
2017-08-27 22:22:02 +02:00
Emmanuel Gil Peyrot 63947c42e4 dataforms: Replace @nested_property with @property. 2017-08-27 20:57:35 +01:00
Yann Leboulanger b4362a8a97 ignore some pylint errors 2017-08-27 21:37:19 +02:00
Yann Leboulanger 46c9e5c679 Make IPython 5 work 2017-08-27 21:21:48 +02:00
André Apitzsch 66b49c243c common.helpers: simplify get_os_info() 2017-08-26 00:19:32 +02:00
Yann Leboulanger 134f72db17 Hide some pylint errors 2017-08-24 23:20:35 +02:00
Yann Leboulanger 8d4e815f3e fix some pylint errors 2017-08-24 23:01:06 +02:00
Yann Leboulanger e57817addc Nicer code 2017-08-24 15:41:39 +02:00
André Apitzsch 663176cfc5 fix some import warnings and errors pointed out by pylint 2017-08-24 01:18:01 +02:00
Philipp Hörist b9363fe983 Remove pylint.rc from gajim folder 2017-08-24 00:13:18 +02:00
Yann Leboulanger 2b065c0e58 remove unused import / variable 2017-08-24 00:07:14 +02:00
Philipp Hörist 1a352c0e47 Zeroconf: Call method with correct arguments 2017-08-23 23:34:16 +02:00
Philipp Hörist 28045e9d36 Resolver: Raise correct error 2017-08-23 23:29:38 +02:00
Philipp Hörist 00d091dd54 Add keyword arg to prototype
this was probably forgotten
2017-08-23 23:26:26 +02:00
Philipp Hörist 95f4703de2 Fix unexpected-keyword-arg 2017-08-23 20:24:55 +02:00
Philipp Hörist 26dda61555 Fix undefined-variable 2017-08-23 20:15:32 +02:00
Philipp Hörist 4a9ba28a10 Fix typo 2017-08-23 20:01:48 +02:00
Philipp Hörist 6cacc55901 Dont use internal members in Dialogs
vbox and action_area are internal members of Gtk.Dialog.
We should use the methods provided by the API to get these Objects.
2017-08-23 19:50:29 +02:00
Philipp Hörist 80e5c27fa9 Use correct inherit pattern 2017-08-23 18:57:38 +02:00
Philipp Hörist b72c3c109c Remove unused event handler
There exists no 'default_status_eventbox' anymore in Gajim
2017-08-23 18:47:39 +02:00
Philipp Hörist 44a287703e Fix method call
Regression from making gajim a module
2017-08-23 18:46:43 +02:00
Philipp Hörist 00e72b1d73 Remove unused code
Whatever this was, its not used since 4 years
see 8f71d9f219
2017-08-23 18:34:17 +02:00
Yann Leboulanger 3357622c2d fix enabling accounts 2017-08-22 23:25:07 +02:00
Yann Leboulanger ce719a8317 No need to have one sleepy instance per connection object 2017-08-22 21:55:18 +02:00
mimi89999 1f506a14cf
fix import 2017-08-22 12:39:26 +02:00
Yann Leboulanger d070d141bb fix scrolling to iter in groupchat when we receive a pm. Fixes #8635 2017-08-21 21:59:47 +02:00
Yann Leboulanger 3c693a7a22 fix import 2017-08-21 16:38:27 +02:00
Yann Leboulanger 144c862dab fix import 2017-08-21 16:34:50 +02:00
Yann Leboulanger 07ba85b456 Ability to be notified on all message. Option is now perroom. Fixes #8646 2017-08-20 23:07:58 +02:00
Yann Leboulanger 163306f78a make log history checkbutton sensitive when we open history window with an account. Fixes #8705 2017-08-20 14:57:18 +02:00
Philipp Hörist e8399dc2ed Fix wrong call to Sleepy()
And place a log call so we can gather exceptions to lose the
general exception in the future.
2017-08-19 22:32:50 +02:00
Yann Leboulanger c4383c16c6 Use correct account when opening history window 2017-08-18 22:05:48 +02:00
Yann Leboulanger 9bafd7698b fix some Q_() call 2017-08-18 22:05:16 +02:00
André Apitzsch 89c7eb6e6a Rename gajim.common.gajim to avoid name conflicts 2017-08-18 20:03:20 +02:00
André Apitzsch ab041963b1 Fix start of history manager from gajim 2017-08-18 19:48:48 +02:00
André Apitzsch 674012042a Mark gajim as a python package 2017-08-18 19:48:48 +02:00
André Apitzsch 675ebe54dd Up Gajim version to 0.16.11 2017-08-18 19:48:48 +02:00
André Apitzsch f7e83af297 GajimRemote: Fix invalid filename 2017-08-18 19:48:48 +02:00
André Apitzsch efec098aef Use absolute imports 2017-08-18 19:48:48 +02:00
Philipp Hörist 10f8fe2bb5 Use unique id as action name instead of jid
A jid can contain characters that are not allowed in an action name.
This creates a unique UUID4 for each MessageControl and uses it as
action name instead.

We can reuse the UUID for other actions that belong to the
MessageControl

Fixes #8636
2017-08-18 18:58:07 +02:00
Philipp Hörist d20f2201f2 Print error on unhandled commandline arguments 2017-08-18 17:48:03 +02:00
Yann Leboulanger 43fbcbf8cf remove call to old XEP-0136 function 2017-08-17 22:18:35 +02:00
Yann Leboulanger a47bb9f03c fix error when someone changes nick ina room 2017-08-17 21:40:00 +02:00
Yann Leboulanger cfbf45cdf7 add missing config options to save pm position and size 2017-08-17 15:03:40 +02:00
Yann Leboulanger 2bb5ad7bca fix DnD of files on roster 2017-08-16 23:06:05 +02:00
Yann Leboulanger 09bcbc0cef Forget all unused streamhosts when we use one of our proposed streamhosts 2017-08-16 23:05:43 +02:00
Yann Leboulanger 99b27b4484 correctly compute file hash when file is received 2017-08-16 22:03:17 +02:00
Philipp Hörist 1211a1bc59 XMLConsole: Use glade file for building widgets 2017-08-16 19:05:13 +02:00
Yann Leboulanger 21e144d89d use correct SID in Jingle FT to compute hostname of SOCKS5 connection. Fixes #8703 2017-08-16 15:27:35 +02:00
Philipp Hörist 4f4a58e51a XMLConsole: Fix size allocate warning
It seems to be important to let all widgets realize and then
hide the ones we dont want to show, instead of not showing them
in the first place.
2017-08-15 19:45:42 +02:00
Philipp Hörist 4ad5fd9cdc Add method for creating image buttons 2017-08-15 19:23:23 +02:00
Yann Leboulanger 9ce6299e1a use netifaces to get local IPs if available. Fixes #8666 2017-08-14 18:37:11 +02:00
Yann Leboulanger d994845212 Revert "use netifaces to get local IPs if available. Fixes #8666"
This reverts commit b9c363e9cd.
2017-08-14 18:36:40 +02:00
Yann Leboulanger b9c363e9cd use netifaces to get local IPs if available. Fixes #8666 2017-08-14 16:43:44 +02:00
Philipp Hörist dbbd3fe111 Fix broken menus when renaming an account 2017-08-14 15:02:55 +02:00
Yann Leboulanger f8383954e3 Fix socks5 problem:
receive() returns bytes, not str
2017-08-14 14:44:04 +02:00
Yann Leboulanger bda11b7d39 Merge branch 'master' into 'master'
rework password interface. Fixes #8347

Closes #8347

See merge request !117
2017-08-14 10:15:07 +02:00
Yann Leboulanger 9b866fd1a0 do not create Event when we auto popup a normal message. Fixes #8645 2017-08-13 23:03:11 +02:00
Yann Leboulanger 89d3c3af14 rework password interface. Fixes #8347 2017-08-13 14:22:28 +02:00
Philipp Hörist 27afece678 OptionsDialog: Center switch button vertically 2017-08-13 00:50:39 +02:00
Philipp Hörist 5554e99452 Add maximize button to XMLConsole window 2017-08-13 00:45:03 +02:00
Yann Leboulanger 43b3d1bd83 unify cid -> candidate_id 2017-08-12 22:55:17 +02:00
Yann Leboulanger baa54f5010 Merge branch 'use_precis' into 'master'
Use precis instead of stringprep when available. Fixes #8566

See merge request !116
2017-08-12 14:55:08 +02:00
Yann Leboulanger af547a1827 don't close the socket we're using to tranfer file. Fixes #8657 2017-08-12 14:40:26 +02:00
Yann Leboulanger b6189a60cf use idna python module to check domainpart when available 2017-08-11 08:12:00 +02:00
Yann Leboulanger 1a2ac87f46 use precis_i18n instead of stringprepare when available to sanitize JIDs 2017-08-11 08:11:52 +02:00
Philipp Hörist 5a7a6766b8 Fix rare bug in scroll_to_end() 2017-08-10 11:07:57 +02:00
Philipp Hörist a25a38edd3 Correctly destroy all windows on quit()
Not all Dialogs have a window instance, some inherit Gtk.Window
2017-08-10 11:04:21 +02:00
Philipp Hörist 512e6d2c8e Redesign XML Console
- Use modern GTK Widgets (HeaderBar, ActionBar, Switch)
- Add an option to filter Stream Management stanzas
- Add a generic Option Dialog that we can reuse later
2017-08-10 02:13:20 +02:00
Philipp Hörist e6f1d29471 Remove old XML Console 2017-08-10 02:13:20 +02:00
Yann Leboulanger b5c3b15c0f Fix running tests 2017-08-09 21:05:45 +02:00
Philipp Hörist c57af6dade Retract nickname from pubsub correctly 2017-08-08 19:58:20 +02:00
Philipp Hörist f3bdb596bd Refactor remove_roster()
- Execute as script to save roundtrips
2017-08-08 18:53:25 +02:00
Philipp Hörist 10b0865291 Refactor set_room_last_message_time()
- Dont depend on get_jid_id(), this saves roundtrips
2017-08-08 18:22:29 +02:00
Philipp Hörist c53e2b1bb9 Dont try to insert if JID is already in DB
- This is added because even an ignored INSERT raises the
autoincrement value of the table.
This means the jid id gets high really fast.
2017-08-08 18:22:29 +02:00
Philipp Hörist f88e8d835b Remove old DB methods 2017-08-08 18:22:29 +02:00
Philipp Hörist 25a764a656 Port logging incoming messages to new DB API 2017-08-08 18:22:23 +02:00
Philipp Hörist 8c920b35ff Move logging GC messages into connection_handlers
- It should be where all other message received handlers are
- Port to new DB API
2017-08-08 15:24:41 +02:00
Philipp Hörist 608655deed Use new DB API for logging status and errors 2017-08-08 14:41:55 +02:00
Philipp Hörist 635ce52856 PluginManager: prefer plugins in user path
As we always load plugins from the user path first, we should not
reload them later from Gajims plugin base dir
2017-08-07 20:02:03 +02:00
Philipp Hörist 7e0e4cced0 PluginManager: remove plugin path from sys.path
Remove plugin path from sys.path after importing.

If we scan multiple plugin dirs and never remove the path from
sys.path, it is hard to predict from which path python will import
a package.

The chance that the same plugin package is in multiple plugin paths
is high.
2017-08-07 19:28:54 +02:00
Philipp Hörist 413c7f52d7 Add senders attr to Jingle FT
This is a MUST see https://xmpp.org/extensions/xep-0234.html

Fixes #8662
2017-08-07 17:41:32 +02:00
Philipp Hörist 1eeb53bee6 Use correct file date on Jingle FT
- XEP-0234 demands UTC
- we missed the 'Z' at the end
- simplified the code
2017-08-07 13:34:23 +02:00
Philipp Hörist a2e2fb2ed1 Remove useless code
Simplify whats left
2017-08-02 23:40:55 +02:00
Philipp Hörist 9d2898bb35 Log sent messages with new logger method
- also save stanza id to the DB
2017-08-02 23:34:24 +02:00
Philipp Hörist a01611178d Logger: dont try to parse None with json 2017-08-02 21:32:59 +02:00
Philipp Hörist 0c6002b9ac Zeroconf: handle only zeroconf messages 2017-08-02 21:03:12 +02:00
Philipp Hörist 97f6b84b90 Remove old unused code 2017-08-02 19:24:09 +02:00
Philipp Hörist f1a29fcb6a About Dialog: Update Copyright 2017-08-02 18:59:21 +02:00
Philipp Hörist 6f3c21118f Stay compatible to python 3.4
Fixes #8690
2017-08-02 18:57:02 +02:00
Philipp Hörist 651611b28b Improve timestamp usage for MAM
- Use new parse_datetime() method
- Drop message with error if MAM doesnt supply a timestamp.
- If the user supplys an own timestamp, save it so we can decide in the
future how to display it.
2017-08-01 21:43:28 +02:00
Philipp Hörist e24d4f8caf Fix receiving MAM Messages from ourself
This is a regression from the refactoring
2017-08-01 21:39:11 +02:00
Philipp Hörist 1f5e927ca6 Use new DB methods for MAM Messages
- also push a new MamDecryptedMessageReceived
event after disco instead of writing directly to the DB
2017-08-01 21:39:11 +02:00
Philipp Hörist 16fd64873e Add new logger methods
Goal is to make the logger module easier to maintain in the future

- extract deduplication out into a own method, so we can use it
on its own in some other places.

- add new insert_into_logs() method
the DB fields we want to write to are passed as arguments, this makes
it so we dont have to change the method when we add or remove DB fields
in the future.

- instead of using get_jid_id() all around gajim to get the jid_id
before we write to the DB, we only have to pass the jid to
insert_into_logs(), it makes sure to get the correct jid_id or add
one in case it doesnt exist.
2017-08-01 21:39:06 +02:00
Philipp Hörist 6925ce0628 Merge branch 'master' into 'master'
Add a new XEP-0082 parsing method

See merge request !111
2017-08-01 20:57:15 +02:00
Philipp Hörist 0fee27928d Add a new XEP-0082 parsing method
This handles every possible XEP-0082 timestamp

It has some additional options:

- Check if a timestring is a valid UTC timestamp, as required by some
XEPs (for example: XEP-0203)
- Return timestamp as datetime in UTC
- Return timestamp as datetime in localtime
- Return timestamp as epoch
2017-08-01 20:53:00 +02:00
Philipp Hörist e493606070 Fix typo 2017-07-31 19:30:18 +02:00
Yann Leboulanger 6a95fe79ae Merge branch 'xep-0319' into 'master'
Xep 0319

See merge request !110
2017-07-31 19:16:27 +02:00
Yann Leboulanger 28917aaf56 Do not use XEP-0012 anymore to know idle time. Use XEP-0319 2017-07-31 19:14:12 +02:00
Philipp Hörist 850e273605 Correctly remove timeout source
Set source IDs to None after removing the source
except when shutting down, because the Control ist destroyed anyway

Only try to remove if we have a source ID
2017-07-31 02:59:52 +02:00
Philipp Hörist 81566df8a1 Fix some regressions with MAM
- On single messages use the bare JID for DB querys
- Add more debug logging
- Some light refactoring
2017-07-30 23:04:50 +02:00
Philipp Hörist c1decf682b Adapt to latest nbxmpp changes 2017-07-29 21:35:45 +02:00
Philipp Hörist b8aaf09c13 Fix infinite expand of MessageTextView
- The 'configure-event' does not trigger anymore when connected to
the MessageTextView. The reason is unknown.

- Use our own ScrolledWindow Widget instead so we can better control
the dimension of the MessageTextView
2017-07-28 20:40:30 +02:00
Philipp Hörist c963fc5dcc Fix use of deprecated method 2017-07-28 20:40:09 +02:00
Philipp Hörist 766458f394 HistorySync: Connect to different event for counting
This lets us better count how many messages we retrieved
2017-07-28 14:51:54 +02:00
Philipp Hörist 9bca51eb69 Implement XEP-0359 Stable Stanza IDs
- This allows us to better deduplicate Messages on MAM syncs
2017-07-28 14:03:14 +02:00
Philipp Hörist 8558a43651 Update config setting description
We dont use 0136 anymore
2017-07-28 00:34:18 +02:00
Philipp Hörist 9ff601d03b Remove XEP-0136 support 2017-07-28 00:07:49 +02:00
Philipp Hörist 1e313cc7e2 Improve getting own jid
We get our full JID on the bind event.
After that it is saved in the `registered_name` attr on the Connection
Object.

In case the bind never occured we get the bare JID from config.
2017-07-27 22:14:29 +02:00
Philipp Hörist 914935f864 Use right amount of arguments on pack_start 2017-07-27 21:50:38 +02:00
Philipp Hörist f449acd815 Refactor MamDecryptedMessageReceivedEvent
- Condition type = groupchat is not needed because we drop messages
type groupchat that come from the user archive. To get these messages
we will query the MUC.

- Because of this the logging method save_if_not_exists() can be much
simpler
2017-07-27 21:46:19 +02:00
Philipp Hörist cb90f9decd Merge branch 'logger' into 'master'
Refactor Logger

See merge request !108
2017-07-27 11:57:09 +02:00
Philipp Hörist fe1f2c0103 Dont drop MAM Message on missing stanza-id
A missing stanza ID means, we will have to take some measures to make
sure we get no duplicates in the Database later on.

Also fix getting the origin-id. Third time is a charm.
2017-07-27 03:33:19 +02:00
Philipp Hörist 9d6e3f4323 Get the ID attr of origin-id instead of the Node 2017-07-26 02:41:08 +02:00
Philipp Hörist 7f0bcbb5bf Correctly set stanza-id for received MAM messages
The gaol why we need to determine what ID should be used as stanza-id,
is so we can use the stanza-id in the future for deduplication.

Case we are the sender:

Either we look for a origin-id element, which we will include in the
Future in all messages we send, or until then the ID we set on the
message as attr.

Case we are the receiver:

If our server supports mam:2 we take the ID of the result element,
because mam:2 injects the archive ID live into every message we
receive. If we dont have mam:2 we fall back to the ID of the message
attr.
2017-07-26 02:35:34 +02:00
Philipp Hörist a5480eb167 Add ServerInfo Dialog 2017-07-26 00:07:43 +02:00
Philipp Hörist 33a51f3180 Preparation for MUC Archive querys
- Refactor and clean up code around MamMessageReceivedEvent
- Goal is to add a GcMamMessageReceivedEvent later on
- For that cause added a raw-mam-message-received base event
2017-07-25 21:01:18 +02:00
Philipp Hörist aefb571168 Add new NetworkEvents method
This lets us attach all attributes of the base event to the
new event. Often Events trigger other Events. When that happens
we often want to keep all attr from the previous Event, and just
continue under a new Event. Until now all attr had to be pulled
out of `self.base_event` again.
2017-07-25 21:00:20 +02:00
Philipp Hörist 89367a83ec Add simple parse_delay() method
The XEP is pretty strict on Delay tags so we can make a simple
method.
2017-07-25 21:00:20 +02:00
Philipp Hörist 06d890eea7 Add more convenient get_own_jid() method 2017-07-25 21:00:20 +02:00
Philipp Hörist 85d220c80e Add Synchronise History Dialog
- On first contact with the MAM Archive only request 7 days
- To sync the rest of the archive the new Dialog can be used.
2017-07-25 21:00:20 +02:00
Philipp Hörist e548a89269 Add pylint hints 2017-07-25 21:00:20 +02:00
Philipp Hörist 78addad067 Fix InfoBarMessage on GC invite 2017-07-24 23:48:00 +02:00
Philipp Hörist e5a41ea2b3 Raise min version of TLS to 1.2 2017-07-24 23:38:10 +02:00
Philipp Hörist 054960ebb0 Commit to DB at the last moment on shutdown
It seems some events fire after prepare_quit(), notably
set_room_last_message_time()
2017-07-24 23:38:10 +02:00
Yann Leboulanger 2dedf38f51 don't show audio error when it's not an audio error. Fixes #8614 2017-07-24 22:20:13 +02:00
Yann Leboulanger f36860e37d limit priority value inc ase user set an invalid priority in ACE. Fixes #8630 2017-07-24 21:52:11 +02:00
Philipp Hörist 9046797e1b Remove _build_contact_where()
We dont need it anymore
2017-07-21 16:58:04 +02:00
Philipp Hörist 9feee7d9dc Refactor get_room_last_message_time()
- Refactor get_last_date_that_has_logs()

- use NATURAL JOIN in SQL query instead of multiple SELECT via
_build_contact_where

- make code more concise

- update method documentation
2017-07-21 16:58:04 +02:00
Philipp Hörist 1e380473cd Refactor get_days_with_logs()
- use NATURAL JOIN in SQL query instead of multiple SELECT via
_build_contact_where

- make code more concise

- update method documentation
2017-07-21 16:58:04 +02:00
Philipp Hörist fb7eb0718a Refactor search_log()
- use NATURAL JOIN in SQL query instead of multiple SELECT via
_build_contact_where

- make code more concise

- update method documentation
2017-07-21 16:58:04 +02:00
Philipp Hörist 950f763220 Refactor get_conversation_for_date()
- use NATURAL JOIN in SQL query instead of multiple SELECT via
_build_contact_where

- make code more concise

- update method documentation

- Fix a bug where messages were displayed in wrong order when
they had the same timestamp
2017-07-21 16:58:04 +02:00
Philipp Hörist 40ba449f47 Refactor get_last_conversation_lines()
- use NATURAL JOIN in SQL query instead of multiple SELECT via
_build_contact_where

- make code more concise

- update method documentation
2017-07-21 16:58:04 +02:00
Philipp Hörist 96cbed4fe7 Remove redundant source_remove()
We remove the source in _schedule_activity_timers()
2017-07-20 01:58:41 +02:00
Philipp Hörist 5e1e4e27e7 Fix multiple metacontact requests at startup
_continue_connection_request_privacy() should only trigger
once after we received the discoinfo on the hostname.

We do a discoinfo on all items that the server offers,
_continue_connection_request_privacy() was triggered on every received
discoinfo again, hence requesting metacontacts and delimiters again.

also _continue_connection_request_privacy() was called on every
discoinfo error, instead of only on a hostname discoinfo error.

This bug is only triggered if the server doesnt support privacy rules.
2017-07-20 01:58:08 +02:00
Philipp Hörist a754c05979 Fix discovery of MAM 2017-07-19 20:19:40 +02:00
Philipp Hörist 47c33bbe39 Play sounds on MacOS 2017-07-19 13:16:27 +02:00
Philipp Hörist cdc2ec9205 Fix not requesting roster on empty cache.db
The purpose of

`if version and not gajim.contacts.get_contacts_jid_list()`

seemed to be that when cache.db is empty (maybe it was deleted)
`gajim.contacts.get_contacts_jid_list()` should come back empty.

So on an empty roster cache, version was set to None, so that we
request in any case a new roster.

The Problem is that `gajim.contacts.get_contacts_jid_list()` is not
a good indication for an empty cache.db. On start we trigger a
`RosterReceivedEvent` which does a DB query to get the roster. Even
if that DB query comes up empty, the Event is still pushed.

In the event handler `_nec_roster_received` in roster_window.py we
add then previously open controls and our self (if the option is set)
to the roster, making `gajim.contacts.get_contacts_jid_list()` return
these contacts and hence the condition in `request_roster()` always
False.

So the version is set in the roster request, and if there is no new
version on the server, we request no new roster even though we only
have ourself and previously open controls in our roster.

As a solution for this we delete the roster version from the config
in `RosterReceivedEvent` if the DB query comes back empty, which
triggers a new roster request.
2017-07-19 10:52:02 +02:00
Philipp Hörist e675df1803 Fix activity timers for groupchat
- Dont add timers when we autojoin minimized
- Remove timers when the chatcontrol gets minimized
- Send inactive chatstate when the chatcontrol gets minimized
- Add timers when the chatcontrol gets maximized
2017-07-16 23:58:54 +02:00
Philipp Hörist 4ba143fd68 Fix not working ManagePEPServicesWindow Dialog 2017-07-16 22:49:34 +02:00
Philipp Hörist 0877364214 Disable encryption if plugin is missing 2017-07-12 22:34:55 +02:00
Philipp Hörist ef38afcf90 Use namedtuples for results from the DB
This makes the code much easier to read, and much less error prone.
2017-07-12 22:34:55 +02:00
SaltyBones e6840ab8b6 fixed lookup of description for keyed options 2017-07-11 20:35:47 +02:00
Philipp Hörist cc682d243f Change defaults on history restore options
Set restore timeout inactiv, this should be really an advanced option,
probably only set for specific MUCs not as default for every MUC.

Set restore_lines to 10, so the User has an indication that Gajim can
display history, and that there is probably a setting to adjust.

Set muc_restore_lines to 100, this is a try to get a reasonable amount
of history, especially in small Groupchats. Most server will limit this
to 20-50 anyway. The limit 100 is more of a precaution if we run into a
misconfigured server. This is intended as a workaround until we can
implement MAM for Groupchats.
2017-07-10 21:03:45 +02:00
Philipp Hörist a818b60ba7 Fix unlimited muc_restore_timeout
muc_restore_timeout set to -1 means we want no particular time set, up
to which we request messages. But we should not deliberate request
messages we already have. Hence even if muc_restore_timeout is set
to -1, we should only request up to the last message we received.
2017-07-10 20:13:10 +02:00
Philipp Hörist b625199c47 Allow for a no limit option on restore_timeout 2017-07-10 18:26:17 +02:00
Philipp Hörist aeb64a516c Use correct history date on muc join
Example:
If we receive a message the last message date is now.
If we restart Gajim and join the MUC again, `time.time() - timeout`
will be most likly smaller then when we received the last message
If the timeout is an hour, this would mean that many messages are requested
from the archive which we already received.

So we always want the most current timestamp (MAX).
2017-07-10 16:39:27 +02:00
Philipp Hörist 5a8965791c Commit to DB before shutdown
Because some operations use the _timeout_commit() it happens that a timeout
is active while we shutdown.

This makes sure everything is commited before shutdown.
2017-07-10 16:25:26 +02:00
Philipp Hörist 0eca29d484 Fix memory leak in plugins window
- remove gui extension point on close, to remove the reference the plugin manager holds to the Class.

- reduce scope of var that holds reference to Gtk.Builder(). We have to be careful with
Gtk.Builder, because it can hold a reference to our Class (methods bound to signals) which creates a reference cycle
which python is not able to detect. Hence neither Gtk.Builder nor our Class are garbage collected.
Why this is not detected as a reference cylce is unclear at the moment.

There are two approaches to circumvent the problem:

1. we lose our reference to Gtk.Builder when closing the window, which lets python garbage
collect the builder, afterwards it can garbage collect our class.

2. we reduce the scope of the var that holds a reference to Gtk.Builder, so that the builder
can be garbage collected at the end of __init__.

I chose to reduce the scope because the builder is not needed class wide.
2017-07-10 01:15:30 +02:00
Philipp Hörist ab85729fe5 Fix displaying links in textview
Regression from 79716f421f
2017-07-04 12:26:05 +02:00
Philipp Hörist 3d8be9ebe2 Fix emoticons module import on windows 2017-07-03 11:32:47 +02:00
Philipp Hörist 635b05c1ca Make noto-emoticons the default theme 2017-07-02 21:30:21 +02:00
Philipp Hörist 79716f421f Rework emoticon menu 2017-07-02 21:27:44 +02:00
André Apitzsch 125ce523e4 Rename src directory 2017-07-02 17:25:47 +02:00