30 #include <QSvgRenderer> 33 #include <QReadWriteLock> 34 #include <QTouchEvent> 41 #include <LibDLS/Job.h> 79 const QList<LibDLS::Data *> &genData()
const {
return genericData; }
80 const QList<LibDLS::Data *> &minData()
const {
return minimumData; }
81 const QList<LibDLS::Data *> &maxData()
const {
return maximumData; }
86 void notifySection(
Section *section);
90 QList<LibDLS::Data *> genericData;
91 QList<LibDLS::Data *> minimumData;
92 QList<LibDLS::Data *> maximumData;
93 QList<LibDLS::Job::Message> messages;
96 static void clearDataList(QList<LibDLS::Data *> &);
113 Graph(QWidget *parent = 0);
116 void setDropModel(QtDls::Model *);
118 virtual QSize sizeHint()
const;
120 bool load(
const QString &, QtDls::Model *);
121 bool save(
const QString &);
128 Q_DECLARE_FLAGS(RenderFlags, RenderFlag)
129 bool renderPage(QPainter &,
const QRect &,
unsigned int = 0,
132 void connectChannels(QtDls::Model *);
141 const LibDLS::Time &getStart()
const {
return scale.getStart(); };
142 const LibDLS::Time &getEnd()
const {
return scale.getEnd(); };
144 const QList<LibDLS::Job::Message> & getMessages()
const {
return messages;};
145 const QString &getMessageFilter()
const {
return messageFilter; }
150 unsigned int dirIndex;
152 QList<ChannelInfo> channelInfo();
154 LibDLS::Time getMeasureTime()
const {
return measureTime; }
173 QMenu *getMenu() {
return &menu; };
176 void logMessage(
const QString &);
191 void setInteraction(Interaction);
192 void setNamedRange(NamedRange);
195 void setShowMessages(
bool);
196 void setMessageFilter(
const QString &);
197 void clearSections();
201 bool event(QEvent *);
202 void mousePressEvent(QMouseEvent *);
203 void mouseReleaseEvent(QMouseEvent *);
204 void mouseMoveEvent(QMouseEvent *);
205 void leaveEvent(QEvent *);
206 void keyPressEvent(QKeyEvent *event);
207 void resizeEvent(QResizeEvent *);
208 void paintEvent(QPaintEvent *);
209 void contextMenuEvent(QContextMenuEvent *);
210 void dragEnterEvent(QDragEnterEvent *);
211 void dragLeaveEvent(QDragLeaveEvent *);
212 void dragMoveEvent(QDragMoveEvent *);
213 void dropEvent(QDropEvent *);
214 void wheelEvent(QWheelEvent *);
220 QList<Section *> sections;
221 QReadWriteLock rwLockSections;
223 QtDls::Model *dropModel;
232 Interaction interaction;
242 QSvgRenderer busySvg;
246 QAction fixMeasuringAction;
247 QAction removeMeasuringAction;
248 QAction prevViewAction;
249 QAction nextViewAction;
250 QAction loadDataAction;
253 QAction measureAction;
254 QAction zoomInAction;
255 QAction zoomOutAction;
256 QAction zoomResetAction;
257 QAction *gotoMenuAction;
258 QAction pickDateAction;
259 QAction gotoTodayAction;
260 QAction gotoYesterdayAction;
261 QAction gotoThisWeekAction;
262 QAction gotoLastWeekAction;
263 QAction gotoThisMonthAction;
264 QAction gotoLastMonthAction;
265 QAction gotoThisYearAction;
266 QAction gotoLastYearAction;
267 QAction sectionPropertiesAction;
268 QAction removeSectionAction;
269 QAction clearSectionsAction;
270 QAction messagesAction;
271 QAction filterAction;
273 QAction exportAction;
275 const int splitterWidth;
279 QScrollBar scrollBar;
280 bool scrollBarNeeded;
288 QList<View>::iterator currentView;
292 int messageAreaHeight;
293 bool mouseOverMsgSplitter;
294 bool movingMsgSplitter;
295 QList<LibDLS::Job::Message> messages;
297 static QColor messageColor[];
298 static QString messagePixmap[];
299 QString messageFilter;
313 void updateDragging(QPoint);
314 void resetDragging();
316 void updateActions();
317 void updateMeasuring();
318 void updateScrollBar();
319 Section *sectionFromPos(
const QPoint &);
320 Section *splitterSectionFromPos(
const QPoint &);
321 static void drawDropRect(QPainter &,
const QRect &);
323 bool loadSections(
const QDomElement &, QtDls::Model *,
const QDir &);
324 void drawMessages(QPainter &,
const QRect &);
325 static void staticLoggingCallback(
const char *,
void *);
326 void loggingCallback(
const char *);
327 void updateTouch(QTouchEvent *);
328 bool touchPanStart(
const QPoint &);
329 void touchPanUpdate(
const QTouchEvent::TouchPoint &);
330 void touchZoomStart(
int,
int);
331 void touchZoomUpdate(
int,
int);
332 int getDataWidth()
const;
333 QSet<QtDls::Channel *> displayedChannels();
334 QList<Section *>::const_iterator lastSectionOnPage(
335 QList<Section *>::const_iterator,
int)
const;
336 int renderCommon(QPainter &,
const QRect &)
const;
337 void renderSections(QPainter &,
const QRect &,
338 QList<Section *>::const_iterator,
339 QList<Section *>::const_iterator,
int, RenderFlags);
342 void interactionSlot();
343 void removeSelectedSection();
344 void sectionProperties();
345 void sliderValueChanged(
int);
348 void workerFinished();
349 void updateSection(
Section *section);
350 void showMessagesChanged();
351 void filterTriggered();
352 void fixMeasuringLine();
353 void removeMeasuringLine();
356 Q_DECLARE_OPERATORS_FOR_FLAGS(Graph::RenderFlags)
Datentyp zur Speicherung der Zeit in Mikrosekunden.