Commit Graph

1388 Commits

Author SHA1 Message Date
Philipp Hörist de4cd80b83 Make namedtuple local 2018-12-18 22:52:29 +01:00
Philipp Hörist ced387e719 Remove legacy code 2018-12-18 22:49:07 +01:00
Philipp Hörist 7286f4286f Add feature-discovered event
This lets us move more GUI code out of the common module
2018-12-18 22:41:06 +01:00
Philipp Hörist 89d9940933 Roster: Register our-show with lower priority
This event is used to shutdown the roster if we quit, it destroys all windows.

This should be run last because other objects like the ChatControl need a reference to the window to shutdown properly
2018-12-18 14:40:38 +01:00
Philipp Hörist 0ac52a390e Allow handlers list to be modifed while iterating 2018-12-18 14:08:27 +01:00
Philipp Hörist a6b8ecf6f5 Fix error when opening sign-in/out notification 2018-12-17 15:02:40 +01:00
Philipp Hörist b449567600 Make copying text work with different layouts
This makes it possible so text can be copied from the conversation textview with other keyboard layouts than english
2018-12-17 14:49:50 +01:00
Philipp Hörist 841f12f75b Fix mypy errors 2018-12-17 00:41:46 +01:00
Philipp Hörist 96edd79963 Handle PEP bookmarks notifications
- Handle PEP bookmark notifications
- On new bookmarks with the auto join flag set, join the MUC
- Dont merge private and pubsub bookmarks
- Only use pubsub if the conversion feature is announced
2018-12-17 00:36:45 +01:00
Philipp Hörist 19b0e73f44 Fix error on key press
Fixes #9471
2018-12-16 01:01:44 +01:00
Philipp Hörist 674ec48fa2 DBus: Show correct unread message number
Fixes #8362
2018-12-15 23:59:27 +01:00
Philipp Hörist 760645f5c3 Improve MUC notifications
- Play sound for received messages, if notify for all messages is activated
- Send system notifications on MUC messages
- Make notify for all the default in private MUCs

Fixes #9383
2018-12-15 23:37:44 +01:00
Philipp Hörist dac5370780 Dont draw contact after selection change
This seems to be an old codepath, currently there is no need to redraw a contact on selection change

Fixes #9496
2018-12-14 21:39:58 +01:00
Philipp Hörist 5843827abc Fix start chat menu action
Fixes #8275
2018-12-12 23:35:36 +01:00
Philipp Hörist be420d44fc Implement XEP-0411 Bookmarks Conversion
If bookmarks conversion is announced by the server:

- Dont merge bookmarks
- Only push to either private storage or pubsub
2018-12-10 22:30:45 +01:00
Philipp Hörist 4e814dabcf Fix disabled join groupchat menu
When there are no bookmarks on the server the join groupchat menu
was disabled, preventing the user to open the join groupchat dialog
2018-12-10 22:30:37 +01:00
Philipp Hörist 6e30d3af64 Adapt to nbxmpp API changes
- Remove support for OAUTH2
- Remove insecure password dialog, its impossible now that a user can connect plain by mistake
- Refactor requesting the password
- Add possibility to delete passwords
2018-12-09 18:48:44 +01:00
Philipp Hörist b8863e82be MUC: Identify subject change correctly
Fixes #9491
2018-12-09 00:29:20 +01:00
Philipp Hörist 293156f670 Find correct contact on private message
get_contact() returns also a contact if only the bare jid matches,
which for private messages is the groupchat contact object.
2018-12-09 00:01:18 +01:00
Philipp Hörist d129f5559a DataFormWidget: Fix some UI issues
- Textview: Wrap text, set padding
- ListMultiTreeView: Align checkboxes to the right
- Add a adjustment element that sets default sizes on the columns
- Allow two new options 'form-width' and 'left-width' to customize sizes
2018-12-06 23:06:10 +01:00
Philipp Hörist ace1113d02 Fix pylint errors 2018-12-05 21:40:12 +01:00
Philipp Hörist a979874fa1 Sort imports 2018-12-05 17:05:29 +01:00
Philipp Hörist e419f75217 Remove unused imports 2018-12-05 17:05:10 +01:00
Philipp Hörist 4968fe39e2 Correctly remove ping timeout
Fixes #9481
2018-12-05 17:03:34 +01:00
Philipp Hörist 62253c804a Discover the bookmarks conversion server feature 2018-12-04 20:41:44 +01:00
Philipp Hörist c2e2dd9a87 Fix MUC nick change 2018-12-04 19:43:55 +01:00
Philipp Hörist 86bbdd21fd Encode resource with correct profile
Fixes #9465
2018-12-04 19:43:13 +01:00
Philipp Hörist 932377f533 Remove unused event 2018-12-04 19:32:13 +01:00
Philipp Hörist 700666b820 Refactor send timeouts
Fixes #9459
2018-12-04 19:29:32 +01:00
Philipp Hörist 78f439c611 Refactor disconnect code
Fixes #9467
2018-12-04 19:28:50 +01:00
Philipp Hörist 59855a6c8d Determine delay timestamp correctly
- Check the from attr on the delay node to determine if its a user timestamp or from the server
- Dont use user timestamp for sorting
- Record the user timestamp in additional data so its saved to the database

Fixes #9444
2018-12-04 12:18:17 +01:00
Philipp Hörist fd6dec1208 Handle presence without from attr correctly
Fixes #9472
2018-12-03 15:40:43 +01:00
Philipp Hörist 1d11e06647 Fix error when creating MUC
Fixes #9473
2018-12-03 14:17:46 +01:00
Philipp Hörist 3f2e3c6bb2 Better handle not available keyring backends 2018-12-01 21:46:58 +01:00
Philipp Hörist 432a4edbc1 Use custom dict for additional data
This makes it easier to retrive and store values
2018-11-30 23:05:15 +01:00
Philipp Hörist 91ebe37359 AccountsWindow: Fix back button 2018-11-27 21:04:13 +01:00
Philipp Hörist f1ab9fb683 Fix connection resume
Fixes #9458
2018-11-27 19:23:34 +01:00
Andrey Gursky f942e2c70f Fix receipts for chat
This is a regression from e3050697
2018-11-27 02:17:25 +01:00
Philipp Hörist 5fa56684c7 Adapt to nbxmpp API changes 2018-11-25 20:02:20 +01:00
Philipp Hörist cb05671254 Dont fail when importing plugin_i18n for tests 2018-11-21 21:44:19 +01:00
Philipp Hörist 35b5a4d7a9 Satisfy pylint/mypy 2018-11-20 23:06:27 +01:00
Philipp Hörist 6327679461 Refactor set_unset_urgency_hint() 2018-11-20 22:59:02 +01:00
Philipp Hörist c97fddf0f8 Move PrivateChatControl into own module 2018-11-20 22:41:43 +01:00
Philipp Hörist fa0f35da01 Fix opening links in MUC subject
The default GTK link handler does not work on Windows and Mac

Fixes #9453
2018-11-20 18:44:58 +01:00
Philipp Hörist c8b5eb94a9 Remove unused imports 2018-11-20 16:16:30 +01:00
Philipp Hörist 15c3de2b4d Add option to show chatstate in roster
- Preferences: Add options for display in banner, tab, roster
- This makes the chatstate Plugin obsolete
2018-11-20 15:32:01 +01:00
Philipp Hörist b74468b9c3 Move chatstate css to default theme
This is needed so we can query the current chatstate colors in cellrenderers
2018-11-20 15:32:01 +01:00
Philipp Hörist c61bd65607 Simplify PEP module inits 2018-11-20 15:32:01 +01:00
Marcin Mielniczuk 9d8b56bc0f Refactor groupchat nick auto completion 2018-11-20 10:37:12 +01:00
Philipp Hörist a00e8e3abb Dont use deprecated GLib.glib_version 2018-11-20 00:04:41 +01:00
Philipp Hörist e305069798 Fix receipts for MUC-PMs 2018-11-19 19:33:28 +01:00
Philipp Hörist b5bd5f15f0 Dont check mam:2 compliance for error messages 2018-11-19 18:04:32 +01:00
Philipp Hörist 1504805575 Dont answer groupchat receipt requests 2018-11-19 17:51:18 +01:00
Philipp Hörist 596f268f14 Fix missing default arg 2018-11-19 15:04:04 +01:00
Philipp Hörist b98f0a3f76 Remove all usage of get_gtk_builder() 2018-11-18 22:24:34 +01:00
Philipp Hörist 3c32d51174 Fix deprecated init 2018-11-18 22:24:33 +01:00
Philipp Hörist dffa54f7d3 Refactor Windows Notifications
- Only show one notification at a time
- Fix pylint errors
2018-11-18 22:24:33 +01:00
Philipp Hörist fedc00eb83 Move notify to gtk folder
- Rename notify to notification
- Move get_show_in_roster() to gtk.util
- Move get_show_in_systray() to gtk.util
2018-11-18 22:24:33 +01:00
Philipp Hörist 2ece342de2 Notification: Use load_icon() 2018-11-18 22:24:33 +01:00
Philipp Hörist 1179333fa0 Refactor loading user supplied iconsets 2018-11-18 22:24:33 +01:00
Philipp Hörist aca34d5c35 Remove old icons 2018-11-18 22:24:33 +01:00
Philipp Hörist 3ba34fa396 Remove old iconset code 2018-11-18 22:24:32 +01:00
Philipp Hörist 619793a085 Groupchat: Use icons from IconTheme 2018-11-18 22:24:32 +01:00
Philipp Hörist acc89ad622 Roster: Use icons from IconTheme for Roster
With this Gajim loses the ability to draw animated GIFs in the Roster

GIFs have numerous drawbacks:

- We cant add them to the IconTheme, which means we need a different interface to load them
- The IconTheme scales all icons we load for the current scale (HiDPI)
- The animation causes many updates to the Roster, and causes high cpu usage

Fixes #8814, #8655
2018-11-18 22:24:10 +01:00
Philipp Hörist 8be5562b92 Dont fail when IconTheme is not available
This is needed for tests to work
2018-11-18 12:52:24 +01:00
Philipp Hörist d13baed80f Improve Entity Time parsing
- Use parse_datetime()
- Improve tzo node validation
2018-11-18 10:35:13 +01:00
Philipp Hörist f40f171ecd Refactor parse_datetime and add unit test 2018-11-18 10:35:13 +01:00
Philipp Hörist b5b3820328 Remove unused methods 2018-11-18 10:35:13 +01:00
Philipp Hörist 431d8075a6 Use get_cursor from gtk.util 2018-11-18 10:35:13 +01:00
Philipp Hörist cee63aa0d8 Move htmltextview into gtk module 2018-11-18 10:35:13 +01:00
Philipp Hörist fb5cee69cb Dont use deprecated begins_tag() 2018-11-16 21:44:20 +01:00
Philipp Hörist 80954e9534 HtmlTextView: minor refactoring
- Move updating tags into HtmlTextView
- Rename some vars
- Remove legacy GTK code
2018-11-16 21:39:45 +01:00
Philipp Hörist eedd0c2a72 HtmlTextView: Fix pylint errors and minor refactoring 2018-11-16 21:39:19 +01:00
Philipp Hörist 97310a059a HtmlTextView: Remove some unnecessary methods 2018-11-16 21:36:04 +01:00
Philipp Hörist 63ff9478bd XHTML: Fix parsing font-size
Remove checking for font_scale, Gtk.TextIter.get_attributes() seems buggy at
the moment, and we dont need to check the current scale to apply a new scale

Fixes #9067
2018-11-16 16:23:42 +01:00
Philipp Hörist 7f1dfe5a8c New DataFormWidget: Add Captcha support 2018-11-15 21:02:09 +01:00
Bronko 4be4998704 fix typos in config.py 2018-11-14 22:44:41 +01:00
Philipp Hörist 9e24c72ba5 Fix incorrect contact status on tabs 2018-11-13 23:47:54 +01:00
Philipp Hörist 9c5de3bf25 Correctly remove placeholder on focus in
This is a regression from e281fb68

Fixes #9440
2018-11-12 17:47:04 +01:00
Andrey Gursky e281fb6839 Fix clipboard paste in inactive window
Fixes #9427
2018-11-11 17:20:36 +01:00
Philipp Hörist e509a68139 Determine absolut path for custom config folder
When a relative custom config path is passed via commandline, the logic
which decides if a plugin can be deleted from the plugin manager fails
2018-11-11 15:15:10 +01:00
Philipp Hörist 62b210a9e5 Pass account to plugins when encrypting a file 2018-11-11 10:40:48 +01:00
Philipp Hörist 30a20e16d2 Enforce min and max version for plugin manifest
This reduces problems with old plugins without max version
2018-11-11 10:21:46 +01:00
Philipp Hörist e4a9ffe1ca Dont test for sys.platform == 'linux'
This excludes other unix systems which was not intended
2018-11-10 19:30:19 +01:00
Philipp Hörist 02a9615b94 Dont test if precis_i18n is available
Its listed as dependency
2018-11-10 19:30:19 +01:00
Philipp Hörist a7cc815ca4 Move imports into function 2018-11-10 19:30:18 +01:00
Philipp Hörist 5152611ad7 Try to play sound on all unix systems
sys.platform == 'linux' excludeds other unix systems, for example FreeBSD
2018-11-10 19:30:18 +01:00
Philipp Hörist 0d70352460 Dont test if winsound is available
Its a standard library which will be always available in our builds
2018-11-10 19:30:13 +01:00
Philipp Hörist 1f31ab04f2 Remove unused code
Code is also not cross-platform compatible
2018-11-10 19:30:13 +01:00
Philipp Hörist 8d95eb9b99 Better determine soundplayer on unix systems
- sys.platform == 'linux', excludes many other unix systems
- use shutil.which() to test if a command is available
2018-11-10 19:30:12 +01:00
Philipp Hörist 62cfd7293a Remove unused import 2018-11-07 23:49:29 +01:00
Philipp Hörist 4534f3dbac Do not use own window for RosterTooltip 2018-11-07 23:44:16 +01:00
Daniel Brötzmann 13c82ae777 Update look on GCTooltip and RosterTooltip 2018-11-07 23:07:26 +01:00
Daniel Brötzmann bd7e32187d Update History Manager GUI 2018-11-07 22:52:23 +01:00
Daniel Brötzmann 02f16d53f4 Remove None from list, rename None to No Proxy in combobox 2018-11-07 21:22:25 +01:00
Daniel Brötzmann 56f948f56b Remove unnecessary .destroy 2018-11-07 17:07:24 +01:00
Daniel Brötzmann 43f07c19e5 Merge destroy handlers, connect ESC key, remove transient 2018-11-07 17:07:24 +01:00
Daniel Brötzmann d106c0d316 ManageProxies GUI update 2018-11-07 17:07:24 +01:00
Philipp Hörist ea2f76f24e Show correct icon in roster tooltip 2018-11-06 21:31:43 +01:00
Philipp Hörist f5a19c24a9 Cast messages from a bare muc jid to groupchat 2018-11-05 21:08:34 +01:00
Emmanuel Gil Peyrot b4d34bf7f6 Move XEP-0231 into its own module 2018-11-05 19:58:49 +01:00
André 2ec1baa7bd Roster: Improve contact filter look 2018-11-04 22:59:56 +01:00
Philipp Hörist b6c4fcfb54 Use always an action to open the history window
- Make all menus and shortcuts use the 'app.browse-history' action
- HistoryWindow: Inherit from Gtk.ApplicationWindow
2018-11-04 22:50:21 +01:00
Philipp Hörist 3e387f5215 GroupchatConfig: Valid form before sending 2018-11-04 17:45:27 +01:00
Philipp Hörist 4753e6015e ServiceRegistration: Validate form before sending 2018-11-04 01:01:39 +01:00
Philipp Hörist 6b65a23371 DataForms: Make validation possible
- Show orange warning icon if a field is required
- Show red error icon if validation of the field failed
- Set validation error text as tooltip of the icon
- DataFormWidget emits a signal 'is-valid' on every change
2018-11-04 00:58:34 +01:00
André Apitzsch 09f0835fbd Fix some PyGObject deprecation warnings
like
The "flags" argument for dialog construction is deprecated. Please use initializer keywords: modal=True and/or destroy_with_parent=True.
or
Using positional arguments with the GObject constructor has been deprecated. Please specify keyword(s) for "title, transient_for, flags" or use a class specific constructor.

See: https://wiki.gnome.org/PyGObject/InitializerDeprecations
2018-11-03 13:58:11 +01:00
André Apitzsch 4e0295fcd9 gui_menu_builder: remove unused variable 2018-11-03 13:47:03 +01:00
Philipp Hörist 6e41699297 GroupchatConfig: Tidy up some rough edges 2018-11-03 13:44:50 +01:00
Philipp Hörist 5d5d686408 DataFormWidget: Color required fields red 2018-11-03 13:44:36 +01:00
Philipp Hörist bf9e01ee31 Fix displaying PEP icons
- Rename get_pep_as_pixbuf to get_pep_icon
2018-11-02 22:51:57 +01:00
Philipp Hörist 61a791d67c Rewrite GroupchatConfig dialog
- Complete rewrite of the dialog
- Use new DataFormWidget
2018-11-02 22:24:28 +01:00
Philipp Hörist e615a8e2e3 Add possibility to get windows by jid
This also makes it possible to get windows by an account/jid combination
2018-11-02 22:21:15 +01:00
Philipp Hörist 0662374c14 Set active window as transient for dialogs 2018-11-02 22:17:08 +01:00
Philipp Hörist 32e736aa32 Remove unused shortcut 2018-11-02 21:01:26 +01:00
Daniel Brötzmann 7cae880920 ManageSounds GUI Update 2018-11-02 17:09:28 +01:00
Philipp Hörist c2521a41d6 Add margin to DataFormWidget 2018-11-01 08:23:04 +01:00
Philipp Hörist f46fdee464 Make DataFormWidget configurable
- A option dict can be passed which controls how the DataForfWidget looks
- Analyse the field label lengths and adjust the label justification (left/right)
2018-11-01 08:23:04 +01:00
Daniel Brötzmann 4736f518d6 Scroll history window to bottom when day changed or selected 2018-11-01 00:29:40 +01:00
Philipp Hörist 985fced940 Roster: Use icon names instead of pixbufs
- Use icon names for Tune and Location notifications
- Use None instead of an empty pixbuf when there is no data
2018-10-29 00:12:48 +01:00
Philipp Hörist 7a070a583e Use get_image_button() from gtk.util 2018-10-29 00:12:48 +01:00
Philipp Hörist 3ae03a24b1 Remove unused method 2018-10-29 00:12:44 +01:00
Philipp Hörist a6d9b2c193 Set the Window icon correctly
Set the default list after the first window has been initialized. Only
set icons on Windows that are different from the default.
2018-10-28 23:01:09 +01:00
Philipp Hörist e958755a24 HistoryManager: Refactor code
- Use get_builder
- Add get_app_icon_list() to gtk.util
2018-10-28 22:42:02 +01:00
Philipp Hörist 0e3b74da16 Fix pylint errors 2018-10-28 22:04:29 +01:00
Philipp Hörist ac3bc74952 Remove unused methods 2018-10-28 21:58:30 +01:00
Philipp Hörist 5769ca1e29 Remove dead servers from servers list
All removed servers did not answer to a IBR request
2018-10-28 21:45:04 +01:00
Philipp Hörist 2a0d6dc1ad Use json format for the servers list 2018-10-28 21:26:25 +01:00
Philipp Hörist 69309d283d AccountWizard: Use icon name instead of filename 2018-10-28 20:58:32 +01:00
Philipp Hörist 95e67ab7c1 AdHocCommands: move to gtk module 2018-10-28 20:43:36 +01:00
Philipp Hörist cdeb902fda FiletransferWindow: Move to gtk module 2018-10-28 20:20:49 +01:00
Philipp Hörist 9ae63b6f70 FiletransferWindow: Use icon name instead of pixbufs 2018-10-28 20:18:33 +01:00
Philipp Hörist dcfaba09b9 PluginsWindow: Refactor code
- Use get_builder
- Sort imports
- Use load_icon instead of get_icon_pixmap
2018-10-28 20:17:59 +01:00
Philipp Hörist f4a7e2a353 Move AtomWindow to gtk folder 2018-10-28 19:45:10 +01:00
Philipp Hörist 59ccac4831 Move ServiceDiscoveryWindow to gtk folder 2018-10-28 19:41:19 +01:00
Philipp Hörist cb58fc86f0 Move GroupsPostWindow into disco module 2018-10-28 19:38:35 +01:00
Philipp Hörist efbd22723c DiscoveryWindow: Use icon name instead of pixbufs 2018-10-28 19:34:46 +01:00
Philipp Hörist 88f30f92f7 Move SearchWindow to gtk folder 2018-10-28 17:29:12 +01:00
Philipp Hörist 39dfe41af5 Remove print statement 2018-10-28 17:15:38 +01:00
Philipp Hörist b5441b6169 Move ManageSounds into own module 2018-10-28 17:15:34 +01:00
Philipp Hörist 9af4b4f016 Move GroupchatConfig into own module 2018-10-28 15:36:43 +01:00
Philipp Hörist 4e2f00e569 Move ManageProxies into own module 2018-10-28 15:36:11 +01:00
Philipp Hörist c109db6eeb Switch some calls to gtk.util helper methods 2018-10-28 15:00:04 +01:00
Philipp Hörist 6b5d559d7a Fix error with some foreign keyboard layouts 2018-10-28 14:37:19 +01:00
Philipp Hörist 960008a69a Use get_icon_name() instead of get_iconset_name_for() 2018-10-28 14:32:54 +01:00
Philipp Hörist 9734e7bdea Preferences: Use icons from icontheme 2018-10-28 14:19:03 +01:00
Philipp Hörist e86c619379 Rename and extend get_iconset_name_for() 2018-10-28 14:17:04 +01:00
Philipp Hörist a4077502d5 Tooltips: Use icons from icontheme 2018-10-28 10:44:05 +01:00
Philipp Hörist 7faebf2be5 Tooltips: Refactor code
- Use get_builder
- Fix pylint errors
- Move fill_table_with_accounts() to StatusTable class
2018-10-28 10:20:59 +01:00
Philipp Hörist 5c97f0a91c Move tooltips module into gtk folder 2018-10-28 09:33:40 +01:00