QGIS API Documentation  3.8.0-Zanzibar (11aff65)
qgsbinarywidgetwrapper.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsbinarywidgetwrapper.h
3  -----------------------
4  Date : November 2018
5  Copyright : (C) 2018 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 
16 #ifndef QGSBINARYWIDGETWRAPPER_H
17 #define QGSBINARYWIDGETWRAPPER_H
18 
19 #include "qgseditorwidgetwrapper.h"
20 #include "qgis_gui.h"
21 
22 class QLabel;
23 class QToolButton;
24 class QgsMessageBar;
25 
27 
36 {
37  Q_OBJECT
38  public:
39 
50  explicit QgsBinaryWidgetWrapper( QgsVectorLayer *layer, int fieldIdx, QWidget *editor = nullptr, QWidget *parent = nullptr, QgsMessageBar *messageBar = nullptr );
51 
52  // QgsEditorWidgetWrapper interface
53  public:
54  QVariant value() const override;
55  void showIndeterminateState() override;
56  void setEnabled( bool enabled ) override;
57 
58  protected:
59  QWidget *createWidget( QWidget *parent ) override;
60  void initWidget( QWidget *editor ) override;
61  bool valid() const override;
62 
63  public slots:
64  void setValue( const QVariant &value ) override;
65 
66  private slots:
67 
68  void saveContent();
69  void setContent();
70  void clear();
71 
72  private:
73  QString defaultPath();
74 
75  QByteArray mValue;
76 
77  QgsMessageBar *mMessageBar = nullptr;
78 
79  QLabel *mLabel = nullptr;
80  QToolButton *mButton = nullptr;
81  QAction *mSetAction = nullptr;
82  QAction *mClearAction = nullptr;
83  QAction *mSaveAction = nullptr;
84 };
85 
86 #endif // QGSBINARYWIDGETWRAPPER_H
Manages an editor widget Widget and wrapper share the same parent.
A bar for displaying non-blocking messages to the user.
Definition: qgsmessagebar.h:45
void setEnabled(bool enabled) override
Is used to enable or disable the edit functionality of the managed widget.
virtual void showIndeterminateState()
Sets the widget to display in an indeterminate "mixed value" state.
virtual bool valid() const =0
Returns true if the widget has been properly initialized.
Widget wrapper for binary (BLOB) fields.
virtual QWidget * createWidget(QWidget *parent)=0
This method should create a new widget with the provided parent.
virtual void initWidget(QWidget *editor)
This method should initialize the editor widget with runtime data.
virtual void setValue(const QVariant &value)=0
Is called, when the value of the widget needs to be changed.
#define SIP_NO_FILE
Definition: qgis_sip.h:23
virtual QVariant value() const =0
Will be used to access the widget's value.
Represents a vector layer which manages a vector based data sets.