swift
viewdbobjects.h
Go to the documentation of this file.
1 // SPDX-FileCopyrightText: Copyright (C) 2015 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #ifndef SWIFT_GUI_VIEWS_VIEWDBOBJECTS_H
7 #define SWIFT_GUI_VIEWS_VIEWDBOBJECTS_H
8 
9 #include <QSet>
10 
11 #include "gui/views/viewbase.h"
12 
13 class QAction;
14 class QIntValidator;
15 class QFrame;
16 class QLineEdit;
17 class QWidget;
18 
19 namespace swift::gui
20 {
21  namespace menus
22  {
23  class CMenuActions;
24  }
25  namespace views
26  {
28  template <class T>
29  class CViewWithDbObjects : public CViewBase<T>
30  {
31  public:
33  using ModelClass = T;
34 
36  using ContainerType = typename T::ContainerType;
37 
39  using ObjectType = typename T::ObjectType;
40 
42  using KeyType = typename T::KeyType;
43 
45  ObjectType latestObject() const;
46 
48  ObjectType oldestObject() const;
49 
51  bool selectDbKey(const KeyType &key);
52 
54  int selectDbKeys(const QSet<KeyType> &keys);
55 
57  QSet<KeyType> selectedDbKeys() const;
58 
60  int removeDbKeys(const QSet<KeyType> &keys);
61 
64 
66  virtual void selectObjects(const ContainerType &selectedObjects) override;
67 
68  protected:
70  explicit CViewWithDbObjects(QWidget *parent = nullptr);
71 
73  virtual void customMenu(swift::gui::menus::CMenuActions &menuActions) override;
74  };
75 
77  template <class T>
79  {
80  public:
82  using ModelClass = T;
83 
85  using ContainerType = typename T::ContainerType;
86 
88  using ObjectType = typename T::ObjectType;
89 
91  using KeyType = typename T::KeyType;
92 
94  virtual void selectObjects(const ContainerType &selectedObjects) override;
95 
96  protected:
98  explicit COrderableViewWithDbObjects(QWidget *parent = nullptr);
99 
101  virtual void customMenu(swift::gui::menus::CMenuActions &menuActions) override;
102 
104  void moveSelectedItems(int order);
105 
107  void orderToTop();
108 
110  void orderToBottom();
111 
113  void orderToLineEdit();
114 
116  void freezeCurrentOrder();
117 
118  private:
119  QList<QAction *> m_menuActions;
120  QLineEdit *m_leOrder = nullptr;
121  QFrame *m_frame = nullptr;
122  QIntValidator *m_validator = nullptr;
123  };
124  } // namespace views
125 } // namespace swift::gui
126 
127 #endif // SWIFT_GUI_VIEWS_VIEWDBOBJECTS_H
Bunch of CMenuAction objects.
Definition: menuaction.h:384
Base class for views with DB objects also orderable (based on swift::misc::IOrderableList )
Definition: viewdbobjects.h:79
virtual void customMenu(swift::gui::menus::CMenuActions &menuActions)
Method creating the menu.
virtual void selectObjects(const ContainerType &selectedObjects)
Select by DB keys.
COrderableViewWithDbObjects(QWidget *parent=nullptr)
Constructor.
void freezeCurrentOrder()
Current order set as order.
void moveSelectedItems(int order)
Move selected items.
Base class for views.
Definition: viewbase.h:648
virtual ContainerType selectedObjects() const
Selected objects.
Definition: viewbase.cpp:240
typename T::ObjectType ObjectType
Model container element type.
Definition: viewbase.h:660
const ContainerType & container() const
Access to container.
Definition: viewbase.cpp:200
typename T::ContainerType ContainerType
Model container type.
Definition: viewbase.h:657
Base class for views with DB objects.
Definition: viewdbobjects.h:30
int removeDbKeys(const QSet< KeyType > &keys)
Remove keys.
typename T::KeyType KeyType
Model DB key type.
Definition: viewdbobjects.h:42
ObjectType oldestObject() const
Get oldets object.
int replaceOrAddObjectsByKey(const ContainerType &container)
Update or insert data (based on DB key)
virtual void selectObjects(const ContainerType &selectedObjects)
Select by DB keys.
bool selectDbKey(const KeyType &key)
Select given DB key.
int selectDbKeys(const QSet< KeyType > &keys)
Select given DB keys.
CViewWithDbObjects(QWidget *parent=nullptr)
Constructor.
ObjectType latestObject() const
Get latest object.
QSet< KeyType > selectedDbKeys() const
Get selected DB keys.
virtual void customMenu(swift::gui::menus::CMenuActions &menuActions)
Method creating the menu.
GUI related classes.