Krita

Window.h
1 /*
2  * SPDX-FileCopyrightText: 2016 Boudewijn Rempt <[email protected]>
3  *
4  * SPDX-License-Identifier: LGPL-2.0-or-later
5  */
6 #ifndef LIBKIS_WINDOW_H
7 #define LIBKIS_WINDOW_H
8 
9 #include <QObject>
10 #include <QAction>
11 #include <QMainWindow>
12 
13 #include "kritalibkis_export.h"
14 #include "libkis.h"
15 
16 class KisMainWindow;
17 
18 /**
19  * Window represents one Krita mainwindow. A window can have any number
20  * of views open on any number of documents.
21  */
22 class KRITALIBKIS_EXPORT Window : public QObject
23 {
24  Q_OBJECT
25 
26 public:
27  explicit Window(KisMainWindow *window, QObject *parent = 0);
28  ~Window() override;
29 
30  bool operator==(const Window &other) const;
31  bool operator!=(const Window &other) const;
32 
33 public Q_SLOTS:
34 
35  /**
36  * Return a handle to the QMainWindow widget. This is useful
37  * to e.g. parent dialog boxes and message box.
38  */
39  QMainWindow *qwindow() const;
40 
41  /**
42  * @brief dockers
43  * @return a list of all the dockers belonging to this window
44  */
45  QList<QDockWidget *> dockers() const;
46 
47  /**
48  * @return a list of open views in this window
49  */
50  QList<View*> views() const;
51 
52  /**
53  * Open a new view on the given document in this window
54  */
55  View *addView(Document *document);
56 
57  /**
58  * Make the given view active in this window. If the view
59  * does not belong to this window, nothing happens.
60  */
61  void showView(View *view);
62 
63 
64  /**
65  * @return the currently active view or 0 if no view is active
66  */
67  View *activeView() const;
68 
69  /**
70  * @brief activate activates this Window.
71  */
72  void activate();
73 
74  /**
75  * @brief close the active window and all its Views. If there
76  * are no Views left for a given Document, that Document will
77  * also be closed.
78  */
79  void close();
80 
81  /**
82  * @brief createAction creates a QAction object and adds it to the action
83  * manager for this Window.
84  * @param id The unique id for the action. This will be used to
85  * propertize the action if any .action file is present
86  * @param text The user-visible text of the action. If empty, the text from the
87  * .action file is used.
88  * @param menuLocation a /-separated string that describes which menu the action should
89  * be places in. Default is "tools/scripts"
90  * @return the new action.
91  */
92  QAction *createAction(const QString &id, const QString &text = QString(), const QString &menuLocation = QString("tools/scripts"));
93 
94 Q_SIGNALS:
95  /// Emitted when the window is closed.
96  void windowClosed();
97 
98  /// Emitted when we change the color theme
99  void themeChanged();
100 
101  /// Emitted when the active view changes
102  void activeViewChanged();
103 
104 private:
105  struct Private;
106  Private *const d;
107 
108 };
109 
110 #endif // LIBKIS_WINDOW_H
Q_SLOTSQ_SLOTS
Window represents one Krita mainwindow.
Definition: Window.h:22
The Document class encapsulates a Krita Document/Image.
Definition: Document.h:33
View represents one view on a document.
Definition: View.h:24
Q_SIGNALSQ_SIGNALS
This file is part of the KDE documentation.
Documentation copyright © 1996-2023 The KDE developers.
Generated on Mon May 8 2023 04:08:42 by doxygen 1.8.17 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.