[devel] kdenonbeta/kdedebian/kalternatives/src
Mario Bensi <[email protected]> Thu, 30 Sep 2004 13:48:54 +0200 (CEST)
| Newsgroups | gmane.comp.kde.devel.debian |
|---|---|
| Message-ID | <20040930114854.44B829961__22963.1078466356$1096549965$gmane$org@office.kde.org> |
CVS commit by bensi:
"thread safe"
M +4 -0 addalternatives.cpp 1.4
M +13 -14 altitemelement.cpp 1.4
M +3 -2 altitemelement.h 1.4
M +4 -0 kalternatives.cpp 1.9
--- kdenonbeta/kdedebian/kalternatives/src/addalternatives.cpp #1.3:1.4
@@ -130,4 +130,8 @@ void AddAlternatives::slotOkClicked()
altItem->setText( 3, m_small_desc);
}
+ else
+ {
+ altItem->searchDescription();
+ }
#endif
m_treeItem->setChanged(TRUE);
--- kdenonbeta/kdedebian/kalternatives/src/altitemelement.cpp #1.3:1.4
@@ -50,20 +50,19 @@ AltItemElement::~AltItemElement()
#ifdef DEBIAN
-QString AltItemElement::getDescription()
+void AltItemElement::searchDescription()
{
- if (m_desc == "")
- {
+ m_mutex.lock();
FindDescriptionThread *thread = new FindDescriptionThread(this);
thread->start();
- }
-
- return m_desc;
+ m_mutex.unlock();
}
void AltItemElement::setDescription(QString desc)
{
+ m_mutex.lock();
m_desc = desc;
desc.truncate(desc.find("\n"));
setText( 3, desc);
+ m_mutex.unlock();
}
@@ -84,8 +83,8 @@ FindDescriptionThread::~FindDescriptionT
void FindDescriptionThread::run()
{
- /*QString tmp = getDescriptionProcess();
- m_altItem->setDescription(tmp);*/
- sleep(3);
- m_altItem->setDescription("blub");
+ QString tmp = getDescriptionProcess();
+ m_altItem->setDescription(tmp);
+ /*sleep(3);
+ m_altItem->setDescription("blub");*/
}
@@ -134,5 +133,5 @@ void FindDescriptionThread::slotGetExecu
QString FindDescriptionThread::getDescriptionProcess()
{
- m_mutex.lock();
+
m_exec = "";
KProcess *proc = new KProcess();
@@ -168,5 +167,5 @@ QString FindDescriptionThread::getDescri
procdesc->wait();
}
- m_mutex.unlock();
+
return m_descTmp;
}
--- kdenonbeta/kdedebian/kalternatives/src/altitemelement.h #1.3:1.4
@@ -40,4 +40,5 @@ class AltItemElement : public QCheckLis
//#ifdef DEBIAN
QString m_desc;
+ QMutex m_mutex;
//#endif
@@ -51,5 +52,6 @@ public:
QString getPath() const {return m_path; }
//#ifdef DEBIAN
- QString getDescription();
+ QString getDescription() const {return m_desc;}
+ void searchDescription();
void setDescription(QString desc);
@@ -65,5 +67,4 @@ class FindDescriptionThread : public QOb
QString m_descTmp;
QString m_exec;
- QMutex m_mutex;
public:
FindDescriptionThread(AltItemElement *altItem);
--- kdenonbeta/kdedebian/kalternatives/src/kalternatives.cpp #1.8:1.9
@@ -182,4 +182,8 @@ void Kalternatives::slotSelectAlternativ
altItem->setText( 3, m_small_desc);
}
+ else
+ {
+ altItem->searchDescription();
+ }
#endif
}