diff -Nru kylin-aiassistant-2.0.0/debian/changelog kylin-aiassistant-2.0.0/debian/changelog --- kylin-aiassistant-2.0.0/debian/changelog 2024-08-08 16:20:41.000000000 +0800 +++ kylin-aiassistant-2.0.0/debian/changelog 2024-10-17 14:22:58.000000000 +0800 @@ -1,3 +1,38 @@ +kylin-aiassistant (2.0.0-ok4.10) nile; urgency=medium + + * BUG: #I9QV2C【次要】【AI助手】【本地文件处理】处理过的图片右上角两个按钮按钮及放大图片后下方两个按钮悬浮、点击均无加深效果,无tooltips + #I9QUZL【次要】【AI助手】【文生图】生成图片右上角两个按钮按钮及放大图片后下方两个按钮悬浮、点击均无加深效果,无tooltips + #272813 【优麒麟+AI版】【AI助手】【语音对话】说话过程中切换文本对话,在切换回语音输入,说话按钮状态显示不对 + #272389 【优麒麟+AI版】【AI助手】【本地文件处理】悬浮已操作过的图片,缺少悬浮文字 + #272225 【优麒麟+AI版】【AI助手】【本地文件处理】已操作的图片放大后下方显示,缺少悬浮文字 + #272193 【优麒麟+AI版】【AI助手】【本地文件处理】点击图片选择图片后,悬浮文字一直显示 + * 任务号: 无 + * 需求号:无 + * 其他改动说明: 同步优麒麟AI版本bug的通用改动,修复点击下载按钮显示出文件对话框后,悬浮文字一直显示的问题 + * 其他改动影响域: 无 + + -- chenziying <chenziying@kylinos.cn> Thu, 17 Oct 2024 14:22:58 +0800 + +kylin-aiassistant (2.0.0-ok4.9) nile; urgency=medium + + * BUG: #IA7XFN【主要】【需求29308】【AI助手】选中指令后,在文本框中悬浮已选中的指令,部分显示加深,希望整体加深 + * 任务号: 无 + * 需求号:无 + * 其他改动说明: 无 + * 其他改动影响域: 无 + + -- chairui <chairui@chairui> Thu, 29 Aug 2024 14:09:47 +0800 + +kylin-aiassistant (2.0.0-ok4.8) nile; urgency=medium + + * BUG: #IALTBR【AI助手】【日历】【新建日程】使用新建日程指令无法正常添加日历日程 + * 任务号: 无 + * 需求号:无 + * 其他改动说明: 无 + * 其他改动影响域: 无 + + -- chenziying <chenziying@kylinos.cn> Wed, 28 Aug 2024 10:31:25 +0800 + kylin-aiassistant (2.0.0-ok4.7) nile; urgency=medium * BUG: 无 diff -Nru kylin-aiassistant-2.0.0/debian/patches/0118-168-fix-bug-IALTBR-AI.patch kylin-aiassistant-2.0.0/debian/patches/0118-168-fix-bug-IALTBR-AI.patch --- kylin-aiassistant-2.0.0/debian/patches/0118-168-fix-bug-IALTBR-AI.patch 1970-01-01 08:00:00.000000000 +0800 +++ kylin-aiassistant-2.0.0/debian/patches/0118-168-fix-bug-IALTBR-AI.patch 2024-10-17 14:22:58.000000000 +0800 @@ -0,0 +1,108 @@ +From: =?utf-8?b?6ZmI5a2Q55uI?= <chenziying@kylinos.cn> +Date: Wed, 28 Aug 2024 04:42:42 +0000 +Subject: =?utf-8?b?ITE2OCBmaXggYnVnI0lBTFRCUuOAkEFJ5Yqp5omL44CR44CQ5pel5Y6G?= + =?utf-8?b?44CR44CQ5paw5bu65pel56iL44CR5L2/55So5paw5bu65pel56iL5oyH5Luk5peg?= + =?utf-8?b?5rOV5q2j5bi45re75Yqg5pel5Y6G5pel56iLIE1lcmdlIHB1bGwgcmVxdWVzdCAh?= + =?utf-8?b?MTY4IGZyb20g6ZmI5a2Q55uIL29wZW5reWxpbi9uaWxl?= + +--- + ctrl.cpp | 45 +++++++++++++++++---------------------------- + ctrl.h | 1 - + 2 files changed, 17 insertions(+), 29 deletions(-) + +diff --git a/ctrl.cpp b/ctrl.cpp +index 16e2339..91284dc 100644 +--- a/ctrl.cpp ++++ b/ctrl.cpp +@@ -118,37 +118,33 @@ bool ctrl::addToSchedule(QString summary, QString msg) + qDebug() << "Start Time Extract:" << startTimeExtract; + qDebug() << "End Time Extract:" << endTimeExtract; + +- QString startTimeStr = removeYearFromTimeString(startTimeExtract); +- QString endTimeStr = removeYearFromTimeString(endTimeExtract); +- qDebug() << "Start Time Str:" << startTimeStr; +- qDebug() << "End Time Str:" << endTimeStr; + +- if (startTimeStr == "") { ++ if (startTimeExtract == "") { + qDebug() << "未找到开始时间信息"; + return false; + } + +- QDateTime start_time = QDateTime::fromString(startTimeStr, "MM-dd HH:mm:ss"); ++ QDateTime start_time = QDateTime::fromString(startTimeExtract, "yyyy-MM-dd HH:mm:ss"); + + if (!start_time.isValid()) { +- qDebug() << "无效的开始时间格式:" << startTimeStr; ++ qDebug() << "无效的开始时间格式:" << startTimeExtract; + return false; + } + ++ int start_year = start_time.date().year(); + int start_month = start_time.date().month(); + int start_day = start_time.date().day(); + int start_hour = start_time.time().hour(); + int start_minute = start_time.time().minute(); +- QString period = (start_hour < 12) ? "上午" : "下午"; + +- qDebug() << start_month << "月" << start_day << "日" << start_hour << "时" << start_minute << "分"; +- qDebug() << "时间段:" << period; ++ ++ qDebug() << start_year << "年" << start_month << "月" << start_day << "日" << start_hour << "时" << start_minute << "分"; + + QDateTime end_time; +- if (endTimeStr != "") { +- end_time = QDateTime::fromString(endTimeStr, "MM-dd HH:mm:ss"); ++ if (endTimeExtract != "") { ++ end_time = QDateTime::fromString(endTimeExtract, "yyyy-MM-dd HH:mm:ss"); + if (!end_time.isValid()) { +- qDebug() << "无效的结束时间格式:" << endTimeStr; ++ qDebug() << "无效的结束时间格式:" << endTimeExtract; + end_time = start_time; + } + } else { +@@ -179,24 +175,17 @@ bool ctrl::addToSchedule(QString summary, QString msg) + + // 调用DBus接口发送日程安排 + QDBusMessage res = m_scheduleInterface->call("ScheduleNotification", +- start_hour, start_minute, start_day, start_month, period, ++ start_hour, start_minute, start_day, start_month, start_year, + end_minute, end_hour, msg); + +- qDebug() << "QDBusMessage" << res; +- return true; +-} +- +-QString ctrl::removeYearFromTimeString(const QString &timeStr) { +- QRegularExpression re("^(\\d{2,4})-"); +- QRegularExpressionMatch match = re.match(timeStr); +- +- if (match.hasMatch()) { +- // 移除年份部分 +- return timeStr.left(match.capturedStart()) + timeStr.mid(match.capturedEnd()); ++ if (res.type() == QDBusMessage::ErrorMessage) { ++ // 处理错误 ++ qDebug() << "Error Calling ScheduleNotification:" << res.errorMessage(); ++ return false; ++ } else { ++ qDebug() << "Add ScheduleNotification Success!"; ++ return true; + } +- +- // 如果没有找到年份,返回原始字符串 +- return timeStr; + } + + QString ctrl::extractTime(const QString &str, const QString &keyword) { +diff --git a/ctrl.h b/ctrl.h +index cb6a1a8..0f03943 100644 +--- a/ctrl.h ++++ b/ctrl.h +@@ -36,7 +36,6 @@ public: + bool addToSchedule(QString summary, QString msg); + + private: +- QString removeYearFromTimeString(const QString &timeStr); + QString extractTime(const QString &str, const QString &keyword); + + QDBusInterface *m_dbusMprisInterface = nullptr; diff -Nru kylin-aiassistant-2.0.0/debian/patches/0119-170-IA7XFN-29308-AI.patch kylin-aiassistant-2.0.0/debian/patches/0119-170-IA7XFN-29308-AI.patch --- kylin-aiassistant-2.0.0/debian/patches/0119-170-IA7XFN-29308-AI.patch 1970-01-01 08:00:00.000000000 +0800 +++ kylin-aiassistant-2.0.0/debian/patches/0119-170-IA7XFN-29308-AI.patch 2024-10-17 14:22:58.000000000 +0800 @@ -0,0 +1,135 @@ +From: =?utf-8?b?5p+06ZSQ?= <chairui@kylinos.cn> +Date: Thu, 29 Aug 2024 06:13:28 +0000 +Subject: =?utf-8?b?ITE3MCBJQTdYRk4g44CQ5Li76KaB44CR44CQ6ZyA5rGCMjkzMDjjgJE=?= + =?utf-8?b?44CQQUnliqnmiYvjgJHpgInkuK3mjIfku6TlkI7vvIzlnKjmlofmnKzmoYbkuK0=?= + =?utf-8?b?5oKs5rWu5bey6YCJ5Lit55qE5oyH5Luk77yM6YOo5YiG5pi+56S65Yqg5rex77yM?= + =?utf-8?b?5biM5pyb5pW05L2T5Yqg5rexIE1lcmdlIHB1bGwgcmVxdWVzdCAhMTcwIGZyb20g?= + =?utf-8?b?5p+06ZSQL29wZW5reWxpbi9uaWxl?= + +--- + res/html/index1.html | 82 ++++++++++++++++++++++++++++++++-------------------- + 1 file changed, 51 insertions(+), 31 deletions(-) + +diff --git a/res/html/index1.html b/res/html/index1.html +index f137fef..526b6c7 100644 +--- a/res/html/index1.html ++++ b/res/html/index1.html +@@ -338,9 +338,6 @@ + height: 16px; + width: 16px; + } +- .cmdIcon_right{ +- margin-right: 6px; +- } + + .chatModelLabel{ + display: flex; +@@ -423,6 +420,8 @@ + .closeCmd:active .cmdIconActive { + display: flex; + } ++ ++ /*星星图标+标签+关闭按钮*/ + .cmdAreaAddtmpCmd{ + border-radius: 6px; + height: 28px; +@@ -442,6 +441,48 @@ + height: 28px; + background: transparent; + } ++ .tmpCmd { ++ user-select: none; ++ display: flex; ++ align-items: center; ++ justify-content: center; ++ height: 28px; ++ background: transparent; ++ color: #3790FA; ++ font-family: Noto Sans CJK SC; ++ font-size: 14px; ++ font-weight: 400; ++ line-height: 14px; ++ text-align: left; ++ } ++ .cmdAreaAddtmpCmd:hover .cmdIconDefault{ ++ display: none; ++ } ++ .cmdAreaAddtmpCmd:hover .cmdIconHover{ ++ display: flex; ++ } ++ .cmdAreaAddtmpCmd:active .cmdIconDefault { ++ display: none; ++ } ++ .cmdAreaAddtmpCmd:active .cmdIconHover { ++ display: none; ++ } ++ .cmdAreaAddtmpCmd:active .cmdIconActive { ++ display: flex; ++ } ++ .cmdAreaAddtmpCmd:hover { ++ background: rgb(52, 137, 238); ++ } ++ .cmdAreaAddtmpCmd:active { ++ background: rgb(44, 115, 200); ++ } ++ ++ .cmdAreaAddtmpCmd:hover .tmpCmd{ ++ color: white; ++ } ++ .cmdAreaAddtmpCmd:active .tmpCmd{ ++ color: white; ++ } + + .closeCmd + { +@@ -478,27 +519,7 @@ + backdrop-filter: blur(50px); + } + +- .tmpCmd { +- display: flex; +- align-items: center; +- justify-content: center; +- height: 28px; +- background: transparent; +- color: #3790FA; +- font-family: Noto Sans CJK SC; +- font-size: 14px; +- font-weight: 400; +- line-height: 14px; +- text-align: left; +- +- } +- .tmpCmd:hover { +- background: rgb(52, 137, 238); +- color: white; +- } +- /* .tmpCmd::before{ +- content: url('./img/AI-mockUp.svg'); +- } */ ++ + .labelTitle + { + display: flex; +@@ -1340,15 +1361,14 @@ + <div class="closeCmdToolTip">全部指令</div> + </div> + </div> +- <div class="cmdAreaAddtmpCmd" v-show="hasCmd === true"> +- <div class="posToolTips"> +- <button class="closeCmdAddtmpCmd"> +- <img class="cmdIconDefault" src="./img/AI-mockUp.svg"> +- </button> ++ <div class="cmdAreaAddtmpCmd" v-show="hasCmd === true"> ++ <div class="posToolTips"> ++ <button class="closeCmd"> ++ <span class="cmdIcon"><img class="cmdIconDefault" src="./img/AI-mockUp.svg"><img class="cmdIconHover" src="./img/AI-mockUp-hover.svg"><img class="cmdIconActive" src="./img/AI-mockUp-hover.svg"></span> ++ </button> + </div> +- + <span class="tmpCmd" id = "curCmd"></span> +- <button v-show="hasCmd === true" @click="clearLabel" class="closeCmd" id="closeCmd"><img class="cmdIcon_right" src="./img/close.svg"></button> ++ <button @click="clearLabel" class="closeCmd" id="closeCmd"><img class="cmdIconDefault" src="./img/close.svg"><img class="cmdIconHover" src="./img/close-hover.svg"><img class="cmdIconActive" src="./img/close-hover.svg"></button> + </div> + <div class="sendTextArea"> + <el-input diff -Nru kylin-aiassistant-2.0.0/debian/patches/0120-188-AI-bug-fix-bug-I9QV2C-I9QUZL.patch kylin-aiassistant-2.0.0/debian/patches/0120-188-AI-bug-fix-bug-I9QV2C-I9QUZL.patch --- kylin-aiassistant-2.0.0/debian/patches/0120-188-AI-bug-fix-bug-I9QV2C-I9QUZL.patch 1970-01-01 08:00:00.000000000 +0800 +++ kylin-aiassistant-2.0.0/debian/patches/0120-188-AI-bug-fix-bug-I9QV2C-I9QUZL.patch 2024-10-17 14:22:58.000000000 +0800 @@ -0,0 +1,597 @@ +From: =?utf-8?b?6ZmI5a2Q55uI?= <chenziying@kylinos.cn> +Date: Fri, 18 Oct 2024 07:24:36 +0000 +Subject: =?utf-8?b?ITE4OCDlkIzmraXkvJjpupLpup9BSeeJiOacrOmAmueUqGJ1Z+aUuQ==?= + =?utf-8?b?5Yqo77yMZml4IGJ1ZyAjSTlRVjJDICNJOVFVWkwgTWVyZ2UgcHVsbCByZXF1ZXN0?= + =?utf-8?b?ICExODggZnJvbSDpmYjlrZDnm4gvb3Blbmt5bGluL25pbGU=?= + +--- + res/html/img/chathome/cancel_grey_active.svg | 5 + + res/html/img/chathome/cancel_hover_active.svg | 5 - + res/html/img/chathome/close_white.svg | 1 + + res/html/img/chathome/download_white.svg | 1 + + res/html/img/chathome/folder_white.svg | 1 + + res/html/img/chathome/view_white.svg | 1 + + res/html/index1.html | 448 ++++++++++++++++++++++---- + res/msgpane.qrc | 6 +- + 8 files changed, 394 insertions(+), 74 deletions(-) + create mode 100644 res/html/img/chathome/cancel_grey_active.svg + delete mode 100644 res/html/img/chathome/cancel_hover_active.svg + create mode 100644 res/html/img/chathome/close_white.svg + create mode 100644 res/html/img/chathome/download_white.svg + create mode 100644 res/html/img/chathome/folder_white.svg + create mode 100644 res/html/img/chathome/view_white.svg + +diff --git a/res/html/img/chathome/cancel_grey_active.svg b/res/html/img/chathome/cancel_grey_active.svg +new file mode 100644 +index 0000000..a402c7f +--- /dev/null ++++ b/res/html/img/chathome/cancel_grey_active.svg +@@ -0,0 +1,5 @@ ++<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"> ++<rect width="36" height="36" rx="4" fill="#262626" fill-opacity="0.75"/> ++<path d="M12.6973 12.6953L23.3039 23.3019" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> ++<path d="M12.6973 23.3008L23.3039 12.6942" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> ++</svg> +diff --git a/res/html/img/chathome/cancel_hover_active.svg b/res/html/img/chathome/cancel_hover_active.svg +deleted file mode 100644 +index a402c7f..0000000 +--- a/res/html/img/chathome/cancel_hover_active.svg ++++ /dev/null +@@ -1,5 +0,0 @@ +-<svg width="36" height="36" viewBox="0 0 36 36" fill="none" xmlns="http://www.w3.org/2000/svg"> +-<rect width="36" height="36" rx="4" fill="#262626" fill-opacity="0.75"/> +-<path d="M12.6973 12.6953L23.3039 23.3019" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> +-<path d="M12.6973 23.3008L23.3039 12.6942" stroke="white" stroke-linecap="round" stroke-linejoin="round"/> +-</svg> +diff --git a/res/html/img/chathome/close_white.svg b/res/html/img/chathome/close_white.svg +new file mode 100644 +index 0000000..63df743 +--- /dev/null ++++ b/res/html/img/chathome/close_white.svg +@@ -0,0 +1 @@ ++<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_3_139187/3_124886"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_3_139187/3_124886)"><g transform="matrix(0.7071067690849304,-0.7071067690849304,0.7071067690849304,0.7071067690849304,-1.115862870006822,2.696693567908369)"><path d="M2.197265625,2.6953125Q2.197265625,2.6460668,2.206872625,2.5977674Q2.216480625,2.5494675,2.2353256249999998,2.5039705Q2.254171625,2.4584735,2.281530625,2.4175275Q2.308890625,2.3765815,2.343712625,2.3417595Q2.378534625,2.3069375,2.419480625,2.2795775Q2.460426625,2.2522185,2.505923625,2.2333724999999998Q2.551420625,2.2145275,2.599720525,2.2049195Q2.648019925,2.1953125,2.697265625,2.1953125Q2.746511325,2.1953125,2.794810725,2.2049195Q2.843110625,2.2145275,2.888607625,2.2333724999999998Q2.934104625,2.2522185,2.975050625,2.2795775Q3.015996625,2.3069375,3.050818625,2.3417595Q3.085640625,2.3765815,3.113000625,2.4175275Q3.140359625,2.4584735,3.1592056250000002,2.5039705Q3.178050625,2.5494675,3.187658625,2.5977674Q3.197265625,2.6460668,3.197265625,2.6953125L3.197265625,17.6953125Q3.197265625,17.7445125,3.187658625,17.7928125Q3.178050625,17.8411125,3.1592056250000002,17.8866125Q3.140359625,17.932112500000002,3.113000625,17.9731125Q3.085640625,18.0140125,3.050818625,18.0489125Q3.015996625,18.0837125,2.975050625,18.1110125Q2.934104625,18.1384125,2.888607625,18.1572125Q2.843110625,18.176112500000002,2.794810725,18.1857125Q2.746511325,18.1953125,2.697265625,18.1953125Q2.648019925,18.1953125,2.599720525,18.1857125Q2.551420625,18.176112500000002,2.505923625,18.1572125Q2.460426625,18.1384125,2.419480625,18.1110125Q2.378534625,18.0837125,2.343712625,18.0489125Q2.308890625,18.0140125,2.281530625,17.9731125Q2.254171625,17.932112500000002,2.2353256249999998,17.8866125Q2.216480625,17.8411125,2.206872625,17.7928125Q2.197265625,17.7445125,2.197265625,17.6953125L2.197265625,2.6953125Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g transform="matrix(0.7071067690849304,0.7071067690849304,0.7071067690849304,-0.7071067690849304,-8.615061612450518,20.798598924535327)"><path d="M2.197265625,13.30078125Q2.197265625,13.25153555,2.206872625,13.20323615Q2.216480625,13.15493625,2.2353256249999998,13.10943925Q2.254171625,13.06394225,2.281530625,13.02299625Q2.308890625,12.98205025,2.343712625,12.94722825Q2.378534625,12.91240625,2.419480625,12.88504625Q2.460426625,12.85768725,2.505923625,12.83884125Q2.551420625,12.819996249999999,2.599720525,12.81038825Q2.648019925,12.80078125,2.697265625,12.80078125Q2.746511325,12.80078125,2.794810725,12.81038825Q2.843110625,12.819996249999999,2.888607625,12.83884125Q2.934104625,12.85768725,2.975050625,12.88504625Q3.015996625,12.91240625,3.050818625,12.94722825Q3.085640625,12.98205025,3.113000625,13.02299625Q3.140359625,13.06394225,3.1592056250000002,13.10943925Q3.178050625,13.15493625,3.187658625,13.20323615Q3.197265625,13.25153555,3.197265625,13.30078125L3.197265625,28.30078125Q3.197265625,28.34998125,3.187658625,28.39828125Q3.178050625,28.44658125,3.1592056250000002,28.49208125Q3.140359625,28.537581250000002,3.113000625,28.57858125Q3.085640625,28.61948125,3.050818625,28.65438125Q3.015996625,28.68918125,2.975050625,28.71648125Q2.934104625,28.74388125,2.888607625,28.76268125Q2.843110625,28.781581250000002,2.794810725,28.79118125Q2.746511325,28.80078125,2.697265625,28.80078125Q2.648019925,28.80078125,2.599720525,28.79118125Q2.551420625,28.781581250000002,2.505923625,28.76268125Q2.460426625,28.74388125,2.419480625,28.71648125Q2.378534625,28.68918125,2.343712625,28.65438125Q2.308890625,28.61948125,2.281530625,28.57858125Q2.254171625,28.537581250000002,2.2353256249999998,28.49208125Q2.216480625,28.44658125,2.206872625,28.39828125Q2.197265625,28.34998125,2.197265625,28.30078125L2.197265625,13.30078125Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g></g></svg> +\ No newline at end of file +diff --git a/res/html/img/chathome/download_white.svg b/res/html/img/chathome/download_white.svg +new file mode 100644 +index 0000000..ae18d2c +--- /dev/null ++++ b/res/html/img/chathome/download_white.svg +@@ -0,0 +1 @@ ++<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_3_139189/3_124886"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_3_139189/3_124886)"><g><path d="M1,10Q1,9.9507543,1.009607,9.9024549Q1.019215,9.854155,1.03806,9.808658Q1.0569060000000001,9.763161,1.084265,9.722215Q1.111625,9.681269,1.146447,9.646447Q1.181269,9.611625,1.222215,9.584265Q1.263161,9.556906,1.3086579999999999,9.53806Q1.354155,9.519214999999999,1.4024549,9.509607Q1.4507543,9.5,1.5,9.5Q1.5492457,9.5,1.5975451,9.509607Q1.645845,9.519214999999999,1.6913420000000001,9.53806Q1.736839,9.556906,1.777785,9.584265Q1.818731,9.611625,1.853553,9.646447Q1.888375,9.681269,1.915735,9.722215Q1.9430939999999999,9.763161,1.96194,9.808658Q1.980785,9.854155,1.990393,9.9024549Q2,9.9507543,2,10L2,12.50191Q2,12.712769999999999,2.142329,12.8576Q2.282279,13,2.485645,13L13.5144,13Q13.7177,13,13.8577,12.8576Q14,12.712769999999999,14,12.50191L14,11.75L14,10Q14,9.9507543,14.0096,9.9024549Q14.0192,9.854155,14.0381,9.808658Q14.0569,9.763161,14.0843,9.722215Q14.1116,9.681269,14.1464,9.646447Q14.1813,9.611625,14.2222,9.584265Q14.2632,9.556906,14.3087,9.53806Q14.3542,9.519214999999999,14.4025,9.509607Q14.4508,9.5,14.5,9.5Q14.5492,9.5,14.5975,9.509607Q14.6458,9.519214999999999,14.6913,9.53806Q14.7368,9.556906,14.7778,9.584265Q14.8187,9.611625,14.8536,9.646447Q14.8884,9.681269,14.9157,9.722215Q14.9431,9.763161,14.9619,9.808658Q14.9808,9.854155,14.9904,9.9024549Q15,9.9507543,15,10L15,10.00097629L15,11.75L15,12.50191Q15,13.1219,14.5709,13.558530000000001Q14.137,14,13.5144,14L2.485645,14Q1.862964,14,1.4291027,13.558530000000001Q1,13.1219,1,12.50191L1,10Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M4.853496,6.14639L8.000070000000001,9.29055L11.14657,6.146319Q11.21689,6.076052,11.30874,6.038026Q11.400590000000001,6,11.5,6Q11.54925,6,11.59754,6.009607Q11.64584,6.019215,11.69134,6.03806Q11.73684,6.056906,11.77778,6.084265Q11.81873,6.111625,11.85355,6.146447Q11.88837,6.181269,11.91573,6.222215Q11.94309,6.263161,11.96194,6.308658Q11.98078,6.354155,11.99039,6.4024549Q12,6.4507543,12,6.5Q12,6.5995031,11.96191,6.691425Q11.92381,6.783347,11.85343,6.853681L11.85303,6.854075L8.35351,10.35108Q8.31869,10.38587,8.27776,10.4132Q8.23682,10.44054,8.19134,10.45937Q8.145859999999999,10.478200000000001,8.09759,10.4878Q8.04931,10.497399999999999,8.00009,10.497399999999999Q7.95087,10.497399999999999,7.90259,10.4878Q7.85431,10.478200000000001,7.80883,10.45937Q7.76335,10.44055,7.72242,10.41321Q7.6814800000000005,10.38588,7.64666,10.35108L4.146661,6.853768L4.146582,6.853689Q4.076194,6.783355,4.038097,6.69143Q4,6.5995061,4,6.5Q4,6.4507543,4.009607,6.4024549Q4.019215,6.354155,4.03806,6.308658Q4.056906,6.263161,4.084265,6.222215Q4.111625,6.181269,4.146447,6.146447Q4.181269,6.111625,4.222215,6.084265Q4.263161,6.056906,4.308658,6.03806Q4.354155,6.019215,4.4024549,6.009607Q4.4507543,6,4.5,6Q4.5994063,6,4.691253,6.038024Q4.7831,6.076047,4.853418,6.146311L4.853496,6.14639Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M7.5,1.5Q7.5,1.4507543,7.509607,1.4024549Q7.519215,1.354155,7.53806,1.3086579999999999Q7.556906,1.263161,7.584265,1.222215Q7.611625,1.181269,7.646447,1.146447Q7.681269,1.111625,7.722215,1.084265Q7.763161,1.0569060000000001,7.808658,1.03806Q7.854155,1.019215,7.9024549,1.009607Q7.9507543,1,8,1Q8.0492457,1,8.0975451,1.009607Q8.145845,1.019215,8.191342,1.03806Q8.236839,1.0569060000000001,8.277785,1.084265Q8.318731,1.111625,8.353553,1.146447Q8.388375,1.181269,8.415735,1.222215Q8.443094,1.263161,8.46194,1.3086579999999999Q8.480785000000001,1.354155,8.490393,1.4024549Q8.5,1.4507543,8.5,1.5L8.5,10Q8.5,10.04924,8.490393,10.09754Q8.480785000000001,10.14584,8.46194,10.19134Q8.443094,10.23684,8.415735,10.27778Q8.388375,10.31873,8.353553,10.35355Q8.318731,10.38837,8.277785,10.41573Q8.236839,10.44309,8.191342,10.46194Q8.145845,10.48078,8.0975451,10.49039Q8.0492457,10.5,8,10.5Q7.9507543,10.5,7.9024549,10.49039Q7.854155,10.48078,7.808658,10.46194Q7.763161,10.44309,7.722215,10.41573Q7.681269,10.38837,7.646447,10.35355Q7.611625,10.31873,7.584265,10.27778Q7.556906,10.23684,7.53806,10.19134Q7.519215,10.14584,7.509607,10.09754Q7.5,10.04924,7.5,10L7.5,1.5Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g></g></svg> +\ No newline at end of file +diff --git a/res/html/img/chathome/folder_white.svg b/res/html/img/chathome/folder_white.svg +new file mode 100644 +index 0000000..19c7c52 +--- /dev/null ++++ b/res/html/img/chathome/folder_white.svg +@@ -0,0 +1 @@ ++<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_3_139186/3_124886"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_3_139186/3_124886)"><g><path d="M4.9999998807907104,14L8.49999988079071,14Q8.549249880790711,14,8.59753988079071,13.9904Q8.64583988079071,13.9808,8.69133988079071,13.9619Q8.736839880790711,13.9431,8.77777988079071,13.9157Q8.81872988079071,13.8884,8.85354988079071,13.8536Q8.88836988079071,13.8187,8.91572988079071,13.7778Q8.94308988079071,13.7368,8.96193988079071,13.6913Q8.98077988079071,13.6458,8.99038988079071,13.5975Q8.99999988079071,13.5492,8.99999988079071,13.5Q8.99999988079071,13.4508,8.99038988079071,13.4025Q8.98077988079071,13.3542,8.96193988079071,13.3087Q8.94308988079071,13.2632,8.91572988079071,13.2222Q8.88836988079071,13.1813,8.85354988079071,13.1464Q8.81872988079071,13.1116,8.77777988079071,13.0843Q8.736839880790711,13.0569,8.69133988079071,13.0381Q8.64583988079071,13.0192,8.59753988079071,13.0096Q8.549239880790712,13,8.49999988079071,13L2.4874898807907107,13Q2.2885708807907106,13,2.1468658807907106,12.8528Q1.9999998807907104,12.7002,1.9999998807907104,12.48486L1.9999998807907104,8L1.9999998807907104,3.5151399999999997Q1.9999998807907104,3.300426,2.1474048807907105,3.147743Q2.2900418807907106,3,2.4895928807907106,3L5.8474798807907105,3Q6.07214988079071,3,6.21560988079071,3.153759L6.77914988079071,3.75776L7.34269988079071,4.36177Q7.782669880790711,4.83333,8.43292988079071,4.83333L13.50259988079071,4.83333Q13.99999988079071,4.83333,13.99999988079071,5.3352900000000005L13.99999988079071,7.5Q13.99999988079071,7.54925,14.009599880790711,7.59755Q14.01919988079071,7.64584,14.03809988079071,7.69134Q14.056899880790711,7.73684,14.084299880790711,7.77778Q14.11159988079071,7.81873,14.14639988079071,7.85355Q14.18129988079071,7.88837,14.222199880790711,7.91573Q14.26319988079071,7.94309,14.30869988079071,7.96194Q14.354199880790711,7.98078,14.40249988079071,7.99039Q14.45079988079071,8,14.49999988079071,8Q14.549199880790711,8,14.59749988079071,7.99039Q14.64579988079071,7.98078,14.69129988079071,7.96194Q14.736799880790711,7.94309,14.77779988079071,7.91573Q14.81869988079071,7.88837,14.85359988079071,7.85355Q14.888399880790711,7.81873,14.91569988079071,7.77778Q14.94309988079071,7.73684,14.96189988079071,7.69134Q14.98079988079071,7.64584,14.99039988079071,7.59755Q14.99999988079071,7.54925,14.99999988079071,7.5L14.99999988079071,5.3352900000000005Q14.99999988079071,4.714449999999999,14.56309988079071,4.27476Q14.12439988079071,3.83333,13.50259988079071,3.83333L8.43292988079071,3.83333Q8.217329880790711,3.83333,8.07386988079071,3.67957L7.510319880790711,3.07557L6.946779880790711,2.4715654Q6.506799880790711,2,5.8474798807907105,2L2.4895928807907106,2Q1.8654888807907104,2,1.4279738807907105,2.4531797Q0.9999998807907104,2.896477,0.9999998807907104,3.5151399999999997L0.9999998807907104,8L0.9999998807907104,12.48486Q0.9999998807907104,13.1033,1.4264103807907105,13.5463Q1.8631478807907105,14,2.4874898807907107,14L4.9999998807907104,14Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M14.12132,8.87868Q13.24264,8,12,8Q10.75736,8,9.87868,8.87868Q9,9.75736,9,11Q9,12.45711,10.396447,13.85355Q11.06497,14.522079999999999,11.742750000000001,14.92875Q11.80103,14.96372,11.866530000000001,14.981860000000001Q11.932030000000001,15,12,15Q12.067969999999999,15,12.133469999999999,14.981860000000001Q12.19897,14.96372,12.257249999999999,14.92875Q12.93503,14.522079999999999,13.60355,13.85355Q15,12.45711,15,11Q15,9.75736,14.12132,8.87868ZM10.58579,9.58579Q11.17157,9,12,9Q12.82843,9,13.41421,9.58579Q14,10.17157,14,11Q14,12.04289,12.89645,13.14645Q12.44544,13.59746,12,13.9052Q11.55456,13.59745,11.10355,13.14645Q10,12.04289,10,11Q10,10.17157,10.58579,9.58579Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><ellipse cx="12" cy="11" rx="1" ry="1" fill="#FFFFFF" fill-opacity="1"/></g></g></svg> +\ No newline at end of file +diff --git a/res/html/img/chathome/view_white.svg b/res/html/img/chathome/view_white.svg +new file mode 100644 +index 0000000..93ded51 +--- /dev/null ++++ b/res/html/img/chathome/view_white.svg +@@ -0,0 +1 @@ ++<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" fill="none" version="1.1" width="16" height="16" viewBox="0 0 16 16"><defs><clipPath id="master_svg0_3_139188/3_124886"><rect x="0" y="0" width="16" height="16" rx="0"/></clipPath></defs><g clip-path="url(#master_svg0_3_139188/3_124886)"><g><path d="M2.84351,10.60175Q5.20599,13,8,13Q10.79457,13,13.1574,10.60084Q14.3173,9.423079999999999,14.9427,8.2325Q15,8.12332,15,8Q15,7.87668,14.9427,7.7675Q14.3173,6.576919999999999,13.1574,5.39916Q10.79457,3,8,3Q5.20543,3,2.84262,5.39916Q1.682697,6.57693,1.057347,7.7675Q1,7.87668,1,8Q1,8.12332,1.057347,8.2325L1.057399,8.2326Q1.68374,9.42442,2.84351,10.60175ZM12.4449,9.89916Q10.37588,12,8,12Q5.62461,12,3.55591,9.89997Q2.61573,8.94556,2.07073,7.99995Q2.61494,7.05547,3.55511,6.10084Q5.62412,4,8,4Q10.37588,4,12.4449,6.10084Q13.3851,7.05549,13.9293,8Q13.3851,8.944510000000001,12.4449,9.89916Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g><g><path d="M9.76777,6.232233Q9.03553,5.5,8,5.5Q6.964466,5.5,6.232233,6.232233Q5.5,6.964466,5.5,8Q5.5,9.03553,6.232233,9.76777Q6.964467,10.5,8,10.5Q9.03553,10.5,9.76777,9.76777Q10.5,9.03553,10.5,8Q10.5,6.964466,9.76777,6.232233ZM6.93934,6.93934Q7.37868,6.5,8,6.5Q8.62132,6.5,9.06066,6.93934Q9.5,7.37868,9.5,8Q9.5,8.62132,9.06066,9.06066Q8.62132,9.5,8,9.5Q7.37868,9.5,6.93934,9.06066Q6.5,8.62132,6.5,8Q6.5,7.37868,6.93934,6.93934Z" fill-rule="evenodd" fill="#FFFFFF" fill-opacity="1"/></g></g></svg> +\ No newline at end of file +diff --git a/res/html/index1.html b/res/html/index1.html +index 526b6c7..4e97f4b 100644 +--- a/res/html/index1.html ++++ b/res/html/index1.html +@@ -736,7 +736,10 @@ + .selectImageBtn:hover + .selectImageBtnToolTip{ + display: flex; + opacity: 1; +- transition-delay: 0.3s; ++ transition-delay: 0.5s; ++ } ++ .selectImageBtn:active + .selectImageBtnToolTip{ ++ display: none; + } + .selectImageBtnToolTip{ + width: 360px; +@@ -1046,56 +1049,184 @@ + color: white; + } + .aiImageDiv{ +- position: relative; +- max-width: 164px; +- max-height: 164px; ++ position: relative; ++ max-width: 164px; ++ max-height: 164px; + } +- .aiImageDiv img{ +- border-radius: 4px; +- display: block; +- margin-top: 8px; +- } +- .aiImageDownload{ +- position: absolute; +- top: 5px; +- right: 5px; +- width: 28px; +- height: 28px; +- border-radius: 4px; +- display: flex; +- justify-content: center; +- align-items: center; +- background-clip: border-box; +- } +- .imageOpenFolder{ +- position: absolute; +- top: 5px; +- right: 5px; +- width: 28px; +- height: 28px; +- border-radius: 4px; +- display: flex; +- justify-content: center; +- align-items: center; +- background-clip: border-box; +- } +- .aiImageView{ +- position: absolute; +- top: 38px; +- right: 5px; +- width: 28px; +- height: 28px; +- border-radius: 4px; +- display: flex; +- justify-content: center; +- align-items: center; +- background-clip: border-box; +- } +- .posToolTips { +- position: relative; +- height:28px; +- width: 28px; +- } ++ .aiImageDiv img{ ++ border-radius: 4px; ++ display: block; ++ margin-top: 8px; ++ } ++ .posToolTips { ++ position: relative; ++ height:28px; ++ width: 28px; ++ } ++ .aiImageDownload{ ++ position: absolute; ++ top: 5px; ++ right: 5px; ++ width: 28px; ++ height: 28px; ++ border-radius: 4px; ++ display: flex; ++ justify-content: center; ++ /* align-items: center; */ ++ background: rgba(38, 38, 38, 0.35); ++ transition: background-color 0.3s ease; ++ cursor: pointer; ++ outline: none; ++ padding: 0; ++ } ++ .aiImageDownloadIcon { ++ width: 16px !important; ++ height: 16px !important; ++ border-radius: 0px!important; ++ display: flex!important; ++ margin-top: 6px!important; ++ } ++ ++ .aiImageDownload:hover { ++ background: rgba(38, 38, 38, 0.55); ++ } ++ .aiImageDownload:active { ++ background: rgba(38, 38, 38, 0.75); ++ } ++ ++ .aiImageDownload:hover + .aiImageDownloadToolTip{ ++ display: flex; ++ opacity: 1; ++ transition-delay: 0.5s; ++ } ++ .aiImageDownload:active + .aiImageDownloadToolTip{ ++ display: none; ++ } ++ .aiImageDownloadToolTip{ ++ width: 56px; ++ height: 36px; ++ display: none; ++ opacity: 0; ++ position: absolute; ++ top: -23px; ++ right:-80px; ++ font-family: Noto Sans CJK SC; ++ font-size: 12pt; ++ text-align: center; ++ align-items: center; ++ justify-content: center; ++ background-color: rgba(255, 255, 255, 0.75); ++ border: 1px solid rgba(38, 38, 38, 0.05); ++ border-radius: 8px; ++ padding: 4px 8px; ++ transition: opacity 0.3s; ++ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); ++ backdrop-filter: blur(50px); ++ } ++ ++ .imageOpenFolder{ ++ position: absolute; ++ top: 5px; ++ right: 5px; ++ width: 28px; ++ height: 28px; ++ border-radius: 4px; ++ display: flex; ++ justify-content: center; ++ /* align-items: center; */ ++ background: rgba(38, 38, 38, 0.35); ++ transition: background-color 0.3s ease; ++ cursor: pointer; ++ outline: none; ++ } ++ .imageOpenFolder:hover { ++ background: rgba(38, 38, 38, 0.55); ++ } ++ .imageOpenFolder:active { ++ background: rgba(38, 38, 38, 0.75); ++ } ++ ++ .imageOpenFolder:hover + .imageOpenFolderToolTip{ ++ display: flex; ++ opacity: 1; ++ transition-delay: 0.5s; ++ } ++ .imageOpenFolder:active + .imageOpenFolderToolTip{ ++ display: none; ++ } ++ .imageOpenFolderToolTip{ ++ width: 80px; ++ height: 36px; ++ display: none; ++ opacity: 0; ++ position: absolute; ++ top: -24px; ++ right:-100px; ++ font-family: Noto Sans CJK SC; ++ font-size: 12pt; ++ text-align: center; ++ align-items: center; ++ justify-content: center; ++ background-color: rgba(255, 255, 255, 0.75); ++ border: 1px solid rgba(38, 38, 38, 0.05); ++ border-radius: 8px; ++ padding: 4px 8px; ++ transition: opacity 0.3s; ++ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); ++ backdrop-filter: blur(50px); ++ } ++ ++ .aiImageView{ ++ position: absolute; ++ top: 38px; ++ right: 5px; ++ width: 28px; ++ height: 28px; ++ border-radius: 4px; ++ display: flex; ++ justify-content: center; ++ /* align-items: center; */ ++ background: rgba(38, 38, 38, 0.35); ++ transition: background-color 0.3s ease; ++ cursor: pointer; ++ outline: none; ++ } ++ .aiImageView:hover { ++ background: rgba(38, 38, 38, 0.55); ++ } ++ .aiImageView:active { ++ background: rgba(38, 38, 38, 0.75); ++ } ++ .aiImageView:hover + .aiImageViewToolTip{ ++ display: flex; ++ opacity: 1; ++ transition-delay: 0.5s; ++ } ++ .aiImageView:active + .aiImageViewToolTip{ ++ display: none; ++ } ++ .aiImageViewToolTip{ ++ width: 56px; ++ height: 36px; ++ display: none; ++ opacity: 0; ++ position: absolute; ++ top: 10px; ++ right:-80px; ++ font-family: Noto Sans CJK SC; ++ font-size: 12pt; ++ text-align: center; ++ align-items: center; ++ justify-content: center; ++ background-color: rgba(255, 255, 255, 0.75); ++ border: 1px solid rgba(38, 38, 38, 0.05); ++ border-radius: 8px; ++ padding: 4px 8px; ++ transition: opacity 0.3s; ++ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); ++ backdrop-filter: blur(50px); ++ } ++ + .aiImagePreviewContainer{ + position: fixed; + left: 0; +@@ -1133,6 +1264,166 @@ + border-radius: 4px; + margin-right: 4px; + } ++ ++ .aiImagePreviewCloseBtn{ ++ width: 36px; ++ height: 36px; ++ float: left; ++ border-radius: 4px; ++ margin-right: 4px; ++ justify-content: center; ++ /* align-items: center; */ ++ background: rgba(38, 38, 38, 0.35); ++ transition: background-color 0.3s ease; ++ cursor: pointer; ++ outline: none; ++ } ++ .aiImagePreviewCloseBtn:hover { ++ background: rgba(38, 38, 38, 0.55); ++ } ++ ++ .aiImagePreviewCloseBtn:active { ++ background: rgba(38, 38, 38, 0.75); ++ } ++ ++ .aiImagePreviewCloseBtn:hover + .aiImagePreviewCloseBtnToolTip{ ++ display: flex; ++ opacity: 1; ++ transition-delay: 0.5s; ++ } ++ .aiImagePreviewCloseBtn:active + .aiImagePreviewCloseBtnToolTip{ ++ display: none; ++ } ++ ++ .aiImagePreviewCloseBtnToolTip{ ++ width: 56px !important; ++ height: 36px !important; ++ display: none; ++ opacity: 0; ++ position: absolute; ++ top: -53px; ++ right:-15px; ++ color:black !important; ++ font-family: Noto Sans CJK SC; ++ font-size: 12pt; ++ text-align: center; ++ align-items: center; ++ justify-content: center; ++ background-color: rgba(255, 255, 255, 0.75) !important; ++ border: 1px solid rgba(38, 38, 38, 0.05) !important; ++ border-radius: 8px !important; ++ padding: 4px 8px !important; ++ transition: opacity 0.3s; ++ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); ++ backdrop-filter: blur(50px); ++ z-index: 9910; ++ } ++ ++ .aiImagePreviewDownloadBtn{ ++ width: 36px; ++ height: 36px; ++ float: left; ++ border-radius: 4px; ++ margin-right: 4px; ++ justify-content: center; ++ /* align-items: center; */ ++ background: rgba(38, 38, 38, 0.35); ++ transition: background-color 0.3s ease; ++ cursor: pointer; ++ outline: none; ++ } ++ .aiImagePreviewDownloadBtn:hover { ++ background: rgba(38, 38, 38, 0.55); ++ } ++ ++ .aiImagePreviewDownloadBtn:active { ++ background: rgba(38, 38, 38, 0.75); ++ } ++ ++ .aiImagePreviewDownloadBtn:hover + .aiImagePreviewDownloadBtnToolTip{ ++ display: flex; ++ opacity: 1; ++ transition-delay: 0.5s; ++ } ++ .aiImagePreviewDownloadBtn:active + .aiImagePreviewDownloadBtnToolTip{ ++ display: none; ++ } ++ .aiImagePreviewDownloadBtnToolTip{ ++ width: 56px !important; ++ height: 36px !important; ++ display: none; ++ opacity: 0; ++ position: absolute; ++ top: -54px; ++ right:-55px; ++ color: black !important; ++ font-family: Noto Sans CJK SC; ++ font-size: 12pt; ++ text-align: center; ++ align-items: center; ++ justify-content: center; ++ background-color: rgba(255, 255, 255, 0.75) !important; ++ border: 1px solid rgba(38, 38, 38, 0.05) !important; ++ border-radius: 8px !important; ++ padding: 4px 8px !important; ++ transition: opacity 0.3s; ++ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); ++ backdrop-filter: blur(50px); ++ z-index: 9910; ++ } ++ ++ .aiImagePreviewLocationBtn{ ++ width: 36px; ++ height: 36px; ++ float: left; ++ border-radius: 4px; ++ margin-right: 4px; ++ justify-content: center; ++ /* align-items: center; */ ++ background: rgba(38, 38, 38, 0.35); ++ transition: background-color 0.3s ease; ++ cursor: pointer; ++ outline: none; ++ } ++ .aiImagePreviewLocationBtn:hover { ++ background: rgba(38, 38, 38, 0.55); ++ } ++ ++ .aiImagePreviewLocationBtn:active { ++ background: rgba(38, 38, 38, 0.75); ++ } ++ ++ .aiImagePreviewLocationBtn:hover + .aiImagePreviewLocationBtnToolTip{ ++ display: flex; ++ opacity: 1; ++ transition-delay: 0.5s; ++ } ++ .aiImagePreviewLocationBtn:active + .aiImagePreviewLocationBtnToolTip{ ++ display: none; ++ } ++ .aiImagePreviewLocationBtnToolTip{ ++ width: 80px !important; ++ height: 36px !important; ++ display: none; ++ opacity: 0; ++ position: absolute; ++ top: -54px; ++ right:-80px; ++ color:black; ++ font-family: Noto Sans CJK SC; ++ font-size: 12pt; ++ text-align: center; ++ align-items: center; ++ justify-content: center; ++ background-color: rgba(255, 255, 255, 0.75) !important; ++ border: 1px solid rgba(38, 38, 38, 0.05) !important; ++ border-radius: 8px !important; ++ padding: 4px 8px !important; ++ transition: opacity 0.3s; ++ box-shadow: 0px 0px 10px rgba(0, 0, 0, 0.15); ++ backdrop-filter: blur(50px); ++ z-index: 9910; ++ } + /* 文件拖入样式设置 */ + .aiImageDragInContainer { + position: fixed; +@@ -1222,16 +1513,23 @@ + <div class="aiImageDiv" id="aiImageDiv" v-if="message.imageSrc !== ''" @dblclick="dblclickAiImage(message.imageSrc)"> + <img v-if="message.imagePath" :src="message.imageSrc" :style="{ maxWidth: '164px', maxHeight: '164px' }"> + <img v-else id="aiImage" :src="message.imageSrc" alt="AI生成的图片"> +- <div v-if="!message.imagePath && message.direction === 'cleft'" id="aiImageDownload" class="aiImageDownload" @click="downloadImage(message.imageSrc)" draggable="false"> +- <img src="./img/download.svg" alt="下载按钮" draggable="false"> </img> +- </div> +- <div v-if="message.imagePath && message.direction === 'cleft'" id="imageOpenFolder" class="imageOpenFolder" @click="openLocation(message.imagePath)" draggable="false"> +- <img src="./img/chathome/folder_grey.svg" alt="所在位置按钮" draggable="false"> </img> +- </div> +- <div v-if=" message.direction === 'cleft'" id="aiImageView" class="aiImageView" @click="aiImagePreview(message.imageSrc, message.imagePath)" draggable="false"> +- <img src="./img/view.svg" alt="查看按钮" draggable="false"> </img> +- </div> ++ ++ <button v-if="!message.imagePath && message.direction === 'cleft'" id="aiImageDownload" class="aiImageDownload" @click="downloadImage(message.imageSrc)" draggable="false"> ++ <img src="./img/chathome/download_white.svg" class="aiImageDownloadIcon"> ++ </button> ++ <div class="aiImageDownloadToolTip">下载</div> ++ ++ <button v-if="message.imagePath && message.direction === 'cleft'" id="imageOpenFolder" class="imageOpenFolder" @click="openLocation(message.imagePath)" draggable="false"> ++ <img src="./img/chathome/folder_white.svg" class="aiImageDownloadIcon"> ++ </button> ++ <div class="imageOpenFolderToolTip">所在位置</div> ++ ++ <button v-if=" message.direction === 'cleft'" id="aiImageView" class="aiImageView" @click="aiImagePreview(message.imageSrc, message.imagePath)" draggable="false"> ++ <img src="./img/chathome/view_white.svg" class="aiImageDownloadIcon"> ++ </button> ++ <div class="aiImageViewToolTip">查看</div> + </div> ++ + <div v-else class="aiImageDiv" id="aiImageDiv" v-show="message.direction === 'cleft' && message.drawMsg === true"> + <img id="waitImage" src="./img/loading.gif" alt="图片生成中..."></img> + </div> +@@ -1240,9 +1538,18 @@ + <img class="aiPreviewImage" id="aiPreviewImage" :src="aiImagePreviewSrc" alt="AI生成的图片预览"> + </div> + <div class="aiPreviewButtonDiv" id="aiPreviewButtonDiv"> +- <div @click="aiImagePreviewClose" draggable="false"><img src="./img/previewclose.svg" draggable="false" alt="预览关闭按钮"> </img></div> +- <div v-if="!imagePreviewPath" @click="downloadImage(aiImagePreviewSrc)" draggable="false"><img src="./img/previewdownload.svg" draggable="false" alt="预览下载按钮"> </img></div> +- <div v-else @click="openLocation(imagePreviewPath)" draggable="false"><img src="./img/chathome/folder_grey.svg" alt="所在位置按钮"> </img></div> ++ <button class="aiImagePreviewCloseBtn" @click="aiImagePreviewClose" draggable="false"> ++ <img src="./img/chathome/close_white.svg" :style="{width: '16px', height: '16px'}"> ++ </button> ++ <div class="aiImagePreviewCloseBtnToolTip">关闭</div> ++ <button v-if="!imagePreviewPath" class="aiImagePreviewDownloadBtn" @click="downloadImage(aiImagePreviewSrc)" draggable="false"> ++ <img src="./img/chathome/download_white.svg" :style="{width: '16px', height: '16px'}"> ++ </button> ++ <div class="aiImagePreviewDownloadBtnToolTip">下载</div> ++ <button v-if="imagePreviewPath" class="aiImagePreviewLocationBtn" @click="openLocation(imagePreviewPath)" draggable="false"> ++ <img src="./img/chathome/folder_white.svg" :style="{width: '16px', height: '16px'}"> ++ </button> ++ <div class="aiImagePreviewLocationBtnToolTip">所在位置</div> + </div> + </div> + <br v-if="message.direction === 'cleft' && message.isRightSendImage"> +@@ -2035,12 +2342,17 @@ + } + }, + changeFootIndex: function(tabId) { +- this.showChatVoice = false; +- this.footIndex = tabId; +- flush(100); +- new QWebChannel(qt.webChannelTransport, (channel) => { +- const channelMsg = channel.objects.channelMsg; +- channelMsg.sendDataCollect("homepage_voice_conversiation_button_click_event","homepage"); ++ if (tabId === 0) { ++ this.cancelVoiceInput(); ++ this.cancelSendVoice(); ++ } ++ this.showChatVoice = false; ++ this.footIndex = tabId; ++ ++ flush(100); ++ new QWebChannel(qt.webChannelTransport, (channel) => { ++ const channelMsg = channel.objects.channelMsg; ++ channelMsg.sendDataCollect("homepage_voice_conversiation_button_click_event","homepage"); + }) + + }, +diff --git a/res/msgpane.qrc b/res/msgpane.qrc +index 552c7ee..8778a98 100644 +--- a/res/msgpane.qrc ++++ b/res/msgpane.qrc +@@ -112,7 +112,6 @@ + <file>html/img/chathome/download_grey_hover.svg</file> + <file>html/img/chathome/download_grey_active.svg</file> + <file>html/img/chathome/download_active.svg</file> +- <file>html/img/chathome/cancel_hover_active.svg</file> + <file>html/img/chathome/cancel_grey.svg</file> + <file>html/img/chathome/cancel_grey_hover.svg</file> + <file>html/img/meeting_date.svg</file> +@@ -130,6 +129,11 @@ + <file>html/img/separator-right.svg</file> + <file>html/img/chathome/read_loading.svg</file> + <file>html/img/chathome/read_grey.svg</file> ++ <file>html/img/chathome/cancel_grey_active.svg</file> ++ <file>html/img/chathome/close_white.svg</file> ++ <file>html/img/chathome/download_white.svg</file> ++ <file>html/img/chathome/folder_white.svg</file> ++ <file>html/img/chathome/view_white.svg</file> + </qresource> + <qresource prefix="/icon"> + <file>icon/send.svg</file> diff -Nru kylin-aiassistant-2.0.0/debian/patches/series kylin-aiassistant-2.0.0/debian/patches/series --- kylin-aiassistant-2.0.0/debian/patches/series 2024-08-08 16:20:41.000000000 +0800 +++ kylin-aiassistant-2.0.0/debian/patches/series 2024-10-17 14:22:58.000000000 +0800 @@ -115,3 +115,6 @@ 0115-161-I9QV7H.patch 0116-162-fix-bug-IAD20H-29308-AI-AI.patch 0117-163.patch +0118-168-fix-bug-IALTBR-AI.patch +0119-170-IA7XFN-29308-AI.patch +0120-188-AI-bug-fix-bug-I9QV2C-I9QUZL.patch