Merge util
authorIceyer <me@iceyer.net>
Wed, 26 Jul 2017 04:53:42 +0000 (12:53 +0800)
committerIceyer <me@iceyer.net>
Wed, 26 Jul 2017 04:54:59 +0000 (12:54 +0800)
src/base/DObjectPrivate
src/base/base.pri
src/base/private/dobject_p.h
src/dtkcore_global.h
src/settings/DOption
src/settings/DSettings
src/src.pro
src/util/DUtil [new file with mode: 0644]
src/util/dutil.h [new file with mode: 0644]
src/util/util.pri [new file with mode: 0644]

index 0cb1acdea5f236a2fd69588e03f169f48be62e87..0c145c8fd2d358e294dbdf2a9ff72e3ecbe6d0c3 100644 (file)
@@ -1 +1 @@
-#include "private/dobject_p.h"
+#include "dobject_p.h"
index 39370aca8fa50ca9a77114df61dcba99e551ac97..fd52fce9d91e5198f821d2696f2b909a06f1f61c 100644 (file)
@@ -8,6 +8,8 @@ SOURCES += \
     $$PWD/dobject.cpp
 
 includes.files += $$PWD/*.h
+includes.files += $$PWD/private/*.h
 includes.files += \
     $$PWD/DObject \
+    $$PWD/DObjectPrivate \
     $$PWD/DSingleton
index c718f12e0e356306a1e6a2921be20211dde0c310..9a431ccaa6b4dc0ecc61266177130ce898b03cc8 100644 (file)
 #define DOBJECT_P_H
 
 #include "dtkcore_global.h"
-#include "../dobject.h"
 
 DCORE_BEGIN_NAMESPACE
 
+class DObject;
 class DObjectPrivate
 {
 public:
index c75a656a5f0dca3acd00565de837e029666e0af6..6efee2f02a572d18c74fa3ca84aad2f47c0480a1 100644 (file)
@@ -24,7 +24,7 @@
 #else
 #   define DCORE_BEGIN_NAMESPACE namespace DTK_NAMESPACE { namespace DCORE_NAMESPACE {
 #   define DCORE_END_NAMESPACE }}
-#   define DCORE_USE_NAMESPACE using namespace DCORE_NAMESPACE;
+#   define DCORE_USE_NAMESPACE using namespace DTK_CORE_NAMESPACE;
 #endif
 
 
index 08b634159c9bb7e599401e926230138e4950135c..9c180d556f31d4f7d8c23016db6a7ecff1cfa899 100644 (file)
@@ -1 +1 @@
-#include "option.h"
+#include "dsettingsoption.h"
index d90bd0781d1b78a87fb510158aa91ea2b664c14b..572ed1b2157576657d2ff10e3f3d329e1d6fd564 100644 (file)
@@ -1 +1 @@
-#include "settings.h"
+#include "dsettings.h"
index d884720629fa4124c88c0baf932f1aea8a268197..f9af1736282a0644366dfa641b65307d27665c24 100644 (file)
@@ -13,6 +13,7 @@ HEADERS += \
     $$PWD/dtkcore_global.h \
 
 include($$PWD/base/base.pri)
+include($$PWD/util/util.pri)
 include($$PWD/log/log.pri)
 include($$PWD/filesystem/filesystem.pri)
 include($$PWD/settings/settings.pri)
diff --git a/src/util/DUtil b/src/util/DUtil
new file mode 100644 (file)
index 0000000..2dc0935
--- /dev/null
@@ -0,0 +1 @@
+#include "dutil.h"
diff --git a/src/util/dutil.h b/src/util/dutil.h
new file mode 100644 (file)
index 0000000..376e9fc
--- /dev/null
@@ -0,0 +1,38 @@
+/**
+ * Copyright (C) 2016 Deepin Technology Co., Ltd.
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 3 of the License, or
+ * (at your option) any later version.
+ **/
+
+#pragma once
+
+#include <QTimer>
+#include <QThread>
+#include <QMetaObject>
+#include <QCoreApplication>
+
+namespace DUtil
+{
+
+template <typename Func1>
+inline void TimerSingleShot(int msec,  Func1 slot)
+{
+#if QT_VERSION >= 0x050500
+    QTimer::singleShot(msec, slot);
+#else
+    QTimer *timer = new QTimer;
+    timer->setSingleShot(true);
+    timer->setInterval(msec);
+    timer->moveToThread(qApp->thread());
+    QObject::connect(timer, &QTimer::timeout, slot);
+    QObject::connect(timer, &QTimer::timeout, timer, &QTimer::deleteLater);
+    if (QThread::currentThread() == qApp->thread()) { timer->start(); }
+    else { QMetaObject::invokeMethod(timer, "start", Qt::QueuedConnection); }
+#endif
+}
+
+
+}
diff --git a/src/util/util.pri b/src/util/util.pri
new file mode 100644 (file)
index 0000000..4d3e866
--- /dev/null
@@ -0,0 +1,6 @@
+HEADERS += \
+    $$PWD/dutil.h
+
+includes.files += $$PWD/*.h
+includes.files += \
+    $$PWD/DUtil