QGIS API Documentation 3.43.0-Master (9e873c7bc91)
Loading...
Searching...
No Matches
qgsdataitemguiprovider.cpp
Go to the documentation of this file.
1/***************************************************************************
2 qgsdataitemguiprovider.cpp
3 --------------------------------------
4 Date : October 2018
5 Copyright : (C) 2018 by Nyall Dawson
6 Email : nyall dot dawson at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
17#include "qgsdataitem.h"
18#include "qgsproviderregistry.h"
19#include "qgsprovidermetadata.h"
21#include "qgsmessagebar.h"
22#include <QMessageBox>
23//
24// QgsDataItemGuiContext
25//
26
28{
29 return mMessageBar;
30}
31
33{
34 mMessageBar = messageBar;
35}
36
38{
39 mCanvas = canvas;
40}
41
43{
44 return mCanvas;
45}
46
48{
49 return mView;
50}
51
53{
54 mView = view;
55}
56
57//
58// QgsDataItemGuiProvider
59//
60
61void QgsDataItemGuiProvider::populateContextMenu( QgsDataItem *, QMenu *, const QList<QgsDataItem *> &, QgsDataItemGuiContext )
62{
63}
64
69
71{
72 return false;
73}
74
79
84
89
90bool QgsDataItemGuiProvider::handleDrop( QgsDataItem *, QgsDataItemGuiContext, const QMimeData *, Qt::DropAction )
91{
92 return false;
93}
94
99
100void QgsDataItemGuiProvider::notify( const QString &title, const QString &message, QgsDataItemGuiContext context, Qgis::MessageLevel level, int duration, QWidget *parent )
101{
102 if ( QgsMessageBar *bar = context.messageBar() )
103 {
104 bar->pushMessage( title, message, level, duration );
105 }
106 else
107 {
108 switch ( level )
109 {
112 {
113 QMessageBox::information( parent, title, message );
114 break;
115 }
117 {
118 QMessageBox::warning( parent, title, message );
119 break;
120 }
122 {
123 QMessageBox::critical( parent, title, message );
124 break;
125 }
127 {
128 // There is no "success" in message box, let's use information instead
129 QMessageBox::information( parent, title, message );
130 break;
131 }
132 }
133 }
134}
MessageLevel
Level for messages This will be used both for message log and message bar in application.
Definition qgis.h:154
@ NoLevel
No level.
Definition qgis.h:159
@ Warning
Warning message.
Definition qgis.h:156
@ Critical
Critical/error message.
Definition qgis.h:157
@ Info
Information message.
Definition qgis.h:155
@ Success
Used for reporting a successful operation.
Definition qgis.h:158
The QgsBrowserTreeView class extends QTreeView with save/restore tree state functionality.
Encapsulates the context in which a QgsDataItem is shown within the application GUI.
void setView(QgsBrowserTreeView *view)
Sets the associated view.
QgsMessageBar * messageBar() const
Returns the associated message bar.
QgsBrowserTreeView * view() const
Returns the associated view.
void setMapCanvas(QgsMapCanvas *canvas)
Sets the map canvas associated with the data item.
void setMessageBar(QgsMessageBar *bar)
Sets the associated message bar.
QgsMapCanvas * mapCanvas() const
Returns the map canvas associated with the item.
virtual void populateContextMenu(QgsDataItem *item, QMenu *menu, const QList< QgsDataItem * > &selectedItems, QgsDataItemGuiContext context)
Called when the given context menu is being populated for the given item, allowing the provider to ad...
virtual bool handleDrop(QgsDataItem *item, QgsDataItemGuiContext context, const QMimeData *data, Qt::DropAction action)
Called when a user drops on an item.
static void notify(const QString &title, const QString &message, QgsDataItemGuiContext context, Qgis::MessageLevel level=Qgis::MessageLevel::Info, int duration=-1, QWidget *parent=nullptr)
Notify the user showing a message with title and level If the context has a message bar the message w...
virtual int precedenceWhenPopulatingMenus() const
Returns the provider's precedence to use when populating context menus via calls to populateContextMe...
virtual bool acceptDrop(QgsDataItem *item, QgsDataItemGuiContext context)
Providers should return true if the drops are allowed (handleDrop() should be implemented in that cas...
virtual bool handleDoubleClick(QgsDataItem *item, QgsDataItemGuiContext context)
Called when a user double clicks on an item.
virtual QWidget * createParamWidget(QgsDataItem *item, QgsDataItemGuiContext context)
Creates source widget from data item for QgsBrowserPropertiesWidget By default it returns nullptr.
virtual bool rename(QgsDataItem *item, const QString &name, QgsDataItemGuiContext context)
Sets a new name for the item, and returns true if the item was successfully renamed.
virtual bool deleteLayer(QgsLayerItem *item, QgsDataItemGuiContext context)
Tries to permanently delete map layer representing the given item.
Base class for all items in the model.
Definition qgsdataitem.h:46
Item that represents a layer that can be opened with one of the providers.
Map canvas is a class for displaying all GIS data types on a canvas.
A bar for displaying non-blocking messages to the user.