Commit Graph

964 Commits

Author SHA1 Message Date
Philipp Hörist 0877364214 Disable encryption if plugin is missing 2017-07-12 22:34:55 +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
SaltyBones e6840ab8b6 fixed lookup of description for keyed options 2017-07-11 20:35:47 +02:00
Philipp Hörist cc682d243f Change defaults on history restore options
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.
2017-07-10 21:03:45 +02:00
Philipp Hörist a818b60ba7 Fix unlimited muc_restore_timeout
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.
2017-07-10 20:13:10 +02:00
Philipp Hörist b625199c47 Allow for a no limit option on restore_timeout 2017-07-10 18:26:17 +02:00
Philipp Hörist aeb64a516c Use correct history date on muc join
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).
2017-07-10 16:39:27 +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
Philipp Hörist 0eca29d484 Fix memory leak in plugins window
- 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.
2017-07-10 01:15:30 +02:00
Philipp Hörist ab85729fe5 Fix displaying links in textview
Regression from 79716f421f
2017-07-04 12:26:05 +02:00
Philipp Hörist 3d8be9ebe2 Fix emoticons module import on windows 2017-07-03 11:32:47 +02:00
Philipp Hörist 635b05c1ca Make noto-emoticons the default theme 2017-07-02 21:30:21 +02:00
Philipp Hörist 79716f421f Rework emoticon menu 2017-07-02 21:27:44 +02:00
André Apitzsch 125ce523e4 Rename src directory 2017-07-02 17:25:47 +02:00