diff --git a/src/timeline/TimelineItem.cpp b/src/timeline/TimelineItem.cpp
index ab4461c4..f50f9e27 100644
--- a/src/timeline/TimelineItem.cpp
+++ b/src/timeline/TimelineItem.cpp
@@ -37,6 +37,32 @@
constexpr int MSG_RIGHT_MARGIN = 7;
constexpr int MSG_PADDING = 20;
+TextLabel::TextLabel(const QString &text, QWidget *parent)
+ : QTextBrowser(parent)
+{
+ setText(text);
+ setOpenExternalLinks(true);
+
+ // Make it look and feel like an ordinary label.
+ setReadOnly(true);
+ setFrameStyle(QFrame::NoFrame);
+ QPalette pal = palette();
+ pal.setColor(QPalette::Base, Qt::transparent);
+ setPalette(pal);
+
+ // Wrap anywhere but prefer words, adjust minimum height on the fly.
+ setLineWrapMode(QTextEdit::WidgetWidth);
+ setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
+ connect(document()->documentLayout(),
+ &QAbstractTextDocumentLayout::documentSizeChanged,
+ this,
+ &TextLabel::adjustHeight);
+ document()->setDocumentMargin(0);
+
+ setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
+ setFixedHeight(0);
+}
+
StatusIndicator::StatusIndicator(QWidget *parent)
: QWidget(parent)
{
diff --git a/src/timeline/TimelineItem.h b/src/timeline/TimelineItem.h
index 76c9da7b..26bcfbae 100644
--- a/src/timeline/TimelineItem.h
+++ b/src/timeline/TimelineItem.h
@@ -93,30 +93,7 @@ class TextLabel : public QTextBrowser
Q_OBJECT
public:
- TextLabel(const QString &text, QWidget *parent = 0)
- : QTextBrowser(parent)
- {
- setText(text);
- setOpenExternalLinks(true);
-
- // Make it look and feel like an ordinary label.
- setReadOnly(true);
- setFrameStyle(QFrame::NoFrame);
- QPalette pal = palette();
- pal.setColor(QPalette::Base, Qt::transparent);
- setPalette(pal);
-
- // Wrap anywhere but prefer words, adjust minimum height on the fly.
- setLineWrapMode(QTextEdit::WidgetWidth);
- setWordWrapMode(QTextOption::WrapAtWordBoundaryOrAnywhere);
- connect(document()->documentLayout(),
- &QAbstractTextDocumentLayout::documentSizeChanged,
- this,
- &TextLabel::adjustHeight);
- document()->setDocumentMargin(0);
-
- setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
- }
+ TextLabel(const QString &text, QWidget *parent = nullptr);
void wheelEvent(QWheelEvent *event) override { event->ignore(); }
diff --git a/src/timeline/TimelineView.cpp b/src/timeline/TimelineView.cpp
index 3d0a1026..e994409a 100644
--- a/src/timeline/TimelineView.cpp
+++ b/src/timeline/TimelineView.cpp
@@ -626,7 +626,7 @@ TimelineView::addTimelineItem(QWidget *item, TimelineDirection direction)
auto separator = new DateSeparator(newDate, this);
if (separator)
- scroll_layout_->addWidget(separator);
+ pushTimelineItem(separator);
}
}
diff --git a/src/timeline/TimelineView.h b/src/timeline/TimelineView.h
index 740fb902..0d18c7fe 100644
--- a/src/timeline/TimelineView.h
+++ b/src/timeline/TimelineView.h
@@ -194,9 +194,14 @@ private:
//! of the timeline.
void pushTimelineItem(QWidget *item)
{
+ setUpdatesEnabled(false);
item->hide();
scroll_layout_->addWidget(item);
- QTimer::singleShot(0, this, [item]() { item->show(); });
+ QTimer::singleShot(0, this, [item, this]() {
+ item->show();
+ item->adjustSize();
+ setUpdatesEnabled(true);
+ });
};
//! Decides whether or not to show or hide the scroll down button.
|