File indexing completed on 2024-04-21 05:54:01
0001 /* 0002 This file is part of the Okteta program, made within the KDE community. 0003 0004 SPDX-FileCopyrightText: 2006-2008 Friedrich W. H. Kossebau <kossebau@kde.org> 0005 0006 SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL 0007 */ 0008 0009 #ifndef OKTETAMAINWINDOW_HPP 0010 #define OKTETAMAINWINDOW_HPP 0011 0012 // Kasten gui 0013 #include <Kasten/ShellWindow> 0014 0015 template <class T> class QVector; 0016 class QMimeData; 0017 0018 namespace Kasten { 0019 0020 class OktetaProgram; 0021 class DocumentManager; 0022 class AbstractToolViewFactory; 0023 class AbstractToolFactory; 0024 class AbstractXmlGuiControllerFactory; 0025 0026 class OktetaMainWindow : public ShellWindow 0027 { 0028 Q_OBJECT 0029 0030 public: 0031 explicit OktetaMainWindow(OktetaProgram* program); 0032 ~OktetaMainWindow() override; 0033 0034 protected: // KMainWindow API 0035 bool queryClose() override; 0036 0037 void saveProperties(KConfigGroup& configGroup) override; 0038 void readProperties(const KConfigGroup& configGroup) override; 0039 0040 private: 0041 void setupControllers(); 0042 void addToolFromFactory(const AbstractToolViewFactory& toolViewFactory, 0043 const AbstractToolFactory& toolFactory); 0044 void addXmlGuiControllerFromFactory(const AbstractXmlGuiControllerFactory& factory); 0045 0046 private Q_SLOTS: 0047 void onDataOffered(const QMimeData* mimeData, bool& accept); 0048 void onDataDropped(const QMimeData* mimeData); 0049 void onCloseRequest(const QVector<Kasten::AbstractView*>& views); 0050 void onNewDocumentRequested(); 0051 0052 private: 0053 OktetaProgram* mProgram; 0054 }; 0055 0056 } 0057 0058 #endif