]> sigrok.org Git - pulseview.git/blobdiff - pv/widgets/popup.hpp
Trace: Use scroll bars for popups with too much content
[pulseview.git] / pv / widgets / popup.hpp
index 66f7f06f5d87192a2ea77cbafee44af21cec294c..736313c79d9615ae890a7c585027483b3761f87d 100644 (file)
 #ifndef PULSEVIEW_PV_WIDGETS_POPUP_HPP
 #define PULSEVIEW_PV_WIDGETS_POPUP_HPP
 
+#include <QScrollArea>
 #include <QWidget>
 
 namespace pv {
 namespace widgets {
 
+
+// A regular QScrollArea has a fixed size and provides scroll bars when the
+// content can't be shown in its entirety. However, we want no horizontal
+// scroll bar and want the scroll area to adjust its width to fit the content
+// instead.
+// Inspired by https://stackoverflow.com/questions/21253755/qscrollarea-with-dynamically-changing-contents?answertab=votes#tab-top
+class QWidthAdjustingScrollArea : public QScrollArea
+{
+       Q_OBJECT
+
+public:
+       QWidthAdjustingScrollArea(QWidget* parent = 0);
+       void setWidget(QWidget* w);
+       bool eventFilter(QObject* obj, QEvent* ev);
+};
+
+
 class Popup : public QWidget
 {
        Q_OBJECT