Skip to content
Snippets Groups Projects
Verified Commit 58cfc39a authored by Nicolas Werner's avatar Nicolas Werner
Browse files

Fix StickerPicker padding and names of unnamed packs

parent 7fab9a1d
No related branches found
No related tags found
No related merge requests found
......@@ -138,6 +138,8 @@ Menu {
section.delegate: sectionHeading
section.labelPositioning: ViewSection.InlineLabels | ViewSection.CurrentLabelAtStart
spacing: Nheko.paddingSmall
ScrollHelper {
flickable: parent
anchors.fill: parent
......@@ -148,38 +150,40 @@ Menu {
delegate: Row {
required property var row;
spacing: Nheko.paddingSmall
Repeater {
model: row
delegate: AbstractButton {
width: stickerDim
height: stickerDim
hoverEnabled: true
ToolTip.text: ":" + modelData.shortcode + ": - " + modelData.body
ToolTip.visible: hovered
// TODO: maybe add favorites at some point?
onClicked: {
console.debug("Picked " + modelData.descriptor);
stickerPopup.close();
callback(modelData.descriptor);
}
contentItem: Image {
height: stickerDim
width: stickerDim
source: modelData.url.replace("mxc://", "image://MxcImage/") + "?scale"
fillMode: Image.PreserveAspectFit
delegate: AbstractButton {
width: stickerDim
height: stickerDim
hoverEnabled: true
ToolTip.text: ":" + modelData.shortcode + ": - " + modelData.body
ToolTip.visible: hovered
// TODO: maybe add favorites at some point?
onClicked: {
console.debug("Picked " + modelData.descriptor);
stickerPopup.close();
callback(modelData.descriptor);
}
contentItem: Image {
height: stickerDim
width: stickerDim
source: modelData.url.replace("mxc://", "image://MxcImage/") + "?scale"
fillMode: Image.PreserveAspectFit
}
background: Rectangle {
anchors.fill: parent
color: hovered ? Nheko.colors.highlight : 'transparent'
radius: 5
}
}
}
background: Rectangle {
anchors.fill: parent
color: hovered ? Nheko.colors.highlight : 'transparent'
radius: 5
}
}
}
}
ScrollBar.vertical: ScrollBar {
id: emojiScroll
......
......@@ -8,6 +8,7 @@
#include <algorithm>
#include "Cache.h"
#include "Cache_p.h"
Q_DECLARE_METATYPE(StickerImage)
......@@ -104,7 +105,7 @@ GridImagePackModel::data(const QModelIndex &index, int role) const
const auto &pack = packs[rowToPack[index.row()]];
switch (role) {
case Roles::PackName:
return pack.packname;
return nameFromPack(pack);
case Roles::Row: {
std::size_t offset = static_cast<std::size_t>(index.row()) - pack.firstRow;
QList<StickerImage> imgs;
......@@ -135,7 +136,7 @@ GridImagePackModel::data(const QModelIndex &index, int role) const
switch (role) {
case Roles::PackName:
return pack.packname;
return nameFromPack(pack);
case Roles::Row: {
QList<StickerImage> imgs;
for (auto img = firstIndex;
......@@ -162,6 +163,25 @@ GridImagePackModel::data(const QModelIndex &index, int role) const
return {};
}
QString
GridImagePackModel::nameFromPack(const PackDesc &pack) const
{
if (!pack.packname.isEmpty()) {
return pack.packname;
}
if (!pack.state_key.empty()) {
return QString::fromStdString(pack.state_key);
}
if (!pack.room_id.empty()) {
auto info = cache::singleRoomInfo(pack.room_id);
return QString::fromStdString(info.name);
}
return tr("Account Pack");
}
void
GridImagePackModel::setSearchString(QString key)
{
......
......@@ -85,4 +85,6 @@ private:
trie<uint, std::pair<std::uint32_t, std::uint32_t>> trie_;
std::vector<std::pair<std::uint32_t, std::uint32_t>> currentSearchResult;
std::vector<std::size_t> rowToFirstRowEntryFromSearch;
QString nameFromPack(const PackDesc &pack) const;
};
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment