kwave  18.07.70
MainWidget.h
Go to the documentation of this file.
1 /***************************************************************************
2  MainWidget.h - main widget of the Kwave TopWidget
3  -------------------
4  begin : 1999
5  copyright : (C) 1999 by Martin Wilz
6  email : Martin Wilz <mwilz@ernie.mi.uni-koeln.de>
7  ***************************************************************************/
8 
9 /***************************************************************************
10  * *
11  * This program is free software; you can redistribute it and/or modify *
12  * it under the terms of the GNU General Public License as published by *
13  * the Free Software Foundation; either version 2 of the License, or *
14  * (at your option) any later version. *
15  * *
16  ***************************************************************************/
17 
18 #ifndef MAIN_WIDGET_H
19 #define MAIN_WIDGET_H
20 
21 #include "config.h"
22 
23 #include <QSize>
24 #include <QString>
25 #include <QTimer>
26 
27 #include <QScrollArea>
28 #include <QVBoxLayout>
29 #include <QWidget>
30 
32 
33 #include "libgui/SignalWidget.h"
34 #include "libgui/Zoomable.h"
35 
36 class QCloseEvent;
37 class QDragEnterEvent;
38 class QDropEvent;
39 class QScrollBar;
40 class QWheelEvent;
41 
42 namespace Kwave
43 {
44 
45  class FileContext;
46  class OverViewWidget;
47  class SignalManager;
48 
49  //**************************************************************************
83  class MainWidget: public QWidget,
84  public CommandHandler,
85  public Zoomable
86  {
87  Q_OBJECT
88  public:
89 
97  MainWidget(QWidget *parent,
98  Kwave::FileContext &context,
99  const QSize &preferred_size);
100 
105  virtual bool isOK();
106 
108  virtual ~MainWidget() Q_DECL_OVERRIDE;
109 
111  virtual double zoom() const Q_DECL_OVERRIDE;
112 
114  virtual int visibleWidth() const Q_DECL_OVERRIDE;
115 
117  virtual sample_index_t visibleSamples() const Q_DECL_OVERRIDE;
118 
120  virtual sample_index_t visibleOffset() { return m_offset; }
121 
123  virtual QSize sizeHint () const Q_DECL_OVERRIDE { return m_preferred_size; }
124 
125  protected:
126 
128  virtual void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE;
129 
134  virtual void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE;
135 
140  virtual void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE;
141 
143  virtual void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE;
144 
146  virtual void closeEvent(QCloseEvent *e) Q_DECL_OVERRIDE;
147 
148  protected slots:
149 
151  void updateViewRange();
152 
153  public slots:
154 
162  virtual int executeCommand(const QString &command) Q_DECL_OVERRIDE;
163 
169  void setOffset(sample_index_t new_offset);
170 
175  virtual void scrollTo(sample_index_t pos) Q_DECL_OVERRIDE;
176 
183  virtual void setZoom(double new_zoom) Q_DECL_OVERRIDE;
184 
188  void zoomSelection();
189 
194  void zoomAll();
195 
201  void zoomNormal();
202 
208  void zoomIn(int pos = -1);
209 
215  void zoomOut(int pos = -1);
216 
217  private slots:
218 
227  void slotTrackInserted(unsigned int index, Kwave::Track *track);
228 
237  void slotTrackDeleted(unsigned int index, Kwave::Track *track);
238 
241 
243  void horizontalScrollBarMoved(int newval);
244 
245  signals:
246 
251  void sigZoomChanged(double zoom);
252 
254  void sigCommand(const QString &command);
255 
258  sample_index_t visible,
259  sample_index_t total);
260 
261  private:
262 
269  sample_index_t ms2samples(double ms);
270 
278  sample_index_t pixels2samples(unsigned int pixels) const;
279 
286  int samples2pixels(sample_index_t samples) const;
287 
293  double fullZoom() const;
294 
302  void fixZoomAndOffset(double zoom, sample_index_t offset);
303 
309  void addLabel(sample_index_t pos, const QString &description);
310 
317  bool labelProperties(Kwave::Label &label);
318 
325  int loadLabels(const QString &filename);
326 
333  int saveLabels(const QString &filename);
334 
335  private:
336 
339 
341  QVBoxLayout m_upper_dock;
342 
344  QVBoxLayout m_lower_dock;
345 
347  QScrollArea m_scroll_area;
348 
351 
354 
357 
363 
365  double m_zoom;
366 
369 
372  };
373 }
374 
375 #endif /* MAIN_WIDGET_H */
376 
377 //***************************************************************************
378 //***************************************************************************
virtual void closeEvent(QCloseEvent *e) Q_DECL_OVERRIDE
Definition: MainWidget.cpp:347
virtual sample_index_t visibleOffset()
Definition: MainWidget.h:120
QTimer m_delayed_update_timer
Definition: MainWidget.h:371
Definition: App.h:33
void sigZoomChanged(double zoom)
void zoomIn(int pos=-1)
Definition: MainWidget.cpp:847
double fullZoom() const
Definition: MainWidget.cpp:661
virtual void dragEnterEvent(QDragEnterEvent *event) Q_DECL_OVERRIDE
Definition: MainWidget.cpp:257
void slotTrackInserted(unsigned int index, Kwave::Track *track)
Definition: MainWidget.cpp:353
int loadLabels(const QString &filename)
Definition: MainWidget.cpp:918
virtual QSize sizeHint() const Q_DECL_OVERRIDE
Definition: MainWidget.h:123
virtual void scrollTo(sample_index_t pos) Q_DECL_OVERRIDE
Definition: MainWidget.cpp:793
quint64 sample_index_t
Definition: Sample.h:28
void zoomOut(int pos=-1)
Definition: MainWidget.cpp:867
sample_index_t ms2samples(double ms)
Definition: MainWidget.cpp:623
virtual int visibleWidth() const Q_DECL_OVERRIDE
Definition: MainWidget.cpp:649
bool labelProperties(Kwave::Label &label)
Kwave::OverViewWidget * m_overview
Definition: MainWidget.h:356
QVBoxLayout m_lower_dock
Definition: MainWidget.h:344
virtual sample_index_t visibleSamples() const Q_DECL_OVERRIDE
Definition: MainWidget.cpp:655
QSize m_preferred_size
Definition: MainWidget.h:368
virtual bool isOK()
Definition: MainWidget.cpp:224
Kwave::SignalWidget m_signal_widget
Definition: MainWidget.h:353
virtual ~MainWidget() Q_DECL_OVERRIDE
Definition: MainWidget.cpp:230
MainWidget(QWidget *parent, Kwave::FileContext &context, const QSize &preferred_size)
Definition: MainWidget.cpp:96
void sigVisibleRangeChanged(sample_index_t offset, sample_index_t visible, sample_index_t total)
virtual void dropEvent(QDropEvent *event) Q_DECL_OVERRIDE
Definition: MainWidget.cpp:269
sample_index_t m_offset
Definition: MainWidget.h:362
int saveLabels(const QString &filename)
Definition: MainWidget.cpp:952
virtual void wheelEvent(QWheelEvent *event) Q_DECL_OVERRIDE
Definition: MainWidget.cpp:300
void setOffset(sample_index_t new_offset)
Definition: MainWidget.cpp:787
Kwave::FileContext & m_context
Definition: MainWidget.h:338
sample_index_t pixels2samples(unsigned int pixels) const
Definition: MainWidget.cpp:634
void sigCommand(const QString &command)
QScrollBar * m_horizontal_scrollbar
Definition: MainWidget.h:350
virtual void setZoom(double new_zoom) Q_DECL_OVERRIDE
Definition: MainWidget.cpp:781
void addLabel(sample_index_t pos, const QString &description)
Definition: MainWidget.cpp:887
virtual double zoom() const Q_DECL_OVERRIDE
Definition: MainWidget.cpp:383
void fixZoomAndOffset(double zoom, sample_index_t offset)
Definition: MainWidget.cpp:707
int samples2pixels(sample_index_t samples) const
Definition: MainWidget.cpp:642
QVBoxLayout m_upper_dock
Definition: MainWidget.h:341
void slotTrackDeleted(unsigned int index, Kwave::Track *track)
Definition: MainWidget.cpp:372
virtual int executeCommand(const QString &command) Q_DECL_OVERRIDE
Definition: MainWidget.cpp:389
void refreshHorizontalScrollBar()
Definition: MainWidget.cpp:520
void horizontalScrollBarMoved(int newval)
Definition: MainWidget.cpp:580
QScrollArea m_scroll_area
Definition: MainWidget.h:347
virtual void resizeEvent(QResizeEvent *event) Q_DECL_OVERRIDE
Definition: MainWidget.cpp:238