1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57
|
/*
This file is part of the Okteta program, made within the KDE community.
SPDX-FileCopyrightText: 2006-2008 Friedrich W. H. Kossebau <kossebau@kde.org>
SPDX-License-Identifier: GPL-2.0-only OR GPL-3.0-only OR LicenseRef-KDE-Accepted-GPL
*/
#ifndef OKTETAMAINWINDOW_HPP
#define OKTETAMAINWINDOW_HPP
// Kasten gui
#include <Kasten/ShellWindow>
template <class T> class QVector;
class QMimeData;
namespace Kasten {
class OktetaProgram;
class AbstractToolViewFactory;
class AbstractToolFactory;
class AbstractXmlGuiControllerFactory;
class OktetaMainWindow : public ShellWindow
{
Q_OBJECT
public:
explicit OktetaMainWindow(OktetaProgram* program);
~OktetaMainWindow() override;
protected: // KMainWindow API
bool queryClose() override;
void saveProperties(KConfigGroup& configGroup) override;
void readProperties(const KConfigGroup& configGroup) override;
private:
void setupControllers();
void addToolFromFactory(const AbstractToolViewFactory& toolViewFactory,
const AbstractToolFactory& toolFactory);
void addXmlGuiControllerFromFactory(const AbstractXmlGuiControllerFactory& factory);
private Q_SLOTS:
void onDataOffered(const QMimeData* mimeData, bool& accept);
void onDataDropped(const QMimeData* mimeData);
void onCloseRequest(const QVector<Kasten::AbstractView*>& views);
void onNewDocumentRequested();
private:
OktetaProgram* mProgram;
};
}
#endif
|