delegate-rework
Nicolas Werner 1 year ago
parent b0df40496d
commit b29ce3ca44
No known key found for this signature in database
GPG Key ID: C8D75E610773F2D9
  1. 2
      .gitlab-ci.yml
  2. 2
      resources/qml/TimelineBubbleMessageStyle.qml
  3. 19
      src/timeline/EventDelegateChooser.cpp
  4. 1
      src/timeline/TimelineModel.cpp

@ -106,7 +106,6 @@ build-tw:
"pkgconfig"
"spdlog-devel"
"zlib-devel"
"libQt5PlatformHeaders-devel"
"cmake(re2)"
"cmake(Qt6Core)"
"cmake(Qt6DBus)"
@ -117,6 +116,7 @@ build-tw:
"cmake(Qt6Svg)"
"cmake(Qt6Widgets)"
"cmake(Qt6Gui)"
"qt6-qml-private-devel"
"pkgconfig(libcurl)"
"pkgconfig(libevent)"
"pkgconfig(gstreamer-webrtc-1.0)"

@ -279,7 +279,7 @@ TimelineEvent {
}
}
padding: 4
padding: wrapper.isStateEvent ? 0 : 4
background: Rectangle {
color: !wrapper.isStateEvent ? Qt.tint(palette.base, Qt.hsla(messageBubble.userColor.hslHue, 0.5, messageBubble.userColor.hslLightness, 0.2)) : "transparent"
radius: 4

@ -10,6 +10,8 @@
#include <QQmlEngine>
#include <QtGlobal>
#include <ranges>
// privat qt headers to access required properties
#include <QtQml/private/qqmlincubator_p.h>
#include <QtQml/private/qqmlobjectcreator_p.h>
@ -133,7 +135,7 @@ EventDelegateChooser::DelegateIncubator::setInitialState(QObject *obj)
}
}
nhlog::ui()->debug("Querying data for id {}", currentId.toStdString());
// nhlog::ui()->debug("Querying data for id {}", currentId.toStdString());
chooser.room_->multiData(currentId, forReply ? chooser.eventId_ : QString(), roles);
Qt::beginPropertyUpdateGroup();
@ -169,7 +171,7 @@ EventDelegateChooser::DelegateIncubator::setInitialState(QObject *obj)
forReply ? chooser.eventId_ : QString())
.toInt();
if (type != oldType) {
nhlog::ui()->debug("Type changed!");
// nhlog::ui()->debug("Type changed!");
reset(currentId);
return;
}
@ -178,7 +180,8 @@ EventDelegateChooser::DelegateIncubator::setInitialState(QObject *obj)
std::vector<QModelRoleData> rolesToRequest;
if (changedRoles.empty()) {
for (auto role : roleToPropIdx.keys())
for (const auto role :
std::ranges::subrange(roleToPropIdx.keyBegin(), roleToPropIdx.keyEnd()))
rolesToRequest.emplace_back(role);
} else {
for (auto role : changedRoles) {
@ -229,7 +232,7 @@ EventDelegateChooser::DelegateIncubator::reset(QString id)
if (!chooser.room_ || id.isEmpty())
return;
nhlog::ui()->debug("Reset with id {}, reply {}", id.toStdString(), forReply);
// nhlog::ui()->debug("Reset with id {}, reply {}", id.toStdString(), forReply);
this->currentId = id;
@ -242,8 +245,8 @@ EventDelegateChooser::DelegateIncubator::reset(QString id)
for (const auto choice : qAsConst(chooser.choices_)) {
const auto &choiceValue = choice->roleValues();
if (choiceValue.contains(role) || choiceValue.empty()) {
nhlog::ui()->debug(
"Instantiating type: {}, c {}", (int)role, choiceValue.contains(role));
// nhlog::ui()->debug(
// "Instantiating type: {}, c {}", (int)role, choiceValue.contains(role));
if (auto child = qobject_cast<QQuickItem *>(object())) {
child->setParentItem(nullptr);
@ -296,7 +299,7 @@ EventDelegateChooser::updatePolish()
auto mainChild = qobject_cast<QQuickItem *>(eventIncubator.object());
auto replyChild = qobject_cast<QQuickItem *>(replyIncubator.object());
nhlog::ui()->critical("POLISHING {}", (void *)this);
// nhlog::ui()->trace("POLISHING {}", (void *)this);
auto layoutItem = [this](QQuickItem *item, int inset) {
if (item) {
@ -331,8 +334,6 @@ EventDelegateChooser::updatePolish()
item->setHeight(height);
}
nhlog::ui()->debug(
"Made event delegate width: {}, {}", width, item->metaObject()->className());
item->setWidth(width);
item->ensurePolished();
}

@ -2290,7 +2290,6 @@ TimelineModel::markSpecialEffectsDone()
QString
TimelineModel::formatTypingUsers(const QStringList &users, const QColor &bg)
{
nhlog::db()->critical("TYPING USERS!");
QString temp =
tr("%1 and %2 are typing.",
"Multiple users are typing. First argument is a comma separated list of potentially "

Loading…
Cancel
Save