Commit Graph

340 Commits

Author SHA1 Message Date
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