KParts

mainwindow.h
1/*
2 This file is part of the KDE project
3 SPDX-FileCopyrightText: 1999 Simon Hausmann <hausmann@kde.org>
4 SPDX-FileCopyrightText: 1999 David Faure <faure@kde.org>
5
6 SPDX-License-Identifier: LGPL-2.0-or-later
7*/
8
9#ifndef __MAINWINDOW_H
10#define __MAINWINDOW_H
11
12#include <kparts/part.h>
13
14#include <KXmlGuiWindow>
15#include <memory>
16
17class QString;
18
19namespace KParts
20{
21class MainWindowPrivate;
22
23/**
24 * @class MainWindow mainwindow.h <KParts/MainWindow>
25 *
26 * @short A KPart-aware main window, whose user interface is described in XML.
27 *
28 * It implements all internal interfaces in the case of a
29 * KMainWindow as host: the builder and servant interface (for menu
30 * merging).
31 *
32 * Inherit your main window from this class
33 * and make sure to call @c setXMLFile() and @c setupGUI() before you
34 * call @c createGUI() on the KPart.
35 *
36 * For example:
37 * \code
38 * setCentralWidget(m_part->widget());
39 * setXMLFile(QStringLiteral("appui.rc"));
40 * setupGUI(ToolBar | Keys | StatusBar | Save); // Never Create flag here
41 * createGUI(m_part);
42 * \endcode
43 *
44 * @warning You should not pass the @c Default flag set to @c setupGUI(),
45 * since it contains the @c Create flag, which is not supposed to be used
46 * from this class.
47 * @see KXmlGuiWindow::Create, @see setupGUI, @see createGUI
48 *
49 */
50class KPARTS_EXPORT MainWindow : public KXmlGuiWindow, virtual public PartBase
51{
53public:
54 /**
55 * Constructor, same signature as KMainWindow.
56 */
57 explicit MainWindow(QWidget *parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
58 /**
59 * Destructor.
60 */
61 ~MainWindow() override;
62
63public Q_SLOTS:
64 void configureToolbars() override;
65
66protected Q_SLOTS:
67
68 /**
69 * Create the GUI (by merging the host's and the active part's)
70 * You _must_ call this in order to see any GUI being created.
71 *
72 * In a main window with multiple parts being shown (e.g. as in Konqueror)
73 * you need to connect this slot to the
74 * KPartManager::activePartChanged() signal
75 *
76 * @param part The active part (set to 0L if no part).
77 */
78 void createGUI(KParts::Part *part);
79
80 /**
81 * Enable or disable the automatic setting of window titles by the part's document title.
82 * By default, a part always changes the window title when the document changes.
83 * @note This value must be set before calling createGUI().
84 *
85 * @param enabled boolean to enable or disable the window title handling
86 * @since 5.24
87 */
89
90 /**
91 * Called when the active part wants to change the statusbar message
92 * Reimplement if your mainwindow has a complex statusbar
93 * (with several items)
94 */
95 virtual void slotSetStatusBarText(const QString &);
96
97 /**
98 * Rebuilds the GUI after KEditToolBar changed the toolbar layout.
99 * @see configureToolbars()
100 */
101 void saveNewToolbarConfig() override;
102
103protected:
104 virtual void createShellGUI(bool create = true);
105
106private:
107 std::unique_ptr<MainWindowPrivate> const d;
108};
109
110}
111
112#endif
~MainWindow() override
Destructor.
MainWindow(QWidget *parent=nullptr, Qt::WindowFlags f=Qt::WindowFlags())
Constructor, same signature as KMainWindow.
void saveNewToolbarConfig() override
Rebuilds the GUI after KEditToolBar changed the toolbar layout.
void setWindowTitleHandling(bool enabled)
Enable or disable the automatic setting of window titles by the part's document title.
virtual void slotSetStatusBarText(const QString &)
Called when the active part wants to change the statusbar message Reimplement if your mainwindow has ...
void createGUI(KParts::Part *part)
Create the GUI (by merging the host's and the active part's) You must call this in order to see any G...
PartBase()
Constructor.
Definition partbase.cpp:14
Base class for parts.
Definition part.h:57
KXmlGuiWindow(QWidget *parent=nullptr, Qt::WindowFlags flags=Qt::WindowFlags())
The KParts namespace,.
Q_OBJECTQ_OBJECT
Q_SLOTSQ_SLOTS
QObject * parent() const const
typedef WindowFlags
void create(WId window, bool initializeWindow, bool destroyOldWindow)
This file is part of the KDE documentation.
Documentation copyright © 1996-2025 The KDE developers.
Generated on Fri Feb 28 2025 12:03:28 by doxygen 1.13.2 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.