3 files changed, 34 insertions, 1 deletions
diff --git a/resources/qml/dialogs/ImagePackEditorDialog.qml b/resources/qml/dialogs/ImagePackEditorDialog.qml
index 103f19a9..dda2c1ad 100644
--- a/resources/qml/dialogs/ImagePackEditorDialog.qml
+++ b/resources/qml/dialogs/ImagePackEditorDialog.qml
@@ -90,7 +90,7 @@ ApplicationWindow {
folder: StandardPaths.writableLocation(StandardPaths.PicturesLocation)
fileMode: FileDialog.OpenFiles
- nameFilters: [qsTr("Stickers (*.png *.webp)")]
+ nameFilters: [qsTr("Stickers (*.png *.webp *.gif)")]
onAccepted: imagePack.addStickers(files)
}
@@ -265,6 +265,21 @@ ApplicationWindow {
Layout.alignment: Qt.AlignRight
}
+ MatrixText {
+ text: qsTr("Remove from pack")
+ }
+
+ Button {
+ text: qsTr("Remove")
+ onClicked: {
+ let temp = currentImageIndex;
+ currentImageIndex = -1;
+ imagePack.remove(temp);
+ }
+ Layout.alignment: Qt.AlignRight
+ }
+
+
Item {
Layout.columnSpan: 2
Layout.fillHeight: true
diff --git a/src/SingleImagePackModel.cpp b/src/SingleImagePackModel.cpp
index 4eb120d9..6d0f0ad9 100644
--- a/src/SingleImagePackModel.cpp
+++ b/src/SingleImagePackModel.cpp
@@ -310,11 +310,15 @@ SingleImagePackModel::addStickers(QList<QUrl> files)
auto sz = img.size() / 2;
if (sz.width() > 512 || sz.height() > 512) {
sz.scale(512, 512, Qt::AspectRatioMode::KeepAspectRatio);
+ } else if (img.height() < 128 && img.width() < 128) {
+ sz = img.size();
}
info.h = sz.height();
info.w = sz.width();
info.size = bytes.size();
+ info.mimetype =
+ QMimeDatabase().mimeTypeForFile(f.toLocalFile()).name().toStdString();
auto filename = f.fileName().toStdString();
http::client()->upload(
@@ -334,6 +338,19 @@ SingleImagePackModel::addStickers(QList<QUrl> files)
});
}
}
+
+void
+SingleImagePackModel::remove(int idx)
+{
+ if (idx < (int)shortcodes.size() && idx >= 0) {
+ beginRemoveRows(QModelIndex(), idx, idx);
+ auto s = shortcodes.at(idx);
+ shortcodes.erase(shortcodes.begin() + idx);
+ pack.images.erase(s);
+ endRemoveRows();
+ }
+}
+
void
SingleImagePackModel::addImageCb(std::string uri, std::string filename, mtx::common::ImageInfo info)
{
diff --git a/src/SingleImagePackModel.h b/src/SingleImagePackModel.h
index cd38b3b6..60138d36 100644
--- a/src/SingleImagePackModel.h
+++ b/src/SingleImagePackModel.h
@@ -69,6 +69,7 @@ public:
Q_INVOKABLE void save();
Q_INVOKABLE void addStickers(QList<QUrl> files);
+ Q_INVOKABLE void remove(int index);
signals:
void globallyEnabledChanged();
|