Renamed methods and improved documentation, as in the previous patch the wrong mutex has been used accidently because of the confusing naming of the methods.

svn path=/trunk/KDE/kdebase/apps/; revision=1107136
This commit is contained in:
Peter Penz 2010-03-24 22:41:06 +00:00
parent 884e95cc98
commit d197a7e531
3 changed files with 29 additions and 10 deletions

View file

@ -76,14 +76,14 @@ void UpdateItemStatesThread::run()
}
}
bool UpdateItemStatesThread::beginReadItemStates()
bool UpdateItemStatesThread::lockPlugin()
{
return m_itemMutex.tryLock(300);
return m_globalPluginMutex->tryLock(300);
}
void UpdateItemStatesThread::endReadItemStates()
void UpdateItemStatesThread::unlockPlugin()
{
m_itemMutex.unlock();
m_globalPluginMutex->unlock();
}
QList<VersionControlObserver::ItemState> UpdateItemStatesThread::itemStates() const

View file

@ -41,11 +41,30 @@ public:
UpdateItemStatesThread();
virtual ~UpdateItemStatesThread();
/**
* @param plugin Version control plugin that is used to update the
* state of the items. Whenever the plugin is accessed
* from the thread creator after starting the thread,
* UpdateItemStatesThread::lockPlugin() and
* UpdateItemStatesThread::unlockPlugin() must be used.
* @param itemStates List of items, where the states get updated.
*/
void setData(KVersionControlPlugin* plugin,
const QList<VersionControlObserver::ItemState>& itemStates);
bool beginReadItemStates();
void endReadItemStates();
/**
* Whenever the plugin is accessed by the thread creator, lockPlugin() must
* be invoked. True is returned, if the plugin could be locked within 300
* milliseconds.
*/
bool lockPlugin();
/**
* Must be invoked if lockPlugin() returned true and plugin has been accessed
* by the thread creator.
*/
void unlockPlugin();
QList<VersionControlObserver::ItemState> itemStates() const;
bool retrievedItems() const;

View file

@ -99,9 +99,9 @@ VersionControlObserver::~VersionControlObserver()
QList<QAction*> VersionControlObserver::contextMenuActions(const KFileItemList& items) const
{
QList<QAction*> actions;
if (isVersioned() && m_updateItemStatesThread->beginReadItemStates()) {
if (isVersioned() && m_updateItemStatesThread->lockPlugin()) {
actions = m_plugin->contextMenuActions(items);
m_updateItemStatesThread->endReadItemStates();
m_updateItemStatesThread->unlockPlugin();
}
return actions;
}
@ -109,9 +109,9 @@ QList<QAction*> VersionControlObserver::contextMenuActions(const KFileItemList&
QList<QAction*> VersionControlObserver::contextMenuActions(const QString& directory) const
{
QList<QAction*> actions;
if (isVersioned() && m_updateItemStatesThread->beginReadItemStates()) {
if (isVersioned() && m_updateItemStatesThread->lockPlugin()) {
actions = m_plugin->contextMenuActions(directory);
m_updateItemStatesThread->endReadItemStates();
m_updateItemStatesThread->unlockPlugin();
}
return actions;