trying to improve the threading issue
This commit is contained in:
parent
a8f169428d
commit
50ed6e2943
|
@ -27,13 +27,16 @@
|
||||||
#include <QDir>
|
#include <QDir>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QMetaEnum>
|
#include <QMetaEnum>
|
||||||
|
#include <QApplication>
|
||||||
|
|
||||||
using namespace Snore;
|
using namespace Snore;
|
||||||
|
|
||||||
SnorePlugin::SnorePlugin ( const QString &name ) :
|
SnorePlugin::SnorePlugin ( const QString &name ) :
|
||||||
m_name ( name ),
|
m_name ( name ),
|
||||||
m_initialized(false)
|
m_initialized(false)
|
||||||
{}
|
{
|
||||||
|
moveToThread( qApp->thread() );
|
||||||
|
}
|
||||||
|
|
||||||
SnorePlugin::~SnorePlugin()
|
SnorePlugin::~SnorePlugin()
|
||||||
{
|
{
|
||||||
|
|
|
@ -32,9 +32,6 @@ SnoreNotifier::SnoreNotifier():
|
||||||
SnoreBackend("Snore", true, true, true),
|
SnoreBackend("Snore", true, true, true),
|
||||||
m_widgets(2)
|
m_widgets(2)
|
||||||
{
|
{
|
||||||
moveToThread(qApp->thread());//TODO cleanup
|
|
||||||
QTimer::singleShot(0, this, SLOT(setup()));
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
SnoreNotifier::~SnoreNotifier()
|
SnoreNotifier::~SnoreNotifier()
|
||||||
|
@ -117,3 +114,26 @@ void SnoreNotifier::setup()
|
||||||
connect(w, SIGNAL(invoked()), this, SLOT(slotInvoked()));
|
connect(w, SIGNAL(invoked()), this, SLOT(slotInvoked()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
bool SnoreNotifier::initialize(SnoreCore *snore)
|
||||||
|
{
|
||||||
|
if(SnoreBackend::initialize(snore))
|
||||||
|
{
|
||||||
|
return metaObject()->invokeMethod(this, "setup", Qt::QueuedConnection);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool SnoreNotifier::deinitialize()
|
||||||
|
{
|
||||||
|
if(SnoreBackend::deinitialize())
|
||||||
|
{
|
||||||
|
for(int i=0;i<m_widgets.size();++i)
|
||||||
|
{
|
||||||
|
m_widgets[i]->deleteLater();
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
|
@ -33,7 +33,9 @@ public:
|
||||||
SnoreNotifier();
|
SnoreNotifier();
|
||||||
~SnoreNotifier();
|
~SnoreNotifier();
|
||||||
|
|
||||||
// SnoreBackend interface
|
virtual bool initialize(Snore::SnoreCore *snore);
|
||||||
|
virtual bool deinitialize();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
virtual void slotNotify(Snore::Notification notification);
|
virtual void slotNotify(Snore::Notification notification);
|
||||||
virtual void slotCloseNotification(Snore::Notification notification);
|
virtual void slotCloseNotification(Snore::Notification notification);
|
||||||
|
@ -48,6 +50,8 @@ private:
|
||||||
|
|
||||||
QList<Snore::Notification> m_queue;
|
QList<Snore::Notification> m_queue;
|
||||||
QVector<NotifyWidget*> m_widgets;
|
QVector<NotifyWidget*> m_widgets;
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // SNORENOTIFIER_H
|
#endif // SNORENOTIFIER_H
|
||||||
|
|
Loading…
Reference in New Issue