BPS C++ API  2.24.4
bpstablefield.h
Go to the documentation of this file.
1 
4 #ifndef BPSTABLEFIELD_H
5 #define BPSTABLEFIELD_H
6 
7 #include "bpsgui_global.h"
8 #include <QList>
9 #include <QVariant>
10 
11 class BpsTable;
12 class BpsTableItem;
13 class QWidget;
14 class QPainter;
15 class QAbstractItemModel;
17 
24 {
25  Q_OBJECT
27  friend class BpsTable;
28 
29 public:
38  BpsTableField(const QString& aHeader, const QString& aColumn);
39 
43  BpsTableField(const BpsTableField& aOther);
44 
46  virtual ~BpsTableField();
48 
53  virtual BpsTableField* clone() const = 0;
54 
58  QString column() const;
59 
64 
68  QString header() const;
69 
73  bool isEditable() const;
74 
79  void setIsEditable(bool aIsEditable);
80 
84  int sortRole() const;
85 
90  void setSortRole(int aRole);
91 
101  int decimalPlaces() const;
102 
108  void setDecimalPlaces(int aDecPlaces);
109 
114 
119  void setAlignment(Qt::Alignment aAlignment);
120 
125 
136  void setDisplayedColumn(const QString& aColumn);
137 
141  virtual QVariant defaultValue() const;
142 
151  virtual QVariant display(BpsTableItem* aItem) const;
152 
158  virtual QVariant decoration(BpsTableItem* aItem) const;
159 
165  virtual QWidget* createEditor(QWidget* aParent = nullptr) = 0;
166 
172  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue) = 0;
173 
179  virtual QVariant editorData(QWidget* aEditor) const = 0;
180 
186  virtual QVariant exp(const QVariant& aValue);
187 
193  virtual QVariant imp(const QVariant& aValue);
194 
195 signals:
201  void editorDataChanged(const QString& aColumn, const QVariant& aValue);
202 
203 protected:
207  BpsTable* table() const;
208 
218  QVariantMap getSettings(const QStringList& aNames) const;
219 
221 private:
222  void setTable(BpsTable* aTable);
224 }; // BpsTableField
225 
226 
231 {
232  Q_OBJECT
234 
235 public:
243  BpsSpecialField(const QString& aHeader, const QString& aColumn);
244 
246  BpsSpecialField(const BpsSpecialField& aOther);
247  virtual ~BpsSpecialField();
248  virtual BpsSpecialField* clone() const;
249  virtual QWidget* createEditor(QWidget* aParent = nullptr);
250  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
251  virtual QVariant editorData(QWidget* aEditor) const;
253 }; // BpsSpecialField
254 
255 
260 {
261  Q_OBJECT
263 
264 public:
277  const QString& aHeader, const QString& aColumn,
278  const QString& aUnchecked, const QString& aUncheckedDisplay,
279  const QString& aChecked, const QString& aCheckedDisplay);
280 
282  BpsCheckBoxField(const BpsCheckBoxField& aOther);
283  virtual ~BpsCheckBoxField();
284  virtual BpsCheckBoxField* clone() const;
285  virtual QVariant defaultValue() const;
286  virtual QVariant display(BpsTableItem* aItem) const;
287  virtual QWidget* createEditor(QWidget* aParent = nullptr);
288  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
289  virtual QVariant editorData(QWidget* aEditor) const;
291 }; // BpsCheckBoxField
292 
293 
298 {
299  Q_OBJECT
301 
302 public:
311  BpsLineEditField(const QString& aHeader, const QString& aColumn, QVariant::Type aType = QVariant::String);
312 
314  BpsLineEditField(const BpsLineEditField& aOther);
315  virtual ~BpsLineEditField();
316  virtual BpsLineEditField* clone() const;
317  virtual QVariant defaultValue() const;
318  virtual QWidget* createEditor(QWidget* aParent = nullptr);
319  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
320  virtual QVariant editorData(QWidget* aEditor) const;
322 }; // BpsLineEditField
323 
324 
330 {
331  Q_OBJECT
333 
334 public:
343  BpsPincodeField(const QString& aHeader, const QString& aColumn, QVariant::Type aType = QVariant::String);
344 
346  BpsPincodeField(const BpsPincodeField& aOther);
347  virtual ~BpsPincodeField();
348  virtual BpsPincodeField* clone() const;
349  virtual QVariant defaultValue() const;
350  virtual QVariant display(BpsTableItem* aItem) const;
351  virtual QWidget* createEditor(QWidget* aParent = nullptr);
352  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
353  virtual QVariant editorData(QWidget* aEditor) const;
355 }; // BpsPincodeField
356 
357 
362 {
363  Q_OBJECT
365 
366 public:
374  BpsTextEditField(const QString& aHeader, const QString& aColumn);
375 
377  BpsTextEditField(const BpsTextEditField& aOther);
378  virtual ~BpsTextEditField();
379  virtual BpsTextEditField* clone() const;
380  virtual QVariant defaultValue() const;
381  virtual QWidget* createEditor(QWidget* aParent = nullptr);
382  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
383  virtual QVariant editorData(QWidget* aEditor) const;
385 }; // BpsTextEditField
386 
387 
392 {
393  Q_OBJECT
395 
396 public:
404  BpsDateTimeField(const QString& aHeader, const QString& aColumn);
405 
407  BpsDateTimeField(const BpsDateTimeField& aOther);
408  virtual ~BpsDateTimeField();
409  virtual BpsDateTimeField* clone() const;
410  virtual QVariant defaultValue() const;
411  virtual QVariant display(BpsTableItem* aItem) const;
412  virtual QWidget* createEditor(QWidget* aParent = nullptr);
413  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
414  virtual QVariant editorData(QWidget* aEditor) const;
416 }; // BpsDateTimeField
417 
418 
424 {
425  Q_OBJECT
427 
428 public:
436  BpsNvlDateTimeField(const QString& aHeader, const QString& aColumn);
437 
440  virtual ~BpsNvlDateTimeField();
441  virtual BpsNvlDateTimeField* clone() const;
442  virtual QVariant defaultValue() const;
443  virtual QVariant display(BpsTableItem* aItem) const;
444  virtual QWidget* createEditor(QWidget* aParent = nullptr);
445  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
446  virtual QVariant editorData(QWidget* aEditor) const;
448 }; // BpsNvlDateTimeField
449 
450 
455 {
456  Q_OBJECT
458 
459 public:
467  BpsSpinBoxField(const QString& aHeader, const QString& aColumn);
468 
470  BpsSpinBoxField(const BpsSpinBoxField& aOther);
471  virtual ~BpsSpinBoxField();
472  virtual BpsSpinBoxField* clone() const;
473  virtual QVariant defaultValue() const;
474  virtual QWidget* createEditor(QWidget* aParent = nullptr);
475  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
476  virtual QVariant editorData(QWidget* aEditor) const;
478 }; // BpsSpinBoxField
479 
480 
485 
486 
491 
492 
497 {
498  Q_OBJECT
500 
501 public:
511  const QString& aHeader,
512  const QString& aColumn,
513  const BpsComboBoxOptions& aOptions);
514 
516  BpsComboBoxField(const BpsComboBoxField& aOther);
517  virtual ~BpsComboBoxField();
518  virtual BpsComboBoxField* clone() const;
519  virtual QVariant defaultValue() const;
520  virtual QVariant display(BpsTableItem* aItem) const;
521  virtual QWidget* createEditor(QWidget* aParent = nullptr);
522  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
523  virtual QVariant editorData(QWidget* aEditor) const;
525 }; // BpsComboBoxField
526 
527 
534 {
535  Q_OBJECT
537 
538 public:
546  BpsColorComboBoxField(const QString& aHeader, const QString& aColumn);
547 
550  virtual ~BpsColorComboBoxField();
551  virtual BpsColorComboBoxField* clone() const;
552  virtual QVariant defaultValue() const;
553  virtual QVariant decoration(BpsTableItem* aItem) const;
554  virtual QWidget* createEditor(QWidget* aParent = nullptr);
555  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
556  virtual QVariant editorData(QWidget* aEditor) const;
558 }; // BpsColorComboBoxField
559 
560 
565 {
566  Q_OBJECT
568 
569 public:
577  BpsBarcodeComboBoxField(const QString& aHeader, const QString& aColumn);
578 
581  virtual ~BpsBarcodeComboBoxField();
582  virtual QVariant defaultValue() const;
583  virtual BpsBarcodeComboBoxField* clone() const;
584  virtual QVariant display(BpsTableItem* aItem) const;
585  virtual QWidget* createEditor(QWidget* aParent = nullptr);
586  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
587  virtual QVariant editorData(QWidget* aEditor) const;
589 }; // BpsBarcodeComboBoxField
590 
591 
606 {
607  Q_OBJECT
609 
610 public:
622  const QString& aHeader,
623  const QString& aColumn,
624  const QString& aRelTable,
625  const QString& aRelColumn);
626 
630  QString relTable() const;
631 
636 
639  virtual ~BpsRelationInputField();
640  virtual BpsRelationInputField* clone() const;
641  virtual QVariant display(BpsTableItem* aItem) const;
642  virtual QWidget* createEditor(QWidget* aParent = nullptr);
643  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
644  virtual QVariant editorData(QWidget* aEditor) const;
645  virtual QVariant exp(const QVariant& aValue);
646  virtual QVariant imp(const QVariant& aValue);
648 }; // BpsRelationInputField
649 
650 
660 {
661  Q_OBJECT
663 
664 public:
672  BpsLabelerInputField(const QString& aHeader, const QString& aColumn);
673 
676  virtual ~BpsLabelerInputField();
677  virtual BpsLabelerInputField* clone() const;
678  virtual QVariant display(BpsTableItem* aItem) const;
679  virtual QWidget* createEditor(QWidget* aParent = nullptr);
680  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
681  virtual QVariant editorData(QWidget* aEditor) const;
682  virtual QVariant exp(const QVariant& aValue);
683  virtual QVariant imp(const QVariant& aValue);
685 }; // BpsLabelerInputField
686 
687 
692 {
693  Q_OBJECT
695 
696 public:
704  BpsCronEditField(const QString& aHeader, const QString& aColumn);
705 
707  BpsCronEditField(const BpsCronEditField& aOther);
708  virtual ~BpsCronEditField();
709  virtual QVariant defaultValue() const;
710  virtual BpsCronEditField* clone() const;
711  virtual QWidget* createEditor(QWidget* aParent = nullptr);
712  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
713  virtual QVariant editorData(QWidget* aEditor) const;
715 }; // BpsCronEditField
716 
721 {
722  Q_OBJECT
724 
725 public:
733  BpsStockLocationInputField(const QString& aHeader, const QString& aColumn);
734 
737  virtual ~BpsStockLocationInputField();
738  virtual BpsStockLocationInputField* clone() const;
739  virtual QVariant display(BpsTableItem* aItem) const;
740  virtual QWidget* createEditor(QWidget* aParent = nullptr);
741  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
742  virtual QVariant editorData(QWidget* aEditor) const;
743  virtual QVariant exp(const QVariant& aValue);
744  virtual QVariant imp(const QVariant& aValue);
746 }; // BpsStockLocationInputField
747 
748 
753 {
754  Q_OBJECT
756 
757 public:
765  BpsArticleInputField(const QString& aHeader, const QString& aColumn);
766 
769  virtual ~BpsArticleInputField();
770  virtual BpsArticleInputField* clone() const;
771  virtual QVariant display(BpsTableItem* aItem) const;
772  virtual QWidget* createEditor(QWidget* aParent = nullptr);
773  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
774  virtual QVariant editorData(QWidget* aEditor) const;
775  virtual QVariant exp(const QVariant& aValue);
776  virtual QVariant imp(const QVariant& aValue);
778 }; // BpsArticleInputField
779 
780 
785 {
786  Q_OBJECT
788 
789 public:
797  BpsPartnerInputField(const QString& aHeader, const QString& aColumn);
798 
801  virtual ~BpsPartnerInputField();
802  virtual BpsPartnerInputField* clone() const;
803  virtual QVariant display(BpsTableItem* aItem) const;
804  virtual QWidget* createEditor(QWidget* aParent = nullptr);
805  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
806  virtual QVariant editorData(QWidget* aEditor) const;
807  virtual QVariant exp(const QVariant& aValue);
808  virtual QVariant imp(const QVariant& aValue);
810 }; // BpsPartnerInputField
811 
812 
821 {
822  Q_OBJECT
824 
825 public:
834  BpsImageField(const QString& aHeader, const QString& aColumn, const QSize& aThumbSize);
835 
837  BpsImageField(const BpsImageField& aOther);
838  virtual ~BpsImageField();
839  virtual BpsImageField* clone() const;
840  virtual QVariant display(BpsTableItem* aItem) const;
841  virtual QVariant decoration(BpsTableItem* aItem) const;
842  virtual QWidget* createEditor(QWidget* aParent = nullptr);
843  virtual void setEditorData(QWidget* aEditor, const QVariant& aValue);
844  virtual QVariant editorData(QWidget* aEditor) const;
846 }; // BpsImageField
847 
848 
849 #endif // BPSTABLEFIELD_H
#define BPS_PRIVATE(Class)
Declare pointer to private object in a public class.
Definition: bpsglobals.h:102
Public include file for BPS GUI library macros.
#define BPSGUI_EXPORT
Declare class an import from the shared library.
Definition: bpsgui_global.h:22
QPair< QVariant, QString > BpsComboBoxOption
Single option used with BpsComboBoxField.
Definition: bpstablefield.h:484
QList< BpsComboBoxOption > BpsComboBoxOptions
List of options to be used with BpsComboBoxField.
Definition: bpstablefield.h:490
Table field to edit or select an article.
Definition: bpstablefield.h:753
BpsArticleInputField(const QString &aHeader, const QString &aColumn)
Table field to be handled by a bar code type combo box.
Definition: bpstablefield.h:565
BpsBarcodeComboBoxField(const QString &aHeader, const QString &aColumn)
Table field to be handled by a dual-state check box.
Definition: bpstablefield.h:260
BpsCheckBoxField(const QString &aHeader, const QString &aColumn, const QString &aUnchecked, const QString &aUncheckedDisplay, const QString &aChecked, const QString &aCheckedDisplay)
Table field to be handled by a standard color combo box.
Definition: bpstablefield.h:534
BpsColorComboBoxField(const QString &aHeader, const QString &aColumn)
Table field to be handled by a combo box with fixed list of dropdown values.
Definition: bpstablefield.h:497
BpsComboBoxField(const QString &aHeader, const QString &aColumn, const BpsComboBoxOptions &aOptions)
Table field to be handled as a CRON schedule definition.
Definition: bpstablefield.h:692
BpsCronEditField(const QString &aHeader, const QString &aColumn)
Table field to be handled by a date/time edit, with support for BPS validator settings.
Definition: bpstablefield.h:392
BpsDateTimeField(const QString &aHeader, const QString &aColumn)
Table field for images, where the image is stores in a byte array as JPG or PNG file.
Definition: bpstablefield.h:821
BpsImageField(const QString &aHeader, const QString &aColumn, const QSize &aThumbSize)
Table field as combo box filled with options referring to keys of t_labelers.
Definition: bpstablefield.h:660
BpsLabelerInputField(const QString &aHeader, const QString &aColumn)
Table field to be handled by a line edit, with support for BPS masks.
Definition: bpstablefield.h:298
BpsLineEditField(const QString &aHeader, const QString &aColumn, QVariant::Type aType=QVariant::String)
Table field for date or date/time values handled by a line edit.
Definition: bpstablefield.h:424
BpsNvlDateTimeField(const QString &aHeader, const QString &aColumn)
Table field to edit or select a partner.
Definition: bpstablefield.h:785
BpsPartnerInputField(const QString &aHeader, const QString &aColumn)
Table field to be handled by a line edit, with support for BPS masks.
Definition: bpstablefield.h:330
BpsPincodeField(const QString &aHeader, const QString &aColumn, QVariant::Type aType=QVariant::String)
Table field as combo box filled with options from a relation table.
Definition: bpstablefield.h:606
BpsRelationInputField(const QString &aHeader, const QString &aColumn, const QString &aRelTable, const QString &aRelColumn)
QString relColumn() const
QString relTable() const
Table field to be handled by a external editor.
Definition: bpstablefield.h:231
BpsSpecialField(const QString &aHeader, const QString &aColumn)
Table field to be handled by a spin box, with support for min/max settings.
Definition: bpstablefield.h:455
BpsSpinBoxField(const QString &aHeader, const QString &aColumn)
Table field to edit or select a stock location.
Definition: bpstablefield.h:721
BpsStockLocationInputField(const QString &aHeader, const QString &aColumn)
Abstract base class for table fields.
Definition: bpstablefield.h:24
BpsTableField(const QString &aHeader, const QString &aColumn)
Construct a regular field which is displayed in the view attached to the model.
void setIsEditable(bool aIsEditable)
Enable / disable editing of a field.
QString header() const
BpsTable * table() const
virtual QWidget * createEditor(QWidget *aParent=nullptr)=0
Create an editor for the delegate.
void setDecimalPlaces(int aDecPlaces)
Set number of decimal places to display for numeric values.
void setAlignment(Qt::Alignment aAlignment)
Set the display alignment of the field.
virtual QVariant imp(const QVariant &aValue)
Import a value, for example from paste.
QString displayedColumn() const
BpsTableField(const BpsTableField &aOther)
Copy constructor.
virtual BpsTableField * clone() const =0
Clone the object, e.g.
virtual void setEditorData(QWidget *aEditor, const QVariant &aValue)=0
Set editor data from model data.
bool isEditable() const
QVariantMap getSettings(const QStringList &aNames) const
Get validator settings for a number of fields.
virtual QVariant decoration(BpsTableItem *aItem) const
void editorDataChanged(const QString &aColumn, const QVariant &aValue)
Signal emitted whenever an editor created by the field object changes the edited data.
virtual QVariant editorData(QWidget *aEditor) const =0
Get the current editor data.
int sortRole() const
void setDisplayedColumn(const QString &aColumn)
Set an alternate column to fetch for display.
QString column() const
virtual QVariant exp(const QVariant &aValue)
Export a value, for example for cut/copy.
Qt::Alignment alignment() const
QString wholeColumn() const
virtual QVariant defaultValue() const
int decimalPlaces() const
Maximum number of decimal places to show for numeric values.
void setSortRole(int aRole)
Set a custom sort role for this field.
virtual QVariant display(BpsTableItem *aItem) const
Get the display data for the item.
Database table descriptor.
Definition: bpstable.h:19
Items used by BpsTableModel.
Definition: bpstableitem.h:18
Table field to be handled by a text edit.
Definition: bpstablefield.h:362
BpsTextEditField(const QString &aHeader, const QString &aColumn)
typedef Alignment