mirror of
https://github.com/qgis/QGIS.git
synced 2025-10-17 00:09:36 -04:00
This allows the item gui providers to access the view associated with an action, e.g. to automatically select something in that view
213 lines
7.3 KiB
Plaintext
213 lines
7.3 KiB
Plaintext
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/gui/qgsdataitemguiprovider.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|
|
|
|
|
|
|
|
|
|
class QgsDataItemGuiContext
|
|
{
|
|
%Docstring(signature="appended")
|
|
|
|
Encapsulates the context in which a :py:class:`QgsDataItem` is shown within the application GUI.
|
|
|
|
.. versionadded:: 3.6
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsdataitemguiprovider.h"
|
|
%End
|
|
public:
|
|
|
|
QgsDataItemGuiContext();
|
|
%Docstring
|
|
Constructor for QgsDataItemGuiContext.
|
|
%End
|
|
|
|
QgsMessageBar *messageBar() const;
|
|
%Docstring
|
|
Returns the associated message bar.
|
|
|
|
This bar can be used to provide non-blocking feedback to users.
|
|
|
|
.. seealso:: :py:func:`setMessageBar`
|
|
%End
|
|
|
|
void setMessageBar( QgsMessageBar *bar );
|
|
%Docstring
|
|
Sets the associated message ``bar``.
|
|
|
|
This bar can be used to provide non-blocking feedback to users.
|
|
|
|
.. seealso:: :py:func:`messageBar`
|
|
%End
|
|
|
|
QgsBrowserTreeView *view() const;
|
|
%Docstring
|
|
Returns the associated view.
|
|
|
|
.. seealso:: :py:func:`setView`
|
|
|
|
.. versionadded:: 3.28
|
|
%End
|
|
|
|
void setView( QgsBrowserTreeView *view );
|
|
%Docstring
|
|
Sets the associated ``view``.
|
|
|
|
.. seealso:: :py:func:`view`
|
|
|
|
.. versionadded:: 3.28
|
|
%End
|
|
|
|
};
|
|
|
|
|
|
class QgsDataItemGuiProvider
|
|
{
|
|
%Docstring(signature="appended")
|
|
|
|
Abstract base class for providers which affect how :py:class:`QgsDataItem` items behave
|
|
within the application GUI.
|
|
|
|
Providers must be registered via :py:class:`QgsDataItemGuiProviderRegistry`.
|
|
|
|
.. versionadded:: 3.6
|
|
%End
|
|
|
|
%TypeHeaderCode
|
|
#include "qgsdataitemguiprovider.h"
|
|
%End
|
|
public:
|
|
|
|
virtual ~QgsDataItemGuiProvider();
|
|
|
|
virtual QString name() = 0;
|
|
%Docstring
|
|
Returns the provider's name.
|
|
%End
|
|
|
|
virtual void populateContextMenu( QgsDataItem *item, QMenu *menu,
|
|
const QList<QgsDataItem *> &selectedItems, QgsDataItemGuiContext context );
|
|
%Docstring
|
|
Called when the given context ``menu`` is being populated for the given ``item``, allowing the provider
|
|
to add its own actions and submenus to the context menu. Additionally,
|
|
providers could potentially alter menus and actions added by other providers
|
|
if desired, or use standard QMenu API to insert their items and submenus into
|
|
the desired location within the context menu.
|
|
|
|
The ``selectedItems`` list contains a list of ALL currently selected items within the browser view.
|
|
Subclasses can utilize this list in order to create actions which operate on multiple items
|
|
at once, e.g. to allow deletion of multiple layers from a database at once.
|
|
|
|
When creating a context menu, this method is called for EVERY QgsDataItemGuiProvider
|
|
within the :py:class:`QgsDataItemGuiProviderRegistry`. It is the :py:class:`QgsDataItemGuiProvider` subclass'
|
|
responsibility to test the ``item`` and ``selectedItems`` for their properties and classes and decide what actions
|
|
(if any) are appropriate to add to the context ``menu``.
|
|
|
|
Care must be taken to correctly parent newly created sub menus and actions to the
|
|
provided ``menu`` to avoid memory leaks.
|
|
|
|
The ``context`` argument gives the wider context under which the context menu is being shown,
|
|
and contains accessors for useful objects like the application message bar.
|
|
|
|
The base class method has no effect.
|
|
%End
|
|
|
|
virtual int precedenceWhenPopulatingMenus() const;
|
|
%Docstring
|
|
Returns the provider's precedence to use when populating context menus via calls to :py:func:`~QgsDataItemGuiProvider.populateContextMenu`.
|
|
|
|
Providers which return larger values will be called AFTER other providers when the menu is being populated.
|
|
This allows them to nicely insert their corresponding menu items in the desired location with respect to
|
|
existing items added by other providers.
|
|
|
|
The default implementation returns 0.
|
|
|
|
.. versionadded:: 3.22
|
|
%End
|
|
|
|
virtual bool rename( QgsDataItem *item, const QString &name, QgsDataItemGuiContext context );
|
|
%Docstring
|
|
Sets a new ``name`` for the item, and returns ``True`` if the item was successfully renamed.
|
|
|
|
Items which implement this method should return the :py:class:`QgsDataItem`.Rename capability.
|
|
|
|
The default implementation does nothing.
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
virtual bool deleteLayer( QgsLayerItem *item, QgsDataItemGuiContext context );
|
|
%Docstring
|
|
Tries to permanently delete map layer representing the given item.
|
|
Returns ``True`` if the layer was successfully deleted.
|
|
|
|
Items which implement this method should return the :py:class:`QgsDataItem`.Delete capability.
|
|
|
|
The default implementation does nothing.
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
virtual bool handleDoubleClick( QgsDataItem *item, QgsDataItemGuiContext context );
|
|
%Docstring
|
|
Called when a user double clicks on an ``item``. Providers should return ``True``
|
|
if the double-click was handled and do not want other providers to handle the
|
|
double-click, and to prevent the default double-click behavior for items.
|
|
%End
|
|
|
|
virtual bool acceptDrop( QgsDataItem *item, QgsDataItemGuiContext context );
|
|
%Docstring
|
|
Providers should return ``True`` if the drops are allowed (:py:func:`~QgsDataItemGuiProvider.handleDrop` should be
|
|
implemented in that case as well).
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
virtual bool handleDrop( QgsDataItem *item, QgsDataItemGuiContext context, const QMimeData *data, Qt::DropAction action );
|
|
%Docstring
|
|
Called when a user drops on an ``item``. Providers should return ``True``
|
|
if the drop was handled and do not want other providers to handle the
|
|
drop, and to prevent the default drop behavior for items.
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
virtual QWidget *createParamWidget( QgsDataItem *item, QgsDataItemGuiContext context ) /Factory/;
|
|
%Docstring
|
|
Creates source widget from data item for :py:class:`QgsBrowserPropertiesWidget`
|
|
By default it returns None.
|
|
Caller takes responsibility of deleting created.
|
|
|
|
The function is replacement of :py:func:`QgsDataItem.paramWidget()`
|
|
|
|
.. versionadded:: 3.10
|
|
%End
|
|
|
|
static void notify( const QString &title, const QString &message, QgsDataItemGuiContext context, Qgis::MessageLevel level = Qgis::MessageLevel::Info, int duration = -1, QWidget *parent = 0 );
|
|
%Docstring
|
|
Notify the user showing a ``message`` with ``title`` and ``level``
|
|
If the context has a message bar the message will be shown in the message bar
|
|
else a message dialog will be used.
|
|
|
|
Since QGIS 3.18, the optional ``duration`` argument can be used to specify the message timeout in seconds. If ``duration``
|
|
is set to 0, then the message must be manually dismissed by the user. A duration of -1 indicates that
|
|
the default timeout for the message ``level`` should be used.
|
|
|
|
.. versionadded:: 3.16
|
|
%End
|
|
};
|
|
|
|
/************************************************************************
|
|
* This file has been generated automatically from *
|
|
* *
|
|
* src/gui/qgsdataitemguiprovider.h *
|
|
* *
|
|
* Do not edit manually ! Edit header and run scripts/sipify.pl again *
|
|
************************************************************************/
|