feat: add missing KF6 framework recipes

This commit is contained in:
2026-05-07 07:53:26 +01:00
parent d8d498f831
commit a69f479b52
2374 changed files with 2610246 additions and 0 deletions
@@ -0,0 +1,191 @@
/*
This file is part of the KDE project
SPDX-FileCopyrightText: 1999 Simon Hausmann <hausmann@kde.org>
SPDX-FileCopyrightText: 1999 David Faure <faure@kde.org>
SPDX-License-Identifier: LGPL-2.0-or-later
*/
#ifndef _KPARTS_PART_H
#define _KPARTS_PART_H
#include <KPluginMetaData>
#include <kparts/partbase.h>
class QWidget;
class QEvent;
class QPoint;
/**
* The KParts namespace,
*/
namespace KParts
{
class PartManager;
class PartPrivate;
class PartActivateEvent;
class GUIActivateEvent;
/**
* @class Part part.h <KParts/Part>
*
* @short Base class for parts.
*
* A "part" is a GUI component, featuring:
* @li A widget embeddedable in any application.
* @li GUI elements that will be merged in the "host" user interface
* (menubars, toolbars... ).
*
* <b>About the widget:</b>\n
*
* Note that KParts::Part does not inherit QWidget.
* This is due to the fact that the "visual representation"
* will probably not be a mere QWidget, but an elaborate one.
* That's why when implementing your KParts::Part (or derived)
* you should call KParts::Part::setWidget() in your constructor.
*
* <b>About the GUI elements:</b>\n
*
* Those elements trigger actions, defined by the part ( action()).
* The layout of the actions in the GUI is defined by an XML file ( setXMLFile()).
*
* See also ReadOnlyPart and ReadWritePart, which define the
* framework for a "viewer" part and for an "editor"-like part.
* Use Part directly only if your part doesn't fit into those.
*/
class KPARTS_EXPORT Part : public QObject, public PartBase
{
Q_OBJECT
KPARTS_DECLARE_PRIVATE(Part)
public:
/**
* Constructor.
*
* @param parent Parent object of the part.
* @param data KPluginMetaData associated with this part, see Part::metaData()
*/
explicit Part(QObject *parent = nullptr, const KPluginMetaData &data = {});
/**
* Destructor.
*/
~Part() override;
/**
* @return The widget defined by this part, set by setWidget().
*/
virtual QWidget *widget();
/**
* @internal
* Used by the part manager.
*/
virtual void setManager(PartManager *manager);
/**
* Returns the part manager handling this part, if any (0L otherwise).
*/
PartManager *manager() const;
/**
* By default, the widget is deleted by the part when the part is deleted.
* The hosting application can call setAutoDeleteWidget(false) to
* disable this behavior, given that the widget is usually deleted by
* its parent widget anyway.
* This is a method for the hosting application only, Part subclasses
* should never call this.
*/
void setAutoDeleteWidget(bool autoDeleteWidget);
/**
* By default, the part deletes itself when its widget is deleted.
* The hosting application can call setAutoDeletePart(false) to
* disable this behavior, to be able to delete the widget and then the part,
* independently.
* This is a method for the hosting application only, Part subclasses
* should never call this.
*/
void setAutoDeletePart(bool autoDeletePart);
/**
* Returns the part (this, or a child part) at the given global position.
* This is called by the part manager to ask whether a part should be activated
* when clicking somewhere. In most cases the default implementation is enough.
* Reimplement this if your part has child parts in some areas (like in khtml or koffice)
* @param widget the part widget being clicked - usually the same as widget(), except in koffice.
* @param globalPos the mouse coordinates in global coordinates
*/
virtual Part *hitTest(QWidget *widget, const QPoint &globalPos);
/**
* @since 5.77
*/
KPluginMetaData metaData() const;
Q_SIGNALS:
/**
* Emitted by the part, to set the caption of the window(s)
* hosting this part
*
* @note this signal has only an effect on the window title if window title
* handling is enabled @see KParts::MainWindow::setWindowTitleHandling
*/
void setWindowCaption(const QString &caption);
/**
* Emitted by the part, to set a text in the statusbar of the window(s)
* hosting this part
*/
void setStatusBarText(const QString &text);
protected:
/**
* Set the main widget.
*
* Call this in the Part-inherited class constructor.
*/
virtual void setWidget(QWidget *widget);
/**
* @internal
*/
void customEvent(QEvent *event) override;
/**
* Convenience method which is called when the Part received a PartActivateEvent .
* Reimplement this if you don't want to reimplement event and test for the event yourself
* or even install an event filter.
*/
virtual void partActivateEvent(PartActivateEvent *event);
/**
* Convenience method which is called when the Part received a
* GUIActivateEvent .
* Reimplement this if you don't want to reimplement event and
* test for the event yourself or even install an event filter.
*/
virtual void guiActivateEvent(GUIActivateEvent *event);
/**
* Convenience method for KXMLGUIFactory::container.
* @return a container widget owned by the Part's GUI.
*/
QWidget *hostContainer(const QString &containerName);
protected Q_SLOTS:
/**
* @internal
*/
void slotWidgetDestroyed();
protected:
KPARTS_NO_EXPORT Part(PartPrivate &dd, QObject *parent);
private:
Q_DISABLE_COPY(Part)
};
} // namespace
#endif