Browse Source

Clean up Translator a little

Using the STL is still better than writting our own for loops.
pull/1816/head
tux3 10 years ago
parent
commit
3284a66f49
No known key found for this signature in database
GPG Key ID: 7E086DD661263264
  1. 13
      src/translator.cpp
  2. 5
      src/translator.h

13
src/translator.cpp

@ -7,9 +7,10 @@ @@ -7,9 +7,10 @@
#include <QLibraryInfo>
#include <QDebug>
#include <QMutexLocker>
#include <algorithm>
QTranslator* Translator::translator{nullptr};
QVector<QPair<void*, std::function<void()>>> Translator::callbacks;
QVector<Translator::Callback> Translator::callbacks;
QMutex Translator::lock;
void Translator::translate()
@ -64,12 +65,6 @@ void Translator::registerHandler(std::function<void()> f, void *owner) @@ -64,12 +65,6 @@ void Translator::registerHandler(std::function<void()> f, void *owner)
void Translator::unregister(void *owner)
{
QMutexLocker locker{&lock};
for (int i=0; i<callbacks.size(); i++)
{
if (callbacks[i].first == owner)
{
callbacks.removeAt(i);
i--;
}
}
callbacks.erase(std::remove_if(begin(callbacks), end(callbacks),
[=](const Callback& c){return c.first==owner;}), end(callbacks));
}

5
src/translator.h

@ -19,9 +19,10 @@ public: @@ -19,9 +19,10 @@ public:
static void unregister(void* owner);
private:
static QTranslator* translator;
static QVector<QPair<void*, std::function<void()>>> callbacks;
using Callback = QPair<void*, std::function<void()>>;
static QVector<Callback> callbacks;
static QMutex lock;
static QTranslator* translator;
};
#endif // TRANSLATOR_H

Loading…
Cancel
Save