summaryrefslogtreecommitdiffstats
path: root/src/gui/buddylistview.h
diff options
context:
space:
mode:
authorMichal Kubecek <mkubecek@suse.cz>2015-04-15 12:53:53 +0200
committerMichal Kubecek <mkubecek@suse.cz>2015-04-15 12:53:53 +0200
commitd2c15523006f48a86fec5a4d35e3ff5ac33934f4 (patch)
tree9f008d6111cb8ea9c43808aaa7f986b8b867097c /src/gui/buddylistview.h
parent5fc295c7b7476f877744eeb00c4ee8de736a7b32 (diff)
downloadtwinkle-d2c15523006f48a86fec5a4d35e3ff5ac33934f4.tar
twinkle-d2c15523006f48a86fec5a4d35e3ff5ac33934f4.tar.gz
twinkle-d2c15523006f48a86fec5a4d35e3ff5ac33934f4.tar.lz
twinkle-d2c15523006f48a86fec5a4d35e3ff5ac33934f4.tar.xz
twinkle-d2c15523006f48a86fec5a4d35e3ff5ac33934f4.zip
do not call GUI slots directly from non-GUI threads
Direct calls to QObject slots (accessing GUI functions) from non-GUI threads cause QPixmap: It is not safe to use pixmaps outside the GUI thread warnings and (worse) random crashes. These must be rewritten to (queued) signal-slot connections.
Diffstat (limited to 'src/gui/buddylistview.h')
-rw-r--r--src/gui/buddylistview.h18
1 files changed, 16 insertions, 2 deletions
diff --git a/src/gui/buddylistview.h b/src/gui/buddylistview.h
index eb796fe..ef1b4cc 100644
--- a/src/gui/buddylistview.h
+++ b/src/gui/buddylistview.h
@@ -42,7 +42,8 @@ public:
};
// List view item representing a buddy.
-class BuddyListViewItem : public AbstractBLVItem, public patterns::t_observer {
+class BuddyListViewItem : public QObject, public AbstractBLVItem, public patterns::t_observer {
+ Q_OBJECT
private:
t_buddy *buddy;
@@ -57,10 +58,17 @@ public:
virtual void subject_destroyed(void);
t_buddy *get_buddy(void);
+
+signals:
+ void update_signal();
+
+private slots:
+ void update_slot();
};
// List view item representing a user
-class BLViewUserItem : public AbstractBLVItem, public patterns::t_observer {
+class BLViewUserItem : public QObject, public AbstractBLVItem, public patterns::t_observer {
+ Q_OBJECT
private:
t_presence_epa *presence_epa;
@@ -77,6 +85,12 @@ public:
virtual void subject_destroyed(void);
t_presence_epa *get_presence_epa(void);
+
+signals:
+ void update_signal();
+
+private slots:
+ void update_slot();
};
#endif