modernize: Reformat ALL the source... again!
[quassel.git] / src / core / coreapplication.h
index 517fd25..f2f076f 100644 (file)
@@ -1,5 +1,5 @@
 /***************************************************************************
- *   Copyright (C) 2005-09 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  *
  *   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 "core-export.h"
 
-#include "quassel.h"
+#include <memory>
 
-/// Encapsulates CoreApplication's logic.
-/** This allows it to be reused within MonolithicApplication as well.
- */
-class CoreApplicationInternal {
-  Q_DECLARE_TR_FUNCTIONS(CoreApplicationInternal)
+#include <QCoreApplication>
 
-  public:
-    CoreApplicationInternal();
-    ~CoreApplicationInternal();
+#include "core.h"
+#include "quassel.h"
 
-    bool init();
+class Core;
 
-  private:
-    bool _coreCreated;
-};
+class CORE_EXPORT CoreApplication : public QCoreApplication
+{
+    Q_OBJECT
 
-class CoreApplication : public QCoreApplication, public Quassel {
+public:
+    CoreApplication(int& argc, char** argv);
 
-  Q_OBJECT
-  public:
-    CoreApplication(int &argc, char **argv);
-    ~CoreApplication();
+    void init();
 
-    bool init();
+private slots:
+    void onShutdownComplete();
 
-  private:
-    CoreApplicationInternal *_internal;
+private:
+    std::unique_ptr<Core> _core;
 };
-
-#endif