/***************************************************************************
- * Copyright (C) 2005-08 by the Quassel IRC Team *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* You should have received a copy of the GNU General Public License *
* along with this program; if not, write to the *
* Free Software Foundation, Inc., *
- * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef COREAPPLICATION_H_
-#define COREAPPLICATION_H_
+#pragma once
-#ifdef HAVE_KDE
-# include <KApplication>
-#else
-# include <QCoreApplication>
-#endif
+#include <memory>
-#include "quassel.h"
-
-/// Encapsulates CoreApplication's logic.
-/** This allows it to be reused within MonolithicApplication as well.
- */
-class CoreApplicationInternal {
- Q_DECLARE_TR_FUNCTIONS(CoreApplicationInternal)
-
- public:
- CoreApplicationInternal();
- ~CoreApplicationInternal();
-
- bool init();
+#include <QCoreApplication>
- private:
- bool _coreCreated;
-};
+#include "quassel.h"
-#ifdef HAVE_KDE
-class CoreApplication : public KApplication, public Quassel {
-#else
-class CoreApplication : public QCoreApplication, public Quassel {
-#endif
+class Core;
- Q_OBJECT
- public:
+class CoreApplication : public QCoreApplication
+{
+ Q_OBJECT
+public:
CoreApplication(int &argc, char **argv);
- ~CoreApplication();
+ ~CoreApplication() override;
- bool init();
+ void init();
- private:
- CoreApplicationInternal *_internal;
+private:
+ std::unique_ptr<Core> _core;
};
-
-#endif