X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;ds=inline;f=pv%2Fview%2Fview.hpp;h=ce89a6bc55abb3c37921311e83d3757c31590f3b;hb=303eec78f3c499cd30fc88b282aa1f336e82a806;hp=0412c697ba1db0aea118760618fb1fd99c97c04d;hpb=f4e57597347e47a4ea58fbdc7b0a22e07f1c0ede;p=pulseview.git
diff --git a/pv/view/view.hpp b/pv/view/view.hpp
index 0412c69..ce89a6b 100644
--- a/pv/view/view.hpp
+++ b/pv/view/view.hpp
@@ -14,15 +14,13 @@
* 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_VIEWS_TRACEVIEW_VIEW_HPP
#define PULSEVIEW_PV_VIEWS_TRACEVIEW_VIEW_HPP
-#include
-
+#include
#include
#include
#include
@@ -31,16 +29,22 @@
#include
#include
-#include
#include
-#include
#include
+#include
#include "cursorpair.hpp"
#include "flag.hpp"
#include "tracetreeitemowner.hpp"
+using std::list;
+using std::unordered_map;
+using std::unordered_set;
+using std::set;
+using std::shared_ptr;
+using std::vector;
+
namespace sigrok {
class ChannelGroup;
}
@@ -49,6 +53,10 @@ namespace pv {
class Session;
+namespace data {
+class Logic;
+}
+
namespace views {
namespace TraceView {
@@ -62,16 +70,18 @@ class Trace;
class Viewport;
class TriggerMarker;
-class CustomAbstractScrollArea : public QAbstractScrollArea {
+class CustomAbstractScrollArea : public QAbstractScrollArea
+{
Q_OBJECT
public:
- CustomAbstractScrollArea(QWidget *parent = 0);
+ CustomAbstractScrollArea(QWidget *parent = nullptr);
void setViewportMargins(int left, int top, int right, int bottom);
bool viewportEvent(QEvent *event);
};
-class View : public ViewBase, public TraceTreeItemOwner {
+class View : public ViewBase, public TraceTreeItemOwner
+{
Q_OBJECT
private:
@@ -85,12 +95,11 @@ private:
static const pv::util::Timestamp MinScale;
static const int MaxScrollValue;
- static const int MaxViewAutoUpdateRate;
static const int ScaleUnits[3];
public:
- explicit View(Session &session, QWidget *parent = 0);
+ explicit View(Session &session, bool is_main_view=false, QWidget *parent = nullptr);
Session& session();
const Session& session() const;
@@ -98,18 +107,18 @@ public:
/**
* Returns the signals contained in this view.
*/
- std::unordered_set< std::shared_ptr > signals() const;
+ unordered_set< shared_ptr > signals() const;
virtual void clear_signals();
- virtual void add_signal(const std::shared_ptr signal);
+ void add_signal(const shared_ptr signal);
#ifdef ENABLE_DECODE
virtual void clear_decode_signals();
- virtual void add_decode_signal(std::shared_ptr signalbase);
+ virtual void add_decode_signal(shared_ptr signalbase);
- virtual void remove_decode_signal(std::shared_ptr signalbase);
+ virtual void remove_decode_signal(shared_ptr signalbase);
#endif
/**
@@ -133,7 +142,7 @@ public:
/**
* Gets a list of time markers.
*/
- std::vector< std::shared_ptr > time_items() const;
+ vector< shared_ptr > time_items() const;
/**
* Returns the view time scale in seconds per pixel.
@@ -195,16 +204,9 @@ public:
*/
void set_scale_offset(double scale, const pv::util::Timestamp& offset);
- std::set< std::shared_ptr >
- get_visible_data() const;
+ set< shared_ptr > get_visible_data() const;
- std::pair get_time_extents() const;
-
- /**
- * Enables or disables sticky scrolling, i.e. the view always shows
- * the most recent samples when capturing data.
- */
- void enable_sticky_scrolling(bool state);
+ pair get_time_extents() const;
/**
* Enables or disables coloured trace backgrounds. If they're not
@@ -212,6 +214,21 @@ public:
*/
void enable_coloured_bg(bool state);
+ /**
+ * Returns true if the trace background should be drawn with a coloured background.
+ */
+ bool coloured_bg() const;
+
+ /**
+ * Enable or disable showing sampling points.
+ */
+ void enable_show_sampling_points(bool state);
+
+ /**
+ * Enable or disable showing the analog minor grid.
+ */
+ void enable_show_analog_minor_grid(bool state);
+
/**
* Returns true if cursors are displayed. false otherwise.
*/
@@ -230,7 +247,7 @@ public:
/**
* Returns a reference to the pair of cursors.
*/
- std::shared_ptr cursors() const;
+ shared_ptr cursors() const;
/**
* Adds a new flag at a specified time.
@@ -240,12 +257,12 @@ public:
/**
* Removes a flag from the list.
*/
- void remove_flag(std::shared_ptr flag);
+ void remove_flag(shared_ptr flag);
/**
* Gets the list of flags.
*/
- std::vector< std::shared_ptr > flags() const;
+ vector< shared_ptr > flags() const;
const QPoint& hover_point() const;
@@ -307,16 +324,16 @@ private:
void update_layout();
TraceTreeItemOwner* find_prevalent_trace_group(
- const std::shared_ptr &group,
- const std::unordered_map,
- std::shared_ptr > &signal_map);
+ const shared_ptr &group,
+ const unordered_map,
+ shared_ptr > &signal_map);
- static std::vector< std::shared_ptr >
+ static vector< shared_ptr >
extract_new_traces_for_channels(
- const std::vector< std::shared_ptr > &channels,
- const std::unordered_map,
- std::shared_ptr > &signal_map,
- std::set< std::shared_ptr > &add_list);
+ const vector< shared_ptr > &channels,
+ const unordered_map,
+ shared_ptr > &signal_map,
+ set< shared_ptr > &add_list);
void determine_time_unit();
@@ -337,9 +354,8 @@ private Q_SLOTS:
void signals_changed();
void capture_state_updated(int state);
- void data_updated();
- void perform_delayed_view_update();
+ virtual void perform_delayed_view_update();
void process_sticky_events();
@@ -386,10 +402,10 @@ private:
Ruler *ruler_;
Header *header_;
- std::unordered_set< std::shared_ptr > signals_;
+ unordered_set< shared_ptr > signals_;
#ifdef ENABLE_DECODE
- std::vector< std::shared_ptr > decode_traces_;
+ vector< shared_ptr > decode_traces_;
#endif
CustomAbstractScrollArea scrollarea_;
@@ -402,8 +418,8 @@ private:
bool updating_scroll_;
bool sticky_scrolling_;
+ bool coloured_bg_;
bool always_zoom_to_fit_;
- QTimer delayed_view_updater_;
pv::util::Timestamp tick_period_;
pv::util::SIPrefix tick_prefix_;
@@ -411,12 +427,12 @@ private:
util::TimeUnit time_unit_;
bool show_cursors_;
- std::shared_ptr cursors_;
+ shared_ptr cursors_;
- std::list< std::shared_ptr > flags_;
+ list< shared_ptr > flags_;
char next_flag_text_;
- std::vector< std::shared_ptr > trigger_markers_;
+ vector< shared_ptr > trigger_markers_;
QPoint hover_point_;
@@ -424,7 +440,12 @@ 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 TraceView