- Jul 31, 2017
-
-
Weblate authored
-
- Jul 26, 2017
-
-
Philipp Hörist authored
-
Philipp Hörist authored
The gaol why we need to determine what ID should be used as stanza-id, is so we can use the stanza-id in the future for deduplication. Case we are the sender: Either we look for a origin-id element, which we will include in the Future in all messages we send, or until then the ID we set on the message as attr. Case we are the receiver: If our server supports mam:2 we take the ID of the result element, because mam:2 injects the archive ID live into every message we receive. If we dont have mam:2 we fall back to the ID of the message attr.
-
- Jul 25, 2017
-
-
Philipp Hörist authored
Add ServerInfo Dialog See merge request !107
-
Philipp Hörist authored
-
Philipp Hörist authored
Add Synchronise History Dialog and prepare for MUC MAM See merge request !109
-
Philipp Hörist authored
- Refactor and clean up code around MamMessageReceivedEvent - Goal is to add a GcMamMessageReceivedEvent later on - For that cause added a raw-mam-message-received base event
-
Philipp Hörist authored
This lets us attach all attributes of the base event to the new event. Often Events trigger other Events. When that happens we often want to keep all attr from the previous Event, and just continue under a new Event. Until now all attr had to be pulled out of `self.base_event` again.
-
Philipp Hörist authored
The XEP is pretty strict on Delay tags so we can make a simple method.
-
Philipp Hörist authored
-
Philipp Hörist authored
- On first contact with the MAM Archive only request 7 days - To sync the rest of the archive the new Dialog can be used.
-
Philipp Hörist authored
-
- Jul 24, 2017
-
-
Philipp Hörist authored
-
Philipp Hörist authored
-
Philipp Hörist authored
It seems some events fire after prepare_quit(), notably set_room_last_message_time()
-
Weblate authored
-
Weblate authored
-
- Jul 20, 2017
-
-
Philipp Hörist authored
-
- Jul 19, 2017
-
-
Philipp Hörist authored
We remove the source in _schedule_activity_timers()
-
Philipp Hörist authored
_continue_connection_request_privacy() should only trigger once after we received the discoinfo on the hostname. We do a discoinfo on all items that the server offers, _continue_connection_request_privacy() was triggered on every received discoinfo again, hence requesting metacontacts and delimiters again. also _continue_connection_request_privacy() was called on every discoinfo error, instead of only on a hostname discoinfo error. This bug is only triggered if the server doesnt support privacy rules.
-
Philipp Hörist authored
-
Philipp Hörist authored
-
Philipp Hörist authored
The purpose of `if version and not gajim.contacts.get_contacts_jid_list()` seemed to be that when cache.db is empty (maybe it was deleted) `gajim.contacts.get_contacts_jid_list()` should come back empty. So on an empty roster cache, version was set to None, so that we request in any case a new roster. The Problem is that `gajim.contacts.get_contacts_jid_list()` is not a good indication for an empty cache.db. On start we trigger a `RosterReceivedEvent` which does a DB query to get the roster. Even if that DB query comes up empty, the Event is still pushed. In the event handler `_nec_roster_received` in roster_window.py we add then previously open controls and our self (if the option is set) to the roster, making `gajim.contacts.get_contacts_jid_list()` return these contacts and hence the condition in `request_roster()` always False. So the version is set in the roster request, and if there is no new version on the server, we request no new roster even though we only have ourself and previously open controls in our roster. As a solution for this we delete the roster version from the config in `RosterReceivedEvent` if the DB query comes back empty, which triggers a new roster request.
-
- Jul 16, 2017
-
-
Philipp Hörist authored
- Dont add timers when we autojoin minimized - Remove timers when the chatcontrol gets minimized - Send inactive chatstate when the chatcontrol gets minimized - Add timers when the chatcontrol gets maximized
-
Philipp Hörist authored
-
- Jul 12, 2017
-
-
Philipp Hörist authored
-
Philipp Hörist authored
This makes the code much easier to read, and much less error prone.
-
- Jul 11, 2017
-
-
Philipp Hörist authored
fixed lookup of description for keyed options See merge request !105
-
SaltyBones authored
-
- Jul 10, 2017
-
-
Philipp Hörist authored
Set restore timeout inactiv, this should be really an advanced option, probably only set for specific MUCs not as default for every MUC. Set restore_lines to 10, so the User has an indication that Gajim can display history, and that there is probably a setting to adjust. Set muc_restore_lines to 100, this is a try to get a reasonable amount of history, especially in small Groupchats. Most server will limit this to 20-50 anyway. The limit 100 is more of a precaution if we run into a misconfigured server. This is intended as a workaround until we can implement MAM for Groupchats.
-
Philipp Hörist authored
muc_restore_timeout set to -1 means we want no particular time set, up to which we request messages. But we should not deliberate request messages we already have. Hence even if muc_restore_timeout is set to -1, we should only request up to the last message we received.
-
Philipp Hörist authored
-
Philipp Hörist authored
Example: If we receive a message the last message date is now. If we restart Gajim and join the MUC again, `time.time() - timeout` will be most likly smaller then when we received the last message If the timeout is an hour, this would mean that many messages are requested from the archive which we already received. So we always want the most current timestamp (MAX).
-
Philipp Hörist authored
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.
-
- Jul 09, 2017
-
-
Philipp Hörist authored
- remove gui extension point on close, to remove the reference the plugin manager holds to the Class. - reduce scope of var that holds reference to Gtk.Builder(). We have to be careful with Gtk.Builder, because it can hold a reference to our Class (methods bound to signals) which creates a reference cycle which python is not able to detect. Hence neither Gtk.Builder nor our Class are garbage collected. Why this is not detected as a reference cylce is unclear at the moment. There are two approaches to circumvent the problem: 1. we lose our reference to Gtk.Builder when closing the window, which lets python garbage collect the builder, afterwards it can garbage collect our class. 2. we reduce the scope of the var that holds a reference to Gtk.Builder, so that the builder can be garbage collected at the end of __init__. I chose to reduce the scope because the builder is not needed class wide.
-
- Jul 05, 2017
-
-
Yann Leboulanger authored
Add old id to appdata file See merge request !104
-
André authored
-
- Jul 04, 2017
-
-
Philipp Hörist authored
Regression from gajim/gajim@79716f42
-
- Jul 03, 2017
-
-
Philipp Hörist authored
-
- Jul 02, 2017
-
-
Philipp Hörist authored
-