summary refs log tree commit diff
diff options
context:
space:
mode:
authorNicolas Werner <nicolas.werner@hotmail.de>2023-11-01 22:28:58 +0100
committerNicolas Werner <nicolas.werner@hotmail.de>2023-11-01 22:28:58 +0100
commit457f42c9ca93e45f718403086a2b36991b3e0c1a (patch)
treed03d50c9ca7eb23d00074d815519468083747ce9
parentSpaces are now bold (diff)
downloadnheko-457f42c9ca93e45f718403086a2b36991b3e0c1a.tar.xz
Fix pending reply sizing
-rw-r--r--resources/qml/ReplyPopup.qml1
-rw-r--r--resources/qml/delegates/Reply.qml9
-rw-r--r--src/timeline/EventDelegateChooser.cpp2
-rw-r--r--src/timeline/EventDelegateChooser.h17
4 files changed, 23 insertions, 6 deletions
diff --git a/resources/qml/ReplyPopup.qml b/resources/qml/ReplyPopup.qml

index 17ce7ee4..7f2917cc 100644 --- a/resources/qml/ReplyPopup.qml +++ b/resources/qml/ReplyPopup.qml
@@ -33,6 +33,7 @@ Rectangle { userColor: TimelineManager.userColor(modelData.userId, palette.window) visible: room && room.reply maxWidth: parent.width - anchors.leftMargin - anchors.rightMargin + limitHeight: true } ImageButton { id: closeReplyButton diff --git a/resources/qml/delegates/Reply.qml b/resources/qml/delegates/Reply.qml
index ff46347f..f0884a06 100644 --- a/resources/qml/delegates/Reply.qml +++ b/resources/qml/delegates/Reply.qml
@@ -20,9 +20,10 @@ AbstractButton { property string userId: eventId ? room.dataById(eventId, Room.UserId, "") : "" property string userName: eventId ? room.dataById(eventId, Room.UserName, "") : "" - implicitHeight: replyContainer.implicitHeight + implicitHeight: replyContainer.height implicitWidth: replyContainer.implicitWidth required property int maxWidth + property bool limitHeight: false NhekoCursorShape { anchors.fill: parent @@ -48,6 +49,7 @@ AbstractButton { replyTo: "" mainInset: 4 + Nheko.paddingMedium maxWidth: r.maxWidth + limitAsReply: r.limitHeight //height: replyContainer.implicitHeight data: Row { @@ -55,6 +57,10 @@ AbstractButton { spacing: Nheko.paddingSmall + clip: r.limitHeight + + height: Math.min( timelineEvent.main?.height, timelineView.height / 10) + Nheko.paddingSmall + usernameBtn.height + Rectangle { id: colorline @@ -71,6 +77,7 @@ AbstractButton { AbstractButton { id: usernameBtn + contentItem: Label { id: userName_ text: r.userName diff --git a/src/timeline/EventDelegateChooser.cpp b/src/timeline/EventDelegateChooser.cpp
index f299b991..5ce8d63e 100644 --- a/src/timeline/EventDelegateChooser.cpp +++ b/src/timeline/EventDelegateChooser.cpp
@@ -142,7 +142,7 @@ EventDelegateChooser::DelegateIncubator::setInitialState(QObject *obj) auto attached = qobject_cast<EventDelegateChooserAttachedType *>( qmlAttachedPropertiesObject<EventDelegateChooser>(obj)); Q_ASSERT(attached != nullptr); - attached->setIsReply(this->forReply); + attached->setIsReply(this->forReply || chooser.limitAsReply_); for (const auto &role : roles) { const auto &roleName = roleNames[role.role()]; diff --git a/src/timeline/EventDelegateChooser.h b/src/timeline/EventDelegateChooser.h
index df1953ab..139b143a 100644 --- a/src/timeline/EventDelegateChooser.h +++ b/src/timeline/EventDelegateChooser.h
@@ -137,6 +137,7 @@ class EventDelegateChooser : public QQuickItem Q_PROPERTY(int maxWidth READ maxWidth WRITE setMaxWidth NOTIFY maxWidthChanged) Q_PROPERTY(int replyInset READ replyInset WRITE setReplyInset NOTIFY replyInsetChanged) Q_PROPERTY(int mainInset READ mainInset WRITE setMainInset NOTIFY mainInsetChanged) + Q_PROPERTY(bool limitAsReply READ limitAsReply WRITE setLimitAsReply NOTIFY limitAsReplyChanged) public: QQmlListProperty<EventDelegateChoice> choices(); @@ -156,6 +157,12 @@ public: sameWidth_ = width; emit sameWidthChanged(); } + bool limitAsReply() const { return limitAsReply_; } + void setLimitAsReply(bool width) + { + limitAsReply_ = width; + emit limitAsReplyChanged(); + } int maxWidth() const { return maxWidth_; } void setMaxWidth(int width) { @@ -229,6 +236,7 @@ signals: void eventIdChanged(); void replyToChanged(); void sameWidthChanged(); + void limitAsReplyChanged(); void maxWidthChanged(); void replyInsetChanged(); void mainInsetChanged(); @@ -264,10 +272,11 @@ private: TimelineModel *room_{nullptr}; QString eventId_; QString replyId; - bool sameWidth_ = false; - int maxWidth_ = 400; - int replyInset_ = 0; - int mainInset_ = 0; + bool sameWidth_ = false; + bool limitAsReply_ = false; + int maxWidth_ = 400; + int replyInset_ = 0; + int mainInset_ = 0; static void appendChoice(QQmlListProperty<EventDelegateChoice> *, EventDelegateChoice *); static qsizetype choiceCount(QQmlListProperty<EventDelegateChoice> *);