diff options
author | Michal Kubecek <mkubecek@suse.cz> | 2015-04-15 12:53:53 +0200 |
---|---|---|
committer | Michal Kubecek <mkubecek@suse.cz> | 2015-04-15 12:53:53 +0200 |
commit | d2c15523006f48a86fec5a4d35e3ff5ac33934f4 (patch) | |
tree | 9f008d6111cb8ea9c43808aaa7f986b8b867097c /src/gui/buddylistview.h | |
parent | 5fc295c7b7476f877744eeb00c4ee8de736a7b32 (diff) | |
download | twinkle-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.h | 18 |
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 |