mirror of
https://github.com/Nheko-Reborn/nheko.git
synced 2024-11-22 03:00:46 +03:00
Fix pending reply sizing
This commit is contained in:
parent
bd1cadb6bb
commit
457f42c9ca
4 changed files with 23 additions and 6 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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()];
|
||||
|
|
|
@ -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> *);
|
||||
|
|
Loading…
Reference in a new issue