X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=inline;f=pv%2Fview%2Fview.hpp;h=5981f57a036c92a986710e4cf1520eec649ffe8c;hb=9eae6de4dd0a3c628026eca6ca55cef8b70bfa86;hp=cb1035c4c93ea202c240e6e42128565f54df419b;hpb=3a21afa6a5dfc06c17f127960bb0038fd322f213;p=pulseview.git
diff --git a/pv/view/view.hpp b/pv/view/view.hpp
index cb1035c..5981f57 100644
--- a/pv/view/view.hpp
+++ b/pv/view/view.hpp
@@ -14,12 +14,11 @@
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ * along with this program; if not, see .
*/
-#ifndef PULSEVIEW_PV_VIEW_VIEW_HPP
-#define PULSEVIEW_PV_VIEW_VIEW_HPP
+#ifndef PULSEVIEW_PV_VIEWS_TRACEVIEW_VIEW_HPP
+#define PULSEVIEW_PV_VIEWS_TRACEVIEW_VIEW_HPP
#include
@@ -34,6 +33,7 @@
#include
#include
+#include
#include
#include "cursorpair.hpp"
@@ -48,7 +48,9 @@ namespace pv {
class Session;
-namespace view {
+namespace views {
+
+namespace TraceView {
class CursorHeader;
class DecodeTrace;
@@ -59,7 +61,16 @@ class Trace;
class Viewport;
class TriggerMarker;
-class View : public QAbstractScrollArea, public TraceTreeItemOwner {
+class CustomAbstractScrollArea : public QAbstractScrollArea {
+ Q_OBJECT
+
+public:
+ CustomAbstractScrollArea(QWidget *parent = 0);
+ void setViewportMargins(int left, int top, int right, int bottom);
+ bool viewportEvent(QEvent *event);
+};
+
+class View : public ViewBase, public TraceTreeItemOwner {
Q_OBJECT
private:
@@ -86,37 +97,37 @@ public:
/**
* Returns the signals contained in this view.
*/
- std::unordered_set< std::shared_ptr > signals() const;
+ std::unordered_set< std::shared_ptr > signals() const;
- void clear_signals();
+ virtual void clear_signals();
- void add_signal(const std::shared_ptr signal);
+ virtual void add_signal(const std::shared_ptr signal);
#ifdef ENABLE_DECODE
- void clear_decode_traces();
+ virtual void clear_decode_signals();
- void add_decode_trace(std::shared_ptr signalbase);
+ virtual void add_decode_signal(std::shared_ptr signalbase);
- void remove_decode_trace(std::shared_ptr signalbase);
+ virtual void remove_decode_signal(std::shared_ptr signalbase);
#endif
/**
* Returns the view of the owner.
*/
- virtual pv::view::View* view();
+ virtual View* view();
/**
* Returns the view of the owner.
*/
- virtual const pv::view::View* view() const;
+ virtual const View* view() const;
Viewport* viewport();
const Viewport* viewport() const;
- void save_settings(QSettings &settings) const;
+ virtual void save_settings(QSettings &settings) const;
- void restore_settings(QSettings &settings);
+ virtual void restore_settings(QSettings &settings);
/**
* Gets a list of time markers.
@@ -194,12 +205,27 @@ public:
*/
void enable_sticky_scrolling(bool state);
+ /**
+ * Toggle sticky scrolling.
+ */
+ void toggle_sticky_scrolling(void);
+
+ /**
+ * Get current coloured_bg state. Returns true if coloured backgrounds are enabled.
+ */
+ bool get_coloured_bg(void);
+
/**
* Enables or disables coloured trace backgrounds. If they're not
* coloured then they will use alternating colors.
*/
void enable_coloured_bg(bool state);
+ /**
+ * Toggle coloured backgrounds.
+ */
+ void toggle_coloured_bg(void);
+
/**
* Returns true if cursors are displayed. false otherwise.
*/
@@ -310,8 +336,6 @@ private:
bool eventFilter(QObject *object, QEvent *event);
- bool viewportEvent(QEvent *event);
-
void resizeEvent(QResizeEvent *event);
public:
@@ -372,18 +396,18 @@ private Q_SLOTS:
void set_time_unit(pv::util::TimeUnit time_unit);
private:
- Session &session_;
-
Viewport *viewport_;
Ruler *ruler_;
Header *header_;
- std::unordered_set< std::shared_ptr > signals_;
+ std::unordered_set< std::shared_ptr > signals_;
#ifdef ENABLE_DECODE
- std::vector< std::shared_ptr > decode_traces_;
+ std::vector< std::shared_ptr > decode_traces_;
#endif
+ CustomAbstractScrollArea scrollarea_;
+
/// The view time scale in seconds per pixel.
double scale_;
@@ -392,6 +416,7 @@ private:
bool updating_scroll_;
bool sticky_scrolling_;
+ bool coloured_bg_;
bool always_zoom_to_fit_;
QTimer delayed_view_updater_;
@@ -414,10 +439,16 @@ private:
QTimer lazy_event_handler_;
// This is true when the defaults couldn't be set due to insufficient info
- bool scroll_needs_defaults;
+ bool scroll_needs_defaults_;
+
+ // A nonzero value indicates the v offset to restore. See View::resizeEvent()
+ int saved_v_offset_;
+
+ bool size_finalized_;
};
-} // namespace view
+} // namespace TraceView
+} // namespace views
} // namespace pv
-#endif // PULSEVIEW_PV_VIEW_VIEW_HPP
+#endif // PULSEVIEW_PV_VIEWS_TRACEVIEW_VIEW_HPP