Commit Graph

144 Commits

Author SHA1 Message Date
Philipp Hörist 09c5183575 Fix pylint errors in common/modules 2018-09-11 22:25:55 +02:00
Philipp Hörist a4a136566f Fix license comment format
every linter flags this as an error
2018-09-05 02:59:34 +02:00
Philipp Hörist b62335eaf5 Add a bookmark sorting method 2018-09-04 23:22:57 +02:00
Sophie Herold 7743c11a50 Unify to use app.get_account_label() 2018-08-30 19:27:40 +02:00
Philipp Hörist dd8dda9b32 Fix displaying MUC subjects with delay tag
Dont print it as "old" conversation, instead add the delay timestamp
at the end of the subject
2018-08-30 19:19:47 +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 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 a7d9701c18 Move AccountCreationWizard into gtk folder 2018-07-30 00:20:38 +02:00
Philipp Hörist 68bd3abbce Fix creating metacontacts
- We call finish() in on_drop_in_group() and on_drop_in_contact(),
so dont do it in drag_drop()
- Fix singal names
2018-07-29 16:23:30 +02:00
Philipp Hörist 4686bcb8ca Dont idle draw avatars and pep images
The model is detached from the treeview at start, so put all
avatars into the model before we attach it again.

Only draw PEP images when we receiv them. We dont save them to the
database so it makes no sense to try and draw them on start.
2018-07-29 12:16:41 +02:00
Philipp Hörist b913d2745b Improve speed of loading roster 2018-07-28 13:23:49 +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 db77fa1ace Add roster implementation to Gajim 2018-07-26 20:38:00 +02:00
Philipp Hörist 5d24c9bbdd Move subscription code into presence module 2018-07-23 23:04:07 +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 3a3b5aff20 Move some dialogs into gtk module 2018-07-18 00:15:46 +02:00
Philipp Hörist bff5f14b92 Move invites into MUC module 2018-07-17 18:38:36 +02:00
Philipp Hörist ebbe06d587 Refactor MAM into own module
- Rework the MAM Preference dialog
- Move MAM Preference dialog into a new gtk module
- Refactor all MAM code into own module
- Refactor the MAM code itself so we can easier test it in the future
- Add a misc module for smaller XEPs and move EME, Last Message Correction
Delay, OOB into it
- Add dedicated module for XEP-0082 Time Profiles
2018-07-15 14:26:00 +02:00
Philipp Hörist c225ae70e4 Add debug logging for saving roster position 2018-07-12 23:19:22 +02:00
Ave O c3a359ba23
Change to gender-neutral alternatives of pronouns 2018-07-11 23:15:56 +03:00
Philipp Hörist 3438b06069 Fix JoinGroupchat hotkey if zeroconf is active 2018-07-08 19:50:27 +02:00
Philipp Hörist bd79fe629f Refactor Privacy and Blocking into own modules 2018-07-08 16:44:14 +02:00
Philipp Hörist 15bcd80e19 Call JoinGroupchat Dialog with account 2018-07-06 21:56:17 +02:00
Philipp Hörist 6a363678f4 Dont handle all pep events 2018-07-06 20:05:57 +02:00
Philipp Hörist fe3c1b4fbd Refactor UserNickname into own module 2018-07-05 20:20:22 +02:00
Philipp Hörist bbf3a544e8 Refactor UserLocation into own module 2018-07-05 19:38:03 +02:00
Philipp Hörist 14f088c2d9 Refactor UserMood into own module 2018-07-05 19:37:51 +02:00
Philipp Hörist a4350a812b Refactor UserTune into own module 2018-07-05 00:16:42 +02:00
Philipp Hörist 568c2d93a0 Make new pep module more abstract 2018-07-05 00:16:32 +02:00
Philipp Hörist b7775afd0c Refactor UserActivity and PEP into own modules 2018-07-03 20:00:31 +02:00
Philipp Hörist 2ca0ca38a5 Refactor Pubsub/Bookmarks/UserAvatar into own modules 2018-07-01 22:35:56 +02:00
Alexander Krotov 7fa4c9e1c2 Spellcheck 2018-06-28 23:37:34 +02:00
Philipp Hörist ce9af46fc3 Fix join groupchat dialog with multiple accounts
The dialog didnt show the account combobox when activated
via CTRL + J from the Roster

Also add a application action for join groupchat
2018-06-28 00:04:17 +02:00
Philipp Hörist b74706afcf Refactor roster item exchange code into own module 2018-06-25 22:43:09 +02:00
Alexander Krotov d871dcdcb1 More spelling fixes 2018-06-22 01:47:29 +03:00
Philipp Hörist c5df74c509 Refactor idle module
- Get rid of sleepy.py, handle everything in idle.py
- Introduce one Monitor class that handles everything
2018-05-21 02:32:33 +02:00
Philipp Hörist 0f7097b7e0 Remove unused Dialog
This was nonfunctional for a long time and nobody complained
2018-05-02 22:38:07 +02:00
Philipp Hörist 3b73b6f5bb Windows: Always hide roster window on X
As all Windows versions have a status icon and most Windows users expect this

Fixes #9031
2018-04-30 00:35:48 +02:00
Philipp Hörist e265514d88 Detect dependencys only on demand
This allows us to import the app module without triggering
dependency detection

Also add is_installed() for checking if a dependency is installed and
disable_dependency() in case we dont want to use a dependency
2018-04-24 19:36:33 +02:00
Philipp Hörist 290e761f88 Add support for Room Avatars
- Groupchats promote a vcard hash with presence

Refactoring:

- Dont delete groupchat contacts if they are maximized from the roster
- Roster and GroupchatControl use the same contact object
2018-04-19 22:11:41 +02:00
Philipp Hörist cf911b3984 Fix regression from 4caa4971 2018-04-05 22:14:57 +02:00
Philipp Hörist 4caa4971b2 Catch decrypted-message-received event in ChatControl
It makes more sense to catch the event with ChatControl than with the
RosterWindow. RosterWindow is only used now if no ChatControl is open.
2018-04-04 01:13:02 +02:00
Philipp Hörist 5794d54d1c Dont print status if it has not changed
Only print the status, if status has changed or the status message

Clients announce there idle-time with presences but adding a idle-time
does not necessarily mean they went from available -> away

Fixes #9001
2018-03-26 23:47:43 +02:00
Yann Leboulanger faa88819a1 improve some strings 2018-03-25 16:26:29 +02:00
Philipp Hörist abdca0eaac Fix TextView scrolling
Fixes #8813
2018-03-20 22:19:30 +01:00
Philipp Hörist 1935a4f40e Disable ZeroConf account by default 2018-03-07 20:24:08 +01:00
Philipp Hörist f1aceae214 Fix avatar ratio
Fixes #8907
2018-02-19 22:02:31 +01:00
Philipp Hörist 258c7922a5 Dont set Avatar if there is none
Fixes #8878
2018-01-30 23:40:15 +01:00
Philipp Hörist adb326a5f2 Refactor StatusComboBox
- Move as much code as possible into Glade file
- Pull icons from the IconsTheme (because of HiDPI scaling)
2018-01-29 00:06:31 +01:00
Philipp Hörist c983b1f50d Set padlock icon correctly 2018-01-29 00:06:31 +01:00
Philipp Hörist 232dc1dda0 Scale Avatars for HiDPI Screens 2018-01-29 00:06:31 +01:00
Philipp Hörist 5ce0c65ce4 Move chat options menu
Putting it into the header forced GTK Window Decorations, that makes
the application look alien on all systems except Gnome.
2018-01-28 20:39:02 +01:00
André Apitzsch 6f025a1d4a Remove some unused imports 2018-01-12 00:21:11 +01:00
Yann Leboulanger aa6e9e7084 improve string and add comment for translators 2018-01-09 10:31:50 +01:00
André Apitzsch 81a039854f Port music_track_listener to GTK dbus 2018-01-04 21:49:16 +01:00
Philipp Hörist 23de7d5331 Use higher level API to focus windows
set_active_tab() already calls present(), no need to call it afterwards
again
2017-12-26 21:55:19 +01:00
Yann Leboulanger c3369f0304 ability to call ad hoc commands on groupchats and groupchats occupants.
Fixes #8819
2017-12-22 12:21:57 +01:00
Yann Leboulanger ec2da20f58 add transient_for parameter 2017-12-17 18:41:49 +01:00
Emmanuel Gil Peyrot f4cae17d9f Remove support for AWN, which isn’t maintained anymore 2017-12-13 23:19:16 +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 1afd4f0e72 New StartChat Dialog 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
Yann Leboulanger 84af966a87 prevent traceback 2017-11-20 21:18:32 +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 309e844b4e Escape account label in roster and menus 2017-11-11 17:10:31 +01:00
Philipp Hörist 07055ccaad Update menus on account label change 2017-11-06 23:29:07 +01:00
Thilo Molitor 0638cdc690 Fix additional_data in events 2017-11-01 23:14:47 +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 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 2446c7e3ed Refactor Blocking List
Fixes #8762
2017-10-15 18:03:41 +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 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
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 dfdeb65e8f New AccountsWindow 2017-09-16 15:55:32 +02:00
Philipp Hörist 4a9ba28a10 Fix typo 2017-08-23 20:01:48 +02:00
André Apitzsch 89c7eb6e6a Rename gajim.common.gajim to avoid name conflicts 2017-08-18 20:03:20 +02:00
André Apitzsch efec098aef Use absolute imports 2017-08-18 19:48:48 +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
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 9ff601d03b Remove XEP-0136 support 2017-07-28 00:07:49 +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
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
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
André Apitzsch 125ce523e4 Rename src directory 2017-07-02 17:25:47 +02:00
Renamed from src/roster_window.py (Browse further)