From a1bb75ee359f65763ef3efcfd35d6848e99f8310 Mon Sep 17 00:00:00 2001 From: wingsummer <1326224942@qq.com> Date: Sun, 13 Oct 2024 23:41:14 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=92=AD=E6=94=BE?= =?UTF-8?q?=E4=B8=AD=E5=9B=BE=E7=89=87=E6=81=A2=E5=A4=8D=E5=A4=A7=E5=B0=8F?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=9B=E5=90=AF=E7=94=A8=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=9B=BE=E7=89=87=E7=9A=84=E6=BB=9A=E5=8A=A8=E6=9D=A1?= =?UTF-8?q?=EF=BC=9B=E4=BF=AE=E5=A4=8D=E9=94=99=E8=AF=AF=E7=9A=84=E8=BD=AF?= =?UTF-8?q?=E4=BB=B6=E5=90=8D=E7=BF=BB=E8=AF=91=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lang/WingGifEditor2_zh_CN.ts | 254 +++++++++++++++++------------------ src/control/gifeditor.cpp | 7 +- src/dialog/mainwindow.cpp | 17 ++- src/plugin/pluginsystem.cpp | 7 + src/plugin/pluginsystem.h | 2 +- 5 files changed, 146 insertions(+), 141 deletions(-) diff --git a/lang/WingGifEditor2_zh_CN.ts b/lang/WingGifEditor2_zh_CN.ts index b3b2fe4..350d3b3 100644 --- a/lang/WingGifEditor2_zh_CN.ts +++ b/lang/WingGifEditor2_zh_CN.ts @@ -11,7 +11,7 @@ WingGifEditor2 - 羽云十六进制编辑器2 + 羽云 GIF 编辑器 @@ -299,521 +299,521 @@ MainWindow - + InfoSave 是否保存 - + WingGifEditor - 羽云十六进制编辑器 + 羽云 GIF 编辑器 - + File 文件 - + Edit 编辑 - + View 视图 - + Plugin 插件 - + Setting 设置 - + About 关于 - - - - - - + + + + + + ChooseFile 选择文件 - + Choose to open 选择文件以打开 - + NewFromPicsGif 从图像序列创建动图 - + InvalidGif 无效 GIF 文件 - + SaveGif 保存 GIF - - + + CaneledByUser 被用户取消操作 - + SaveSuccess 保存成功 - + SaveFail 保存失败 - - + + ChooseSaveFile 选择保存文件路径 - + SaveAsGif 另存为 GIF - + SaveAsSuccess 另存为成功 - + SaveAsFail 另存为失败 - + ExportFrames 导出帧 - - + + ExportSuccess 导出成功 - + ExportFail 导出失败 - - + + Goto 跳转 - + PleaseInputIndex 请输入帧索引 - + DelayTime 延迟时间 - - + + (Global) (全局) - + Inputms 输入时间(单位 ms) - + ScaleDelayTime 缩放延迟时间 - + InputPercent 输入百分比 - + Images (*.jpg *.tiff *.png) 图像 (*.jpg *.tiff *.png) - - + + InsertPics 插入图片序列 - + InsertPicsSuccess 插入图片序列成功 - + InsertGifs 插入动图 - + InsertGifsSuccess 插入动图成功 - + NoSelection 无选择 - + InvalidModel 无效模型 - + Basic 基础 - + NewFromPics 从图序新建 - + NewFromGifs 从动图创建 - + Open 打开 - + RecentFiles 最近文件 - - + + Save 保存 - + SaveAs 另存为 - + Export 导出 - + FileInfo 文件信息 - - + + General 基本 - + Undo 撤销 - + Redo 重做 - + Cut 剪切 - + Copy 复制 - + Paste 粘贴 - + Delete 删除 - + Frame - + ReduceFrame 降低帧率 - + DeleteBefore 删除之前帧 - + DeleteAfter 删除之后帧 - + MoveLeft 左移帧 - + MoveRight 右移帧 - + Reverse 反转 - + SetDelay 设置延时 - + Image 图像 - + ScaleGif 缩放 GIF - + CutGif 裁切 GIF - + FilpH 水平反转 - + FlipV 垂直翻转 - + RotateLeft 逆时针旋转 - + RotateR 顺时针旋转 - + Effect 效果 - + ExportBlank 导出模板 - + ApplyModel 应用模型 - + CreateReverse 创建逆向帧动画 - + ScaleDelay 缩放延时 - + Merge 合并 - + MergeGIfs 合并动图 - + Player 播放 - + FirstFrame 第一帧 - + LastFrame 上一帧 - + Play 播放 - + Stop 停止 - + NextFrame 下一帧 - + EndFrame 最后帧 - + LoopUp 查找 - + SelectAll 全选 - + Deselect 取消选择 - + ReverseSelection 反选 - + Log 日志 - - + + Info 信息 - + Scale 缩放 - + PlgInfo 插件信息 - + Settings 设置 - + Software 软件 - + Sponsor 赞助 - + Wiki WIKI - + AboutQT 关于 QT - + ConfirmClose 确认退出 - + ConfirmSave 你确认未保存就退出软件吗? - + Untitled 未命名 - + Frame: %1/%2 帧:%1/%2 - + NewFrame 新帧 - + InputNewFrameInterval(keep10ms) 请设置新帧延时(时间只保留十位) @@ -923,52 +923,52 @@ 插件加载完毕 - + Creating UI widget is not allowed in non-UI thread 在非 UI 线程创建用户界面组建是非法的 - + LoadingPlugin 加载插件中 - + ErrLoadPluginSign 加载插件失败:非法插件签名 - + ErrLoadPluginSDKVersion 插件加载失败:非法的 SDK 版本 - + ErrLoadPluginNoName 插件加载失败:非法插件名 - + ErrLoadLoadedPlugin 插件加载失败:已加载的插件 - + ErrLoadInitPlugin 插件加载失败:初始化插件失败 - + PluginName : 插件名: - + PluginAuthor : 插件作者: - + PluginWidgetRegister 插件组件创建 diff --git a/src/control/gifeditor.cpp b/src/control/gifeditor.cpp index dae5810..5e4ad75 100644 --- a/src/control/gifeditor.cpp +++ b/src/control/gifeditor.cpp @@ -9,14 +9,9 @@ GifEditor::GifEditor(const QImage &img, QWidget *parent) &GifEditor::selRectChanged); setScene(scene); rubber = new QRubberBand(QRubberBand::Line, this); - setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); } -void GifEditor::setImage(const QImage &img) { - scene->setFrameImg(img); - resetTransform(); -} +void GifEditor::setImage(const QImage &img) { scene->setFrameImg(img); } void GifEditor::setCropMode(bool b) { scene->setCuttingMode(b); } diff --git a/src/dialog/mainwindow.cpp b/src/dialog/mainwindow.cpp index f911cc7..4aa9205 100644 --- a/src/dialog/mainwindow.cpp +++ b/src/dialog/mainwindow.cpp @@ -83,7 +83,10 @@ MainWindow::MainWindow(QWidget *parent) : FramelessMainWindow(parent) { this, [=](const QModelIndex ¤t, const QModelIndex & /*previous*/) { auto i = current.row(); - _editor->setImage(_model->image(i)); + auto img = _model->image(i); + auto delay = _model->delay(i); + PluginSystem::instance().callPluginProcess(img, delay, i); + _editor->setImage(img); updateGifMessage(); }); connect(_model, &QAbstractListModel::rowsInserted, this, @@ -225,7 +228,7 @@ void MainWindow::on_new_frompics() { dw.dialog()->setLabelText(tr("NewFromPicsGif")); dw.dialog()->setRange(0, 0); if (loadfromImages(d.getResult(), getNewFrameInterval())) { - _curfilename = QStringLiteral(":"); //表示新建 + _curfilename = QStringLiteral(":"); // 表示新建 setSaved(false); _gallery->setCurrentIndex(_model->index(0)); @@ -245,7 +248,7 @@ void MainWindow::on_new_fromgifs() { // WaitingDialog dw; // dw.start(tr("NewFromGifsGif")); if (loadfromGifs(d.getResult())) { - _curfilename = QStringLiteral(":"); //表示新建 + _curfilename = QStringLiteral(":"); // 表示新建 setSaved(false); _gallery->setCurrentIndex(_model->index(0)); @@ -443,7 +446,7 @@ void MainWindow::on_paste() { void MainWindow::on_del() { _player->stop(); QVector indices; - for (auto item : _gallery->selectionModel()->selectedIndexes()) { + for (auto &item : _gallery->selectionModel()->selectedIndexes()) { indices.append(item.row()); } undo.push(new RemoveFrameCommand(_model, indices)); @@ -632,7 +635,7 @@ void MainWindow::on_setdelay() { if (ok) { QVector is; if (!isGlobal) { - for (auto i : indices) { + for (auto &i : indices) { is.append(i.row()); } } @@ -657,7 +660,7 @@ void MainWindow::on_scaledelay() { if (!isGlobal) { auto indices = _gallery->selectionModel()->selectedRows(); - for (auto i : indices) { + for (auto &i : indices) { is.append(i.row()); } } @@ -811,7 +814,7 @@ void MainWindow::on_applypic() { QImage img; if (img.load(filename)) { if (img.size() == _model->frameSize()) { - for (auto i : indices) { + for (auto &i : indices) { auto index = i.row(); rows.append(index); QImage bimg = _model->image(index).copy(); diff --git a/src/plugin/pluginsystem.cpp b/src/plugin/pluginsystem.cpp index 03275a1..d105b72 100644 --- a/src/plugin/pluginsystem.cpp +++ b/src/plugin/pluginsystem.cpp @@ -58,6 +58,13 @@ void PluginSystem::LoadPlugin() { Logger::info(tr("PluginLoadingFinished")); } +void PluginSystem::callPluginProcess(QImage &image, int delay, + qsizetype index) { + for (auto &p : loadedplgs) { + p->onPreviewGifFrame(image, index, delay); + } +} + bool PluginSystem::checkThreadAff() { if (QThread::currentThread() != qApp->thread()) { Logger::warning( diff --git a/src/plugin/pluginsystem.h b/src/plugin/pluginsystem.h index 23579a2..0e63de2 100644 --- a/src/plugin/pluginsystem.h +++ b/src/plugin/pluginsystem.h @@ -23,7 +23,7 @@ class PluginSystem : public QObject { void LoadPlugin(); -signals: + void callPluginProcess(QImage &image, int delay, qsizetype index); private: PluginSystem(QObject *parent = nullptr);