Commit Graph

254 Commits

Author SHA1 Message Date
Philipp Hörist 5fa56684c7 Adapt to nbxmpp API changes 2018-11-25 20:02:20 +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 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
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 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 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 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 cee63aa0d8 Move htmltextview into gtk module 2018-11-18 10:35:13 +01:00
Philipp Hörist 7f1dfe5a8c New DataFormWidget: Add Captcha support 2018-11-15 21:02:09 +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 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 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
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 61a791d67c Rewrite GroupchatConfig dialog
- Complete rewrite of the dialog
- Use new DataFormWidget
2018-11-02 22:24:28 +01:00
Philipp Hörist 0662374c14 Set active window as transient for dialogs 2018-11-02 22:17:08 +01:00
Daniel Brötzmann 7cae880920 ManageSounds GUI Update 2018-11-02 17:09:28 +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 7a070a583e Use get_image_button() from gtk.util 2018-10-29 00:12:48 +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 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 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 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 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
Daniel Brötzmann bed18c9067 Add clipboard button to copy server infos 2018-10-27 15:35:37 +02:00
Daniel Brötzmann 5fb6032420 Update Features Dialog Design 2018-10-27 14:54:57 +02:00
Daniel Brötzmann 5d2e83394b Rework Preferences Window 2018-10-26 00:18:06 +02:00
Daniel Brötzmann b5416f0e97 Rework ACE 2018-10-26 00:06:27 +02:00
Philipp Hörist d7ea69f36c Refactor StatusIcon
- Move to gtk folder
- Rename some handlers
- Use get_builder
2018-10-25 00:12:28 +02:00
Philipp Hörist c1cc8c5714 Fix pylint error 2018-10-25 00:06:45 +02:00
Philipp Hörist c08f752d89 Refactor "Save as" menu 2018-10-24 23:42:07 +02:00
Philipp Hörist 2c6b2e0bb4 Use keyword init for Labels
keyword-less init is deprecated
2018-10-24 23:04:14 +02:00
Philipp Hörist 974b351338 Fix pylint error 2018-10-24 21:16:13 +02:00
Philipp Hörist 0e2a9c724f Improve ExceptionDialog
- Move to gtk module
- Use get_builder() so translation works
- Add GLib version
- Remove standalone testing code
2018-10-24 21:14:54 +02:00
Philipp Hörist 2c01883fc0 Fix missing declaration
Fixes #9322
2018-10-19 22:30:35 +02:00
Philipp Hörist 6c43c0f408 Allow to load multiple widgets with get_builder() 2018-10-13 00:33:33 +02:00
Philipp Hörist e5fe30cb5b Add get_builder() for plugins 2018-10-12 23:42:38 +02:00
Philipp Hörist bf87ad5ac8 Import _() instead of using builtin namespace
- Prepare for removing the global installed _() method in builtins
- Sort some imports along the way
2018-10-06 22:38:55 +02:00
Philipp Hörist 990a35f9d8 MUC: Add option for showing the subject on join 2018-10-06 00:35:24 +02:00
Philipp Hörist 34553b6ca7 Add a configurable threshold for MAM in MUC 2018-10-04 21:42:06 +02:00
Daniel Brötzmann 1f3bb5667d Fix more strings from #7470 2018-09-30 10:37:16 +02:00
Philipp Hörist 58796d223e Preferences: Update layout and some options
- Add a 'convert ascii emoji' checkbutton
- Remove 'Disabled' from Emoji theme
- Change the layout of the style tab
2018-09-27 21:38:23 +02:00
Philipp Hörist e9e0b7fbb9 Move AccountsWindow to gtk module 2018-09-27 00:12:55 +02:00
Philipp Hörist 6bf94f15d7 Move AdvancedConfig to gtk module 2018-09-27 00:03:50 +02:00
Philipp Hörist 075069d37a Fix Dark Theme switch
- Move css_config to gtk module
- Add Combobox for overriding the current session setting
- Move theme methods to css_config
2018-09-26 20:17:13 +02:00
Philipp Hörist f89347516f Only use absolute imports from gtk module
- This reduces import cycles
2018-09-26 19:06:47 +02:00
Philipp Hörist 7cacb4c09e Add annotations 2018-09-23 15:33:31 +02:00
Philipp Hörist 0e0bb9e190 Add dark theme switch in preferences 2018-09-23 15:00:32 +02:00
Philipp Hörist 39f5803651 Windows: Add debug logging switch in preferences
If debug logging is enabled verbose output is redirected to a file
in the user dir
2018-09-23 14:41:26 +02:00
Philipp Hörist 1483020cf4 Dont show encryption status for status messages
Fixes #9353
2018-09-22 08:07:46 +02:00
Philipp Hörist 6b2aa24d6e Fix rest of mypy errors
- This allows us to run mypy on the full gajim folder
2018-09-21 23:55:57 +02:00
Philipp Hörist 74b66837fa Add annotations
- Remove some unused vars from app
2018-09-21 15:46:52 +02:00
Philipp Hörist f7a2ac9d90 Add annotations
- Add a gtk/types modules
- Add a gtk/const module to prevent circular imports
2018-09-21 15:46:52 +02:00
Philipp Hörist 4d4d002342 Extend stubs for emoji_data 2018-09-21 15:46:52 +02:00
Philipp Hörist 3f2f51c169 Add license header to emoji_data.py 2018-09-21 15:46:52 +02:00
Philipp Hörist fa65653adc ConvTextview: Rework display of encryption 2018-09-19 22:22:52 +02:00
Philipp Hörist 81387ada51 Fix pylint errors
- pointless-statement
- pointless-string-statement
- unnecessary-lambda
2018-09-18 16:44:23 +02:00
Philipp Hörist 1680c3bb38 Fix pylint errors
- consider-using-enumerate
- unneeded-not
- unidiomatic-typecheck
2018-09-18 15:24:40 +02:00
Philipp Hörist 55aab55b9b Fix consider-using-in pylint errors 2018-09-18 14:10:38 +02:00
Philipp Hörist a77804f475 Fix useless-super-delegation pylint errors 2018-09-18 14:06:16 +02:00
Philipp Hörist 8483ba503f Fix unnecessary-pass pylint errors 2018-09-18 14:03:58 +02:00
Philipp Hörist df88cc5e15 Fix redefined-builtin pylint errors 2018-09-18 13:54:25 +02:00
Philipp Hörist ccc06a04ab Fix bad-whitespace pylint errors 2018-09-18 12:06:01 +02:00
Philipp Hörist ff6ca57033 Fix no-else-return pylint errors 2018-09-18 10:16:54 +02:00
Philipp Hörist d6f0242655 Fix redefined-argument-from-local pylint errors 2018-09-18 08:37:18 +02:00
Philipp Hörist e8ac644440 Fix unused-variable pylint errors 2018-09-17 21:16:19 +02:00
Philipp Hörist d53b95218a Fix redefined-outer-name pylint errors 2018-09-16 18:04:15 +02:00
Philipp Hörist c6547b6d30 Fix superfluous-parens pylint errors 2018-09-16 14:42:18 +02:00
Philipp Hörist 7018d5be0e Dont retract pep items on UserXEPs
This leads to multiple problems

1. We cant assume only items with id='current' are stored in the node
which would lead to retracting 'current' but another item would become
the last published and sent to users

2. Even if we have a SingletonNode retracting the only item means the Node
would be empty and offline clients would not receive the last published item
on coming online, because there is no item anymore

Instead we always publish an empty item from now on
2018-09-16 13:35:55 +02:00
Philipp Hörist e85bc52c8b Fix sending empty pep data 2018-09-16 12:58:37 +02:00
Philipp Hörist de0c0a9c08 Fix unsued-import pylint errors 2018-09-16 11:37:38 +02:00
Philipp Hörist 50e44543f3 Fix len-as-condition pylint error 2018-09-16 01:19:09 +02:00
Philipp Hörist 49ca238252 Fix len-as-condition pylint errors 2018-09-16 01:10:04 +02:00
Philipp Hörist d54d4bc232 Add annotations and fix pylint/mypy errors 2018-09-13 23:56:12 +02:00
Philipp Hörist a62f348a21 Add stubs file for emoji_data
Otherwise mypy hangs because the file is to big
2018-09-13 23:54:29 +02:00
Philipp Hörist b99632ab03 Fix pylint errors 2018-09-12 00:01:54 +02:00
Philipp Hörist a497051965 Add Builder class 2018-09-09 15:29:55 +02:00
Philipp Hörist 52e09cf526 Windows: Fix translation
Fixes #9324
2018-09-08 08:40:42 +02:00
Philipp Hörist 27f7580688 Light refactring of bookmark code
- Convert xs:boolean values in bookmark module
- Use python booleans for minimize and autojoin in other parts of Gajim
- Use add_bookmark() instead of manipulating the bookmarks dict
2018-09-05 00:06:59 +02:00
Philipp Hörist b62335eaf5 Add a bookmark sorting method 2018-09-04 23:22:57 +02:00
Philipp Hörist be6c2d4f7a Add XEP-0398 optimizations
- If the server implements XEP-0398 we dont need to add the avatar sha
anymore, the server adds it for us.
- It also means we dont have to query our own avatar from vcard at start
because the server tells us the avatar sha that is published with the inital
presence reflection
2018-09-01 20:40:20 +02:00
Sophie Herold 7743c11a50 Unify to use app.get_account_label() 2018-08-30 19:27:40 +02:00
Yann Leboulanger 7d4a9b91c8 better fix for joining groupchats with uppercase letters. Fixes #9198 2018-08-30 12:21:43 +02:00
Philipp Hörist 931e3f60ba Register modules defined by plugins 2018-08-28 23:03:00 +02:00
Philipp Hörist d57bfcbcad ServerInfo: Fix empty version result
Fixes #9311
2018-08-26 10:39:29 +02:00
Philipp Hörist fef8cff254 Display only emojis the font supports
Fixes #9299
2018-08-20 19:18:07 +02:00
Philipp Hörist e128a3f676 Fix emoji theme fallback 2018-08-19 21:38:11 +02:00
Philipp Hörist 1c69b92d85 Move filechoosers into gtk module 2018-08-19 17:47:17 +02:00
Philipp Hörist 732ed0a162 Fix theming option names 2018-08-19 12:15:07 +02:00
Philipp Hörist 1bb04ca402 Dont use hide() after show_all()
rather use no_show_all. This reduces flickering when we show the window
2018-08-18 00:48:12 +02:00
Philipp Hörist 042d8aa687 Fix deprecation warning
only keyword args should be used
2018-08-18 00:13:51 +02:00
Philipp Hörist 5feb4becfd Rework Emoji implementation
- Use emoji data from a generated dict based on the offical unicode docs,
this makes it easier to update in the future
- Rewrite the emoji chooser
- Add a search field to the emoji chooser
- The emoji chooser is loaded async
- Update to current Unicode 11 Noto theme
2018-08-17 21:55:42 +02:00
Philipp Hörist 9d5131b8b4 Rework Gajim Theming
- Save all Theme settings to .css instead of the config file
- Add a gajim-dark.css
- Refactor the ThemesWindow
2018-08-16 22:53:33 +02:00
Philipp Hörist f699df9bd6 Dont use dict to keep track of window instances
GtkApplication maintains a store for all active ApplicationWindows,
we dont need to replicate that.
2018-08-16 20:47:54 +02:00
Philipp Hörist c332ad6a67 Fix string 2018-08-06 20:24:09 +02:00
Philipp Hörist c778ed6917 Move Preferences into own module
- Port Preferences to Gtk.ApplicationWindow
2018-08-06 19:48:49 +02:00
Sophie Herold 835bffd893 Fix broken history search 2018-08-06 19:07:42 +02:00
Philipp Hörist 94b2d1e577 Fix passing too many args 2018-08-06 18:25:52 +02:00
Philipp Hörist 2e53f47da8 Fix GtkBuilder translation
Fixes #9277
2018-08-06 17:14:07 +02:00
Philipp Hörist 2fd7187d16 Use new DataFormWidget with ServiceRegistration 2018-08-05 22:51:09 +02:00
Philipp Hörist f90b9a6b3a Add new DataFormWidget 2018-08-05 22:51:03 +02:00
Philipp Hörist 92af78f103 Move history window into gtk folder
- fix some pep8 warnings
2018-08-04 20:14:28 +02:00
Philipp Hörist 043e764896 Make Service Registration a Gtk.Assistant
- Move all xmpp Register methods into the register module
2018-08-04 19:47:57 +02:00
Philipp Hörist 560a122ab5 Add error message to change password dialog
- Move register methods to own module
2018-08-01 00:35:42 +02:00
Philipp Hörist 23e39dc9e6 Move shortcuts dialog into gtk folder 2018-07-30 00:24:43 +02:00
Philipp Hörist a7d9701c18 Move AccountCreationWizard into gtk folder 2018-07-30 00:20:38 +02:00
Philipp Hörist b3f1416c24 Move features dialog into gtk folder 2018-07-29 23:58:38 +02:00
Philipp Hörist 5a6f03dea4 Add connect_maschine()
Add method that sequentially works the steps we have to do
before sending first presence

- Move Delimiter into own module
- Move Metacontacts into own module
2018-07-27 16:01:10 +02:00
Philipp Hörist 313b913ae4 Dont get own avatar_sha from contacts 2018-07-25 23:17:12 +02:00
Philipp Hörist 78e4e20d49 Move ProfileWindow into gtk module 2018-07-22 16:53:02 +02:00
Philipp Hörist 8ed3952572 Move ManageBookmarksWindow into gtk module 2018-07-22 16:43:42 +02:00
Philipp Hörist cd9ffc7ebf Move ManagePEPServicesWindow into gtk module 2018-07-22 16:34:51 +02:00
Philipp Hörist 07c87a4194 Rewrite discovery code and move it into own module 2018-07-22 16:20:00 +02:00
Philipp Hörist 5ff9e9febf Move dataforms into modules folder 2018-07-22 16:20:00 +02:00