VR-Forces 4.7 Class Documentation
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Groups Pages
simulationObjectEditorSystemList.h
Go to the documentation of this file.
1 /*******************************************************************************
2 ** Copyright (c) 2013 MAK Technologies, Inc.
3 ** All rights reserved.
4 *******************************************************************************/
5 
8 
9 #pragma once
10 
16 #include <QtWidgets/QItemDelegate>
17 
18 #include <boost/function.hpp>
19 #include <boost/signal.hpp>
20 
24 class QGridLayout;
25 class QLabel;
26 class QLineEdit;
27 class QPushButton;
28 class QSplitter;
29 class DtUiElementEvent;
30 
31 const int DtSystemDefinitionRole = Qt::UserRole;
32 const int DtSystemFilenameRole = Qt::UserRole + 1;
33 
34 typedef boost::function<bool (const DtComponentSystemDefinition*)> DtSystemFilterFunction;
35 
37 {
38 public:
41  virtual bool isValid(const DtComponentSystemDefinition*);
42 
43  void setTags(const std::vector<std::string>&);
44 
45  virtual DtSystemPaletteFilter* clone() const { return new DtSystemPaletteFilter(*this); };
46 
47  virtual void addFilterFunction(DtSystemFilterFunction f) { myFilterFunctions.push_back(f); };
48 
49 protected:
50  std::vector<DtSystemFilterFunction> myFilterFunctions;
51  std::set<std::string> myTags;
53 };
54 
56 {
57 public:
59  virtual QVariant data(int column, int role) const;
60 
61  void setPaletteParent(DtSimulationObjectEditorSystemList* p) { myPaletteParent = p; };
62  bool isInMasterSMS() const;
63 
64  virtual DtComponentSystemDefinition* proxyModel() const;
65  virtual DtFilename systemFilename() const;
66 
67  virtual bool operator<(const QTreeWidgetItem & other ) const;
68 
69  virtual void setShowWarning(bool);
70  bool showWarning() const
71  {
72  return myShowWarning;
73  }
74 
75  virtual void setWarning(const QString&);
76  const QString& warning() const
77  {
78  return myWarning;
79  }
80 
81 protected:
84  QImage* myWarningIcon;
85  QString myWarning;
87 };
88 
90 {
91  Q_OBJECT
92 
93 public:
94 
97 
100 
102  virtual void init();
103 
104  makVrf::DtTreeWidget* systemsList()
105  {
106  return mySystems;
107  }
108 
110  virtual void setShowIncluded(bool);
111  bool showIncluded() const
112  {
113  return myShowIncluded;
114  }
115 
117  virtual void setShowAllTags(bool);
118  bool showAllTags() const
119  {
120  return myShowAllTags;
121  }
122 
123  virtual bool selectSystem(const DtFilename&, bool forceReselect = true);
124 
125  virtual void addFilterFunction(DtSystemFilterFunction f);
126 
127  virtual void setRightClickEnabled(bool);
128  bool rightClickEnabled() const
129  {
130  return myRightClickEnabled;
131  }
132 
133  virtual QString textFilter() const;
134  virtual void setTextFilter(const QString&);
135  virtual void selectCategory(const QString&);
136  virtual void copyListContentsToClipboard();
137 
138  virtual bool selectedIsInMasterSMS() const;
139 
140  virtual void clear();
141 
142  bool executingFilter() const;
143  virtual QSize sizeHint() const;
144  virtual QSize minimumSizeHint() const;
145  virtual QStringList selectedNames() const;
146  virtual void selectNames(const QStringList&);
147  virtual int selectedItemsCount() const;
148 
149  virtual QString selectedPath() const;
150  virtual void selectPath(const QString& path);
151 
152  virtual bool canRevertExisting() const;
153  virtual void revertExisting();
154 
155  virtual DtComponentSystemDefinition* systemFor(QTreeWidgetItem*) const;
156  virtual void fillInList();
157  virtual std::vector<std::string> selectedCategories() const;
158  virtual QTreeWidgetItem* selectedItem() const;
159 
160  bool hasSelection() const;
161 
163  virtual bool canDeleteExisting(bool any = false) const;
164 
165  virtual std::vector<DtComponentSystemDefinition*> selectedSystems() const;
166  virtual std::vector<DtComponentSystemDefinition*> getRevertableSystems() const;
167 
168  virtual std::vector<QTreeWidgetItem*> itemsFor(const std::vector<DtComponentSystemDefinition*>&) const;
169  virtual QTreeWidgetItem* itemFor(const DtComponentSystemDefinition*) const;
170 
171  boost::signal<void ()> signal_itemSelectionChanged;
172 
173 protected:
174  virtual makVrf::DtTreeWidget* createSystemsList(QWidget* p);
175 
176  virtual DtSystemPaletteFilter* createFilter();
177  virtual DtSystemPaletteItem* createPaletteItem();
178  virtual DtSystemPaletteItem* createPaletteItem(const DtFilename&, DtComponentSystemDefinition*);
179  virtual bool checkSMSValid(QTreeWidgetItem*) const;
180  virtual void slot_systemEntryAdded(DtComponentSystemDefinition*);
181  virtual void slot_systemAboutToBeRemoved(DtComponentSystemDefinition*);
182  virtual void slot_processUIEvent(const DtUiElementEvent& e);
183  virtual void runHealthCheck();
184  virtual void updateHealthResults();
185 
186 public slots:
187  virtual void executeFilter();
188  virtual void executeTextFilter();
189  virtual void selectionChanged();
190  virtual void deleteExisting();
191 
192 protected slots:
193  virtual void resetTextFilter();
194  virtual void itemRightClicked(QTreeWidgetItem*, QMouseEvent*);
195 
196 signals:
197  void healthCheckResults(const QString&);
198 
199 public:
203  QGridLayout* myControlsLayout;
204 
208 
209  QSplitter* mySplitter;
211 
212 protected:
217 
218  typedef std::map<const DtComponentSystemDefinition*, QTreeWidgetItem*> PaletteItems;
221 
224  QPixmap myWarningIcon;
225 };
226 
229 {
230 public:
233 
236 
239 
241  static void registerInstance(makVrv::DtDe&, DtSimulationObjectEditorSystemListCreator*);
242 
244  virtual DtSimulationObjectEditorSystemList* create(QWidget* parent);
245 
246 protected:
248 };
249 
250 
252 {
253  return myExecutingFilter;
254 }
255 
257 {
258  return (mySystems && (mySystems->selectedItems().count() != 0));
259 }
260 
262 {
263 public:
266 
267 protected:
268  virtual void paint(QPainter *painter,
269  const QStyleOptionViewItem &option,
270  const QModelIndex &index) const;
271 };

Document ID: Generated on Fri Apr 26 21:53:14 EDT 2019 from SVN revision 197883
Copyright © 2005-2019 VT MAK. All Rights Reserved (www.mak.com)