Warning, file /office/calligra/gemini/MainWindow.h was not indexed or was modified since last indexation (in which case cross-reference links may be missing, inaccurate or erroneous).

0001 /* This file is part of the KDE project
0002  * SPDX-FileCopyrightText: 2012 Arjen Hiemstra <ahiemstra@heimr.nl>
0003  * SPDX-FileCopyrightText: 2013 Dan Leinir Turthra Jensen <admin@leinir.dk>
0004  *
0005  * SPDX-License-Identifier: LGPL-2.0-or-later
0006  */
0007 
0008 #ifndef MAINWINDOW_H
0009 #define MAINWINDOW_H
0010 
0011 #include <QMainWindow>
0012 
0013 class MainWindow : public QMainWindow
0014 {
0015     Q_OBJECT
0016     Q_PROPERTY(bool allowClose READ allowClose WRITE setAllowClose)
0017     Q_PROPERTY(bool slateMode READ slateMode NOTIFY slateModeChanged)
0018     Q_PROPERTY(QString applicationName READ applicationName CONSTANT)
0019     Q_PROPERTY(QString currentTouchPage READ currentTouchPage WRITE setCurrentTouchPage NOTIFY currentTouchPageChanged)
0020     Q_PROPERTY(bool temporaryFile READ temporaryFile WRITE setTemporaryFile NOTIFY temporaryFileChanged)
0021     Q_PROPERTY(bool fullScreen READ fullScreen WRITE setFullScreen NOTIFY fullScreenChanged)
0022     Q_PROPERTY(QObject* desktopKoView READ desktopKoView NOTIFY desktopKoViewChanged)
0023 
0024 public:
0025     explicit MainWindow(QStringList fileNames, QWidget* parent = 0, Qt::WindowFlags flags = Qt::WindowFlags());
0026     ~MainWindow() override;
0027 
0028     bool allowClose() const;
0029     void setAllowClose(bool allow);
0030 
0031     bool slateMode() const;
0032 
0033     QString applicationName() const {
0034         return QLatin1String("CALLIGRA GEMINI");
0035     }
0036 
0037     QString currentTouchPage() const;
0038     void setCurrentTouchPage(QString newPage);
0039 
0040     bool temporaryFile() const;
0041     void setTemporaryFile(bool newValue);
0042 
0043     bool fullScreen() const;
0044     void setFullScreen(bool newValue);
0045 
0046     QObject* desktopKoView() const;
0047     Q_INVOKABLE int lastScreen() const;
0048 
0049     Q_INVOKABLE void setAlternativeSaveAction(QAction* altAction);
0050 
0051     void closeEvent(QCloseEvent* event) override;
0052 
0053     Q_INVOKABLE void setDocAndPart(QObject* document, QObject* part);
0054 
0055 public Q_SLOTS:
0056     void minimize();
0057     void closeWindow();
0058 
0059     void switchToTouch();
0060     void switchToDesktop();
0061     void documentChanged();
0062     void resetWindowTitle();
0063     void resourceChanged(int key, const QVariant& v);
0064     void resourceChangedTouch(int key, const QVariant& v);
0065     /**
0066      * Used to open an arbitrary file from the welcome screen,
0067      * not from the normal UI (desktopproxy does that)
0068      */
0069     void openFile();
0070 Q_SIGNALS:
0071     void closeRequested();
0072     void switchedToTouch();
0073     void slateModeChanged();
0074     void currentTouchPageChanged();
0075     void temporaryFileChanged();
0076     void fullScreenChanged();
0077     void desktopKoViewChanged();
0078     void documentSaved();
0079 
0080 private Q_SLOTS:
0081     void switchDesktopForced();
0082     void switchTouchForced();
0083     void touchChange();
0084     void enableAltSaveAction();
0085 
0086 private:
0087     class Private;
0088     Private * const d;
0089 
0090 #ifdef Q_OS_WIN
0091     bool winEvent(MSG * message, long * result);
0092 #endif
0093 };
0094 
0095 #endif // MAINWINDOW_H