Commit Graph

676 Commits

Author SHA1 Message Date
Philipp Hörist 1504805575 Dont answer groupchat receipt requests 2018-11-19 17:51:18 +01:00
Philipp Hörist 3ba34fa396 Remove old iconset code 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 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 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 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 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 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
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
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 2a0d6dc1ad Use json format for the servers list 2018-10-28 21:26:25 +01:00
Matthew W. S. Bell 2a62209e1e Obtain sleep inhibitor again after every sleep
- There is a PrepareForSleep signal before and after every sleep event.
The expectation is that before sleep, gajim cleans up and then releases
the sleep inhibitor. Accordingly, we must reacquire the inhibitor after
sleeping, which can helpfully be done with the other signal.

- Moved module to the dbus folder

- Embed logic in a LogindListener object so we can import the module
without listening to dbus
2018-10-26 12:57:13 +02:00
Philipp Hörist 54fe4dacf2 Fix import 2018-10-26 01:49:15 +02:00
Philipp Hörist e5beff266a Guard GeoClue import
- So we dont have to check on module import if GeoClue is installed
2018-10-26 01:45:43 +02:00
Philipp Hörist df7f0324a3 Move dbus modules into own folder
- light refactor of the screensaver module
2018-10-26 01:19:47 +02:00
Philipp Hörist dc59801d93 Make var global 2018-10-22 19:04:37 +02:00
Yann Leboulanger 286f820f77 fix regression from [e265514d]: gupnp object is keept globally. Fixes #9398 2018-10-22 13:38:40 +02:00
Daniel Brötzmann 4f28720db0 Remove ESessions leftovers 2018-10-21 23:17:42 +02:00
Philipp Hörist e44cedf094 Use parse_delay also for presences 2018-10-19 20:43:04 +02:00
Philipp Hörist abf1909360 Remove support for XEP-0091 2018-10-19 20:38:44 +02:00
Philipp Hörist 53ec34a955 Use parse_datetime for parsing idle time
Fixes #9393
2018-10-19 20:37:18 +02:00
Philipp Hörist 8487bdb83e Make bookmark parsing more resilient
Fixes #9385
2018-10-19 15:59:04 +02:00
Philipp Hörist ba2618d035 Set password correctly on MUC join 2018-10-14 21:42:51 +02:00
Philipp Hörist c34ce28f56 Add a dedicated folder for plugin data 2018-10-14 17:09:39 +02:00
Philipp Hörist c58ea13379 Default to showing offline contacts
Many messengers dont show the status anymore, its not evident to new
users that most of their roster is hidden per default and they have to
show it to access the contacts
2018-10-13 16:21:44 +02:00
Yann Leboulanger 00c8e5c01d Ability to update plugins on startup from a download folder 2018-10-12 22:17:34 +02:00
André Apitzsch 8a0ed4af5b Fix missing UI translations on flatpak 2018-10-11 23:21:46 +02:00
Philipp Hörist c81711fdf0 Reset chatstate correctly if contact goes offline 2018-10-11 00:11:03 +02:00
Philipp Hörist f565928890 Fix a few things regarding chatstates
- Fix wrong chatstates issued because of textview changed signal
- Fix chatstates in PMs
2018-10-09 00:01:35 +02:00
Philipp Hörist 7e007a4210 Add property to distinguish pm contacts 2018-10-07 22:35:27 +02:00
Philipp Hörist 084e5d6ca7 Better fix for aa50da05 2018-10-07 18:19:57 +02:00
Philipp Hörist aa50da05d3 Fix gettext not supporting Pathlib yet 2018-10-07 12:49:50 +02:00
Philipp Hörist 74bb8cec3f Fix pylint error 2018-10-06 23:06:07 +02:00
Philipp Hörist ca46742117 Fix missing imports 2018-10-06 23:04:28 +02:00
Philipp Hörist ad4e1258d3 Improve finding locale dir
- Dont install _() globally, although its elegant mypy cant deal with it
- If gettext cant find the translation itself, iter through all dirs and search for it
2018-10-06 22:44:26 +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 4f1a3a32c5 Fix resume after sm timeout
Fixes #9364
2018-10-05 21:25:15 +02:00
Philipp Hörist 84ba852a97 Dont return None on has_mam()
Fixes #9368
2018-10-05 15:05:06 +02:00
Philipp Hörist 34553b6ca7 Add a configurable threshold for MAM in MUC 2018-10-04 21:42:06 +02:00
Philipp Hörist 8b7aae564b MUC: Set active chatstate on messages 2018-10-03 09:56:56 +02:00
Philipp Hörist b6c43c9066 Fix the fix 2018-10-03 08:08:32 +02:00
Marcin Mielniczuk 237abf742b Pylint CI improvements
* Move the pylint CI configuration to a separate script
* Update pylint in CI to 2.1.1
* Add pycurl to pylint whitelist
2018-10-03 07:58:54 +02:00
Philipp Hörist ef3cc504d2 Pass correct show state 2018-10-03 07:53:30 +02:00
Philipp Hörist ff424b5084 Fix passing wrong type 2018-10-01 21:25:10 +02:00
Philipp Hörist 460d390795 Refactor Chat State Notifications
- Move code into chatstate module
- Refactor most of the code, make it much simpler
2018-09-30 22:58:38 +02:00
Daniel Brötzmann 6975ffdf94 Unify Emoticon and Emoji strings 2018-09-30 10:37:16 +02:00
Philipp Hörist acf79ffe8a MAM: Up the requested page size 2018-09-30 10:01:42 +02:00
Philipp Hörist a8c0567bd0 Request security catalog from the barejid
- Some Code/UI cleanup
2018-09-30 00:15:00 +02:00
Philipp Hörist 8ff3e55f33 Fix security labels 2018-09-29 18:29:59 +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
Yann Leboulanger 5aa41c7f63 handle error message from MUC correctly. Fixes #9280 2018-09-23 22:45:05 +02:00
Philipp Hörist 26b8125446 configpaths: Add get_plugin_dirs() method
This helps with mypy because otherwise get() has multiple return types

This reduces our usage of cast()
2018-09-23 14:41:44 +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 d29f6b2ca9 Dont parse our own nick on sent carbons
Fixes #9051
2018-09-22 15:35:45 +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 cb692ae4eb Make SQL INSERT querys more resilient
Specify the column in which we insert otherwise downgrading Gajim is
not possible anymore because the query breaks if we modified the column
count in future
2018-09-19 20:12:24 +02:00
Philipp Hörist 422cd12991 Fix pylint errors
- deprecated-method
- anomalous-backslash-in-string
- cell-var-from-loop
- undefined-loop-variable
2018-09-18 18:45:16 +02:00
Philipp Hörist 6c80473ebe pylint W0143 is not available on pylint < 2.0 2018-09-18 17:39:35 +02:00
Philipp Hörist 385ef2e456 Fix pylint errors
- duplicate-key
- eval-used
- comparison-with-callable
2018-09-18 17:02:14 +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 df88cc5e15 Fix redefined-builtin pylint errors 2018-09-18 13:54:25 +02:00
Philipp Hörist 29647ea693 Fix trailing-whitespace pylint errors 2018-09-18 13:38:22 +02:00
Philipp Hörist ccc06a04ab Fix bad-whitespace pylint errors 2018-09-18 12:06:01 +02:00
Philipp Hörist dea1464832 Fix multiple-statements pylint errors 2018-09-18 10:30:33 +02:00
Philipp Hörist 6237bfae41 Fix singleton-comparison pylint errors 2018-09-18 10:26:27 +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 cbe335b291 keys() doesnt return list() in python3 2018-09-18 07:20:49 +02:00
Philipp Hörist 04b70bf220 Fix trailing-comma-tuple pylint errors 2018-09-17 23:38:52 +02:00
Philipp Hörist 01694c6a06 Fix simplifiable-if-statement pylint errors 2018-09-17 23:25:55 +02:00
Philipp Hörist 158d013a86 Fix literal-comparison pylint errors 2018-09-17 23:03:45 +02:00
Philipp Hörist 76333ec73a Use keys() iteration if we modify the dict 2018-09-17 22:51:42 +02:00
Philipp Hörist 793184e7be Fix consider-iterating-dictionary pylint errors 2018-09-17 22:34:15 +02:00
Philipp Hörist 0b8b4f75c3 Fix pylint errors 2018-09-17 22:20:19 +02:00
Philipp Hörist e8ac644440 Fix unused-variable pylint errors 2018-09-17 21:16:19 +02:00
Philipp Hörist d638087c26 Fix logging-not-lazy pylint errors 2018-09-17 18:57:00 +02:00
Philipp Hörist 7bb6f8b22e Fix bare-except pylint errors 2018-09-16 23:45:01 +02:00
Philipp Hörist b8bbcf2be0 Fix missing time attribute
This was removed by accident
2018-09-16 23:33:09 +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 328d250f4c Fix evaluation for subject change 2018-09-16 14:36:54 +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 bb545d546a Fix useless-object-inheritance pylint errors 2018-09-16 11:56:56 +02:00