aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatar staticfox2016-08-07 10:33:51 -0400
committerGravatar staticfox2016-08-07 23:12:47 -0400
commitd02b835b4e04e6fc616b9bf3bc81bf7eb189e45c (patch)
tree944df3beb1e0a816f6d398a27400f7cadd4d6662
parentserverwidget: Remove un-needed if checks (diff)
downloadKVIrc-d02b835b4e04e6fc616b9bf3bc81bf7eb189e45c.tar.gz
KVIrc-d02b835b4e04e6fc616b9bf3bc81bf7eb189e45c.tar.bz2
KVIrc-d02b835b4e04e6fc616b9bf3bc81bf7eb189e45c.zip
libkviterm: Move to unordered_set
-rw-r--r--src/modules/term/TermWidget.cpp13
-rw-r--r--src/modules/term/TermWindow.cpp12
-rw-r--r--src/modules/term/libkviterm.cpp26
3 files changed, 22 insertions, 29 deletions
diff --git a/src/modules/term/TermWidget.cpp b/src/modules/term/TermWidget.cpp
index 60efec2e6..dfa1ac462 100644
--- a/src/modules/term/TermWidget.cpp
+++ b/src/modules/term/TermWidget.cpp
@@ -29,7 +29,6 @@
#include "KviMainWindow.h"
#include "KviIconManager.h"
#include "KviLocale.h"
-#include "KviPointerList.h"
#include <QLabel>
#include <QToolTip>
@@ -42,16 +41,18 @@
#include "kparts/factory.h"
#include <kde_terminal_interface.h>
+#include <unordered_set>
+
extern KviModule * g_pTermModule;
-extern KviPointerList<TermWidget> * g_pTermWidgetList;
-extern KviPointerList<TermWindow> * g_pTermWindowList;
+extern std::unordered_set<TermWidget *> g_pTermWidgetList;
+extern std::unordered_set<TermWindow *> g_pTermWindowList;
TermWidget::TermWidget(QWidget * par, bool bIsStandalone)
: QFrame(par)
{
setObjectName("term_widget");
if(bIsStandalone)
- g_pTermWidgetList->append(this);
+ g_pTermWidgetList.insert(this);
m_bIsStandalone = bIsStandalone;
m_pKonsolePart = 0;
@@ -112,8 +113,8 @@ TermWidget::~TermWidget()
disconnect(m_pKonsoleWidget, SIGNAL(destroyed()), this, SLOT(konsoleDestroyed()));
if(m_bIsStandalone)
- g_pTermWidgetList->removeRef(this);
- if(g_pTermWindowList->isEmpty() && g_pTermWidgetList->isEmpty())
+ g_pTermWidgetList.erase(this);
+ if(g_pTermWindowList.erase() && g_pTermWidgetList.empty())
g_pTermModule->unlock();
}
diff --git a/src/modules/term/TermWindow.cpp b/src/modules/term/TermWindow.cpp
index 18d4416e6..93f17852d 100644
--- a/src/modules/term/TermWindow.cpp
+++ b/src/modules/term/TermWindow.cpp
@@ -31,23 +31,25 @@
#include "KviLocale.h"
#include "KviModule.h"
+#include <unordered_set>
+
extern KviModule * g_pTermModule;
-extern KviPointerList<TermWindow> * g_pTermWindowList;
-extern KviPointerList<TermWidget> * g_pTermWidgetList;
+extern std::unordered_set<TermWindow *> g_pTermWindowList;
+extern std::unordered_set<TermWidget *> g_pTermWidgetList;
extern KviIconManager * g_pIconManager;
TermWindow::TermWindow(const char * name)
: KviWindow(KviWindow::Terminal, name)
{
- g_pTermWindowList->append(this);
+ g_pTermWindowList.insert(this);
m_pTermWidget = 0;
m_pTermWidget = new TermWidget(this);
}
TermWindow::~TermWindow()
{
- g_pTermWindowList->removeRef(this);
- if(g_pTermWindowList->isEmpty() && g_pTermWidgetList->isEmpty())
+ g_pTermWindowList.erase(this);
+ if(g_pTermWindowList.empty() && g_pTermWidgetList.empty())
g_pTermModule->unlock();
}
diff --git a/src/modules/term/libkviterm.cpp b/src/modules/term/libkviterm.cpp
index d17ec09ea..479823062 100644
--- a/src/modules/term/libkviterm.cpp
+++ b/src/modules/term/libkviterm.cpp
@@ -26,7 +26,6 @@
#include "KviModule.h"
#include "KviWindow.h"
#include "KviMainWindow.h"
-#include "KviPointerList.h"
#include <QSplitter>
@@ -34,8 +33,10 @@
#include "TermWidget.h"
#include "TermWindow.h"
-KviPointerList<TermWidget> * g_pTermWidgetList = 0;
-KviPointerList<TermWindow> * g_pTermWindowList = 0;
+#include <unordered_set>
+
+std::unordered_set<TermWidget *> g_pTermWidgetList;
+std::unordered_set<TermWindow *> g_pTermWindowList;
#endif
KviModule * g_pTermModule = nullptr;
@@ -89,13 +90,6 @@ static bool term_module_init(KviModule * m)
{
g_pTermModule = m;
-#ifdef COMPILE_KDE4_SUPPORT
- g_pTermWidgetList = new KviPointerList<TermWidget>;
- g_pTermWidgetList->setAutoDelete(false);
- g_pTermWindowList = new KviPointerList<TermWindow>;
- g_pTermWindowList->setAutoDelete(false);
-#endif
-
KVSM_REGISTER_SIMPLE_COMMAND(m, "open", term_kvs_cmd_open);
return true;
}
@@ -103,14 +97,10 @@ static bool term_module_init(KviModule * m)
static bool term_module_cleanup(KviModule *)
{
#ifdef COMPILE_KDE4_SUPPORT
- while(g_pTermWidgetList->first())
- delete g_pTermWidgetList->first();
- delete g_pTermWidgetList;
- g_pTermWidgetList = 0;
- while(g_pTermWindowList->first())
- g_pTermWindowList->first()->close();
- delete g_pTermWindowList;
- g_pTermWindowList = 0;
+ for(auto & t : g_pTermWidgetList)
+ delete t;
+ for(auto & t : g_pTermWindowList)
+ t->close();
#endif
return true;
}