/***************************************************************************
- * Copyright (C) 2005-2015 by the Quassel Project *
+ * Copyright (C) 2005-2018 by the Quassel Project *
* devel@quassel-irc.org *
* *
* This program is free software; you can redistribute it and/or modify *
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. *
***************************************************************************/
-#ifndef COREAPPLICATION_H_
-#define COREAPPLICATION_H_
+#pragma once
+
+#include <memory>
#include <QCoreApplication>
#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();
+class Core;
-private:
- bool _coreCreated;
-};
-
-
-class CoreApplication : public QCoreApplication, public Quassel
+class CoreApplication : public QCoreApplication
{
Q_OBJECT
public:
CoreApplication(int &argc, char **argv);
- ~CoreApplication();
+ ~CoreApplication() override;
- bool init();
+ void init();
private:
- CoreApplicationInternal *_internal;
+ std::unique_ptr<Core> _core;
};
-
-
-#endif