ukui-menu/0004-7-close-cd-128489.patch

2602 lines
116 KiB
Diff
Raw Normal View History

2023-02-20 09:49:52 +08:00
From: cckylin-cibot <cckylin-cibot@kylinos.cn>
Date: Tue, 12 Jul 2022 06:56:36 +0000
Subject: =?utf-8?b?ITcg6LCD5pW05YWo5bGP5byA5aeL6I+c5Y2V5Yid5aeL5YyW5Luj56CB?=
=?utf-8?b?57uT5p6EICogY2xvc2UtY2QgMTI4NDg5IOWFqOWxj+WwhuafkOS4quW6lOeUqA==?=
=?utf-8?b?6K6+572u5Li64oCc5Zu65a6a5Yiw5omA5pyJ6L2v5Lu24oCd77yM5pu05o2i5byA?=
=?utf-8?b?5aeL6I+c5Y2V5o6S5bqP5qih5byP77yM5byA5aeL6I+c5Y2V6Zeq6YCAICog5Zu6?=
=?utf-8?b?5a6a5YWo5bGP55S15rqQ5Y+z6ZSu6I+c5Y2V5L2N572uICog5aKe5Yqg5YWo5bGP?=
=?utf-8?b?5byA5aeL6I+c5Y2V5LiL5ouJ5oyJ6ZKu5peL6L2s5pWI5p6c77yb5aKe5Yqg5YWo?=
=?utf-8?b?5bGP5byA5aeL6I+c5Y2V54K55Ye756m655m95Yy65Z+f6YCA5Ye6?=
---
.../BuriedPoint/buriedpointdatasend.cpp | 78 ---
src/BackProcess/BuriedPoint/buriedpointdatasend.h | 29 --
src/BackProcess/backprocess.pri | 6 +-
src/QtSingleApplication/qtsingleapplication.cpp | 3 +
src/UserInterface/ListView/fulllistview.cpp | 1 +
src/UserInterface/ListView/klistview.cpp | 16 +-
src/UserInterface/ListView/klistview.h | 1 +
src/UserInterface/ListView/listview.cpp | 8 +-
src/UserInterface/ListView/rightlistview.cpp | 35 +-
src/UserInterface/ListView/rightlistview.h | 2 +
.../RightClickMenu/rightclickmenu.cpp | 9 +-
src/UserInterface/RightClickMenu/rightclickmenu.h | 2 +-
src/UserInterface/ViewItem/full_item_delegate.cpp | 8 +-
src/UserInterface/ViewItem/itemdelegate.cpp | 5 +
src/UserInterface/ViewItem/right_item_delegate.cpp | 8 +-
src/UserInterface/Widget/full_commonuse_widget.cpp | 20 +-
src/UserInterface/Widget/full_function_widget.cpp | 22 +-
src/UserInterface/Widget/full_letter_widget.cpp | 22 +-
.../Widget/full_searchresult_widget.cpp | 26 +-
src/UserInterface/full_mainwindow.cpp | 258 ++++++----
src/UserInterface/full_mainwindow.h | 21 +-
src/UserInterface/mainwindow.cpp | 551 +++++++++++----------
src/UserInterface/mainwindow.h | 12 +
src/UtilityFunction/Style/style.cpp | 4 +-
src/UtilityFunction/utility.h | 20 -
translations/ukui-menu_bo.qm | 1 -
translations/ukui-menu_bo.ts | 67 ++-
translations/ukui-menu_tr.qm | Bin 2709 -> 0 bytes
translations/ukui-menu_tr.ts | 67 ++-
translations/ukui-menu_zh_CN.qm | Bin 2320 -> 0 bytes
translations/ukui-menu_zh_CN.ts | 75 ++-
32 files changed, 694 insertions(+), 685 deletions(-)
delete mode 100644 src/BackProcess/BuriedPoint/buriedpointdatasend.cpp
delete mode 100644 src/BackProcess/BuriedPoint/buriedpointdatasend.h
delete mode 100755 translations/ukui-menu_bo.qm
delete mode 100755 translations/ukui-menu_tr.qm
delete mode 100755 translations/ukui-menu_zh_CN.qm
diff --git a/src/BackProcess/BuriedPoint/buriedpointdatasend.cpp b/src/BackProcess/BuriedPoint/buriedpointdatasend.cpp
deleted file mode 100644
index a35411f..0000000
--- a/src/BackProcess/BuriedPoint/buriedpointdatasend.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-#include "buriedpointdatasend.h"
-#include <QHostInfo>
-#include <QString>
-#include <QJsonObject>
-#include <QJsonArray>
-#include <QJsonDocument>
-#include <QDateTime>
-#include <QTimeZone>
-
-Q_GLOBAL_STATIC(BuriedPointDataSend, buriedPointDataSend)
-
-BuriedPointDataSend::BuriedPointDataSend()
-{
- QString path = QDir::homePath() + "/.config/ukui/menuUploadMessage/";
-// m_sendDataInterface = new KUploadMessage(getpid());
-// m_sendDataInterface->initUploadInterface("ukui-menu", "menuData", path);
-}
-
-BuriedPointDataSend::~BuriedPointDataSend()
-{
-// if (m_sendDataInterface != nullptr) {
-// delete m_sendDataInterface;
-// m_sendDataInterface = nullptr;
-// }
-}
-
-BuriedPointDataSend *BuriedPointDataSend::getInstance()
-{
- return buriedPointDataSend();
-}
-
-QString BuriedPointDataSend::getCurrentTime()
-{
- QString tempDateTimeStr;
- QDateTime tempDateTime = QDateTime::currentDateTime().toTimeZone(QTimeZone(8 * 3600));
- tempDateTimeStr = tempDateTime.toString("yyyy-MM-dd HH:mm:ss.zzz");
- return tempDateTimeStr;
-}
-
-void BuriedPointDataSend::setPoint(const pointDataStruct &data)
-{
-// int curNum = 1;
-// QStringList applist = QStringList();
-// QString keyValue = data.module + data.function;
-
-// if (m_functionCount.keys().contains(keyValue)) {
-// curNum = m_functionCount.value(keyValue);
-// curNum ++;
-// }
-
-// m_functionCount.insert(keyValue, curNum);
-
-// if (!data.otherFunction.isEmpty()) {
-// if (m_applist.keys().contains(keyValue)) {
-// applist = m_applist.value(keyValue);
-// }
-
-// applist.append(data.otherFunction.at(0));
-// m_applist.insert(keyValue, applist);
-// }
-
-// QString time = getCurrentTime();
-// QJsonObject jsonObj;
-// QJsonArray otherFunction = QJsonArray::fromStringList(data.otherFunction);
-// jsonObj.insert("module", QJsonValue(data.module));
-// jsonObj.insert("function", QJsonValue(data.function));
-// jsonObj.insert("functionNum", QJsonValue(QString::number(curNum)));
-// jsonObj.insert("otherFunction", otherFunction);
-// jsonObj.insert("errorLevel", QJsonValue(data.errorLevel));
-// jsonObj.insert("errorOutput", QJsonValue(data.errorOutput));
-// jsonObj.insert("createTimeStamp", QJsonValue(time));//注意该字段名称不能修改否则会报invalid
-// // 将数据转化为QString
-// QString informationData(QJsonDocument(jsonObj).toJson(QJsonDocument::Compact));
-// qDebug() << "jsonObj:" << jsonObj;
-// m_sendDataInterface->uploadMessage(informationData);
-}
-
-
diff --git a/src/BackProcess/BuriedPoint/buriedpointdatasend.h b/src/BackProcess/BuriedPoint/buriedpointdatasend.h
deleted file mode 100644
index 55aa510..0000000
--- a/src/BackProcess/BuriedPoint/buriedpointdatasend.h
+++ /dev/null
@@ -1,29 +0,0 @@
-#ifndef BURIEDPOINTDATASEND_H
-#define BURIEDPOINTDATASEND_H
-
-#include <QObject>
-#include <QDateTime>
-#include <QDir>
-#include "src/UtilityFunction/utility.h"
-#include "unistd.h"
-//#include "kuploadmessage.h"
-
-class BuriedPointDataSend : public QObject
-{
- Q_OBJECT
-public:
- BuriedPointDataSend();
- ~BuriedPointDataSend();
-
- static BuriedPointDataSend *getInstance();
-
- void setPoint(const pointDataStruct &data);
-
-private:
- QString getCurrentTime();
- QHash<QString, int> m_functionCount;
- QHash<QString, QStringList> m_applist;
-// KUploadMessage *m_sendDataInterface = nullptr;
-};
-
-#endif // BURIEDPOINTDATASEND_H
diff --git a/src/BackProcess/backprocess.pri b/src/BackProcess/backprocess.pri
index 929a1a9..060c9d4 100755
--- a/src/BackProcess/backprocess.pri
+++ b/src/BackProcess/backprocess.pri
@@ -25,8 +25,7 @@ HEADERS += \
$$PWD/Search/searchappthread.h \
$$PWD/XEventMonitor/xeventmonitor.h \
$$PWD/tablet/getmodeldata.h \
- $$PWD/tablet/pagemanager.h \
- $$PWD/BuriedPoint/buriedpointdatasend.h
+ $$PWD/tablet/pagemanager.h
SOURCES += \
$$PWD/DBus/dbus-adaptor.cpp \
@@ -43,8 +42,7 @@ SOURCES += \
$$PWD/Search/searchappthread.cpp \
$$PWD/XEventMonitor/xeventmonitor.cpp \
$$PWD/tablet/getmodeldata.cpp \
- $$PWD/tablet/pagemanager.cpp \
- $$PWD/BuriedPoint/buriedpointdatasend.cpp
+ $$PWD/tablet/pagemanager.cpp
INCLUDEPATH += $$PWD/../
diff --git a/src/QtSingleApplication/qtsingleapplication.cpp b/src/QtSingleApplication/qtsingleapplication.cpp
index 961677e..e3ba444 100755
--- a/src/QtSingleApplication/qtsingleapplication.cpp
+++ b/src/QtSingleApplication/qtsingleapplication.cpp
@@ -347,16 +347,19 @@ QWidget *QtSingleApplication::activationWindow() const
void QtSingleApplication::activateWindow()
{
if (actWin) {
+ myDebug() << "单例触发activateWindow";
if (!g_projectCodeName.contains("V10SP1-edu")) {
MainWindow *w = qobject_cast<MainWindow *>(actWin);
if (this->applicationState() & Qt::ApplicationInactive) {
+ myDebug() << "单例内触发开始菜单显示";
actWin->setWindowState(actWin->windowState() & ~Qt::WindowMinimized);
// actWin->raise();
// actWin->showNormal();
// actWin->activateWindow();
w->showWindow();
} else {
+ myDebug() << "单例内触发开始菜单隐藏";
actWin->setWindowState(actWin->windowState() & Qt::WindowMinimized);
w->hideWindow();
}
diff --git a/src/UserInterface/ListView/fulllistview.cpp b/src/UserInterface/ListView/fulllistview.cpp
index 3206c8a..17124b8 100755
--- a/src/UserInterface/ListView/fulllistview.cpp
+++ b/src/UserInterface/ListView/fulllistview.cpp
@@ -52,6 +52,7 @@ void FullListView::initWidget()
this->setMouseTracking(true);
this->setMovement(QListView::Static);
this->setEditTriggers(QAbstractItemView::NoEditTriggers);
+ setItemAlignment(Qt::AlignCenter);
this->setGridSize(QSize(Style::m_applistGridSizeWidth, Style::m_applistGridSizeWidth));
this->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu);
this->setFrameShape(QFrame::NoFrame);//移除边框
diff --git a/src/UserInterface/ListView/klistview.cpp b/src/UserInterface/ListView/klistview.cpp
index 012b52a..b927ba2 100755
--- a/src/UserInterface/ListView/klistview.cpp
+++ b/src/UserInterface/ListView/klistview.cpp
@@ -60,22 +60,30 @@ void KListView::paintEvent(QPaintEvent *e)
QListView::paintEvent(e);
}
+void KListView::mouseMoveEvent(QMouseEvent *e)
+{
+ this->clearFocus();
+}
+
void KListView::mousePressEvent(QMouseEvent *event)
{
if (!(this->indexAt(event->pos()).isValid()) && event->button() == Qt::LeftButton) {
Q_EMIT sendHideMainWindowSignal();
} else {
pressApp = listmodel->data(this->indexAt(event->pos()), Qt::DisplayRole);
- return QListView::mousePressEvent(event);
}
+ return QListView::mousePressEvent(event);
}
void KListView::rightClickedSlot(const QPoint &pos)
{
- Q_UNUSED(pos)
-
if (!(this->selectionModel()->selectedIndexes().isEmpty())) {
- QModelIndex index = this->currentIndex();
+
+ QModelIndex index = indexAt(pos);
+ if(!index.isValid()) {
+ return;
+ }
+
QVariant var = listmodel->data(index, Qt::DisplayRole);
QStringList strlist = var.value<QStringList>();
diff --git a/src/UserInterface/ListView/klistview.h b/src/UserInterface/ListView/klistview.h
index 1d86cce..e932fd2 100755
--- a/src/UserInterface/ListView/klistview.h
+++ b/src/UserInterface/ListView/klistview.h
@@ -23,6 +23,7 @@ public:
protected:
void paintEvent(QPaintEvent *e);
void mousePressEvent(QMouseEvent *event);
+ void mouseMoveEvent(QMouseEvent *e);
public:
void addData(QStringList data);
void updateData(QStringList data);
diff --git a/src/UserInterface/ListView/listview.cpp b/src/UserInterface/ListView/listview.cpp
index ff6b421..78ed0a3 100755
--- a/src/UserInterface/ListView/listview.cpp
+++ b/src/UserInterface/ListView/listview.cpp
@@ -21,7 +21,6 @@
#include "utility.h"
#include <QDebug>
#include <QDesktopServices>
-#include "buriedpointdatasend.h"
ListView::ListView(QWidget *parent/*, int width, int height, int module*/):
KListView(parent)
@@ -109,12 +108,7 @@ void ListView::onClicked(QModelIndex index)
Q_EMIT sendAppClassificationBtnClicked();
} else {
execApp(desktopfp);
- pointDataStruct pointData;
- pointData.module = "mainWindow/execApplication";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- pointData.otherFunction.append(desktopfp);
- BuriedPointDataSend::getInstance()->setPoint(pointData);
+ Q_EMIT sendHideMainWindowSignal();
}
}
}
diff --git a/src/UserInterface/ListView/rightlistview.cpp b/src/UserInterface/ListView/rightlistview.cpp
index e8dec33..7725222 100755
--- a/src/UserInterface/ListView/rightlistview.cpp
+++ b/src/UserInterface/ListView/rightlistview.cpp
@@ -44,7 +44,7 @@ void RightListView::initWidget()
viewport()->setAutoFillBackground(false);
this->setSelectionMode(QAbstractItemView::SingleSelection);
this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
- this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
+ this->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded);
this->setViewMode(QListView::IconMode);
this->setContextMenuPolicy(Qt::CustomContextMenu);
this->setResizeMode(QListView::Adjust);
@@ -52,8 +52,9 @@ void RightListView::initWidget()
this->setMouseTracking(true);
this->setMovement(QListView::Static);
this->setEditTriggers(QAbstractItemView::NoEditTriggers);
- this->setGridSize(QSize(107, 107));
+ this->setGridSize(QSize(105, 105));
this->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu);
+ this->verticalScrollBar()->setProperty("drawScrollBarGroove", false);
this->setFrameShape(QFrame::NoFrame);//移除边框
connect(this, &RightListView::customContextMenuRequested, this, &RightListView::rightClickedSlot);
connect(this, &RightListView::clicked, this, &RightListView::onClicked);
@@ -92,6 +93,18 @@ void RightListView::selectFirstItem()
void RightListView::paintEvent(QPaintEvent *e)
{
+ //滚动条
+ QPalette p = this->verticalScrollBar()->palette();
+ QColor color;
+
+ if (g_curStyle == "ukui-dark") {
+ color = QColor("#26FFFFFF");
+ } else {
+ color = QColor("#1A000000");
+ }
+
+ p.setColor(QPalette::Active, QPalette::Button, color);
+ this->verticalScrollBar()->setPalette(p);
QListView::paintEvent(e);
}
@@ -113,6 +126,17 @@ void RightListView::keyPressEvent(QKeyEvent *e)
}
}
+void RightListView::onClicked(QModelIndex index)
+{
+ Q_EMIT sendHideMainWindowSignal();
+ QVariant var = listmodel->data(index, Qt::DisplayRole);
+ QString desktopfp = var.value<QStringList>().at(0);
+ if (var.isValid()) {
+ QString desktopfp = var.value<QString>();
+ execApp(desktopfp);
+ }
+}
+
void RightListView::changeStyleColor(const QColor &color)
{
m_styleColor = color;
@@ -122,4 +146,11 @@ void RightListView::enterEvent(QEvent *e)
{
Q_UNUSED(e);
this->selectionModel()->clear();
+ this->verticalScrollBar()->setVisible(true);
+}
+
+void RightListView::leaveEvent(QEvent *e)
+{
+ Q_UNUSED(e);
+ this->verticalScrollBar()->setVisible(false);
}
diff --git a/src/UserInterface/ListView/rightlistview.h b/src/UserInterface/ListView/rightlistview.h
index c75e0cc..b09c361 100755
--- a/src/UserInterface/ListView/rightlistview.h
+++ b/src/UserInterface/ListView/rightlistview.h
@@ -27,6 +27,7 @@ protected:
void dropEvent(QDropEvent *event);
void enterEvent(QEvent *e);
void paintEvent(QPaintEvent *e);
+ void leaveEvent(QEvent *e);
private:
RightClickMenu *menu = nullptr; //右键菜单
@@ -42,6 +43,7 @@ public Q_SLOTS:
// void rightClickedSlot(const QPoint &pos);//右键菜单
void selectFirstItem();
void changeStyleColor(const QColor &color);
+ void onClicked(QModelIndex index);
Q_SIGNALS:
diff --git a/src/UserInterface/RightClickMenu/rightclickmenu.cpp b/src/UserInterface/RightClickMenu/rightclickmenu.cpp
index 45f7b46..f274607 100755
--- a/src/UserInterface/RightClickMenu/rightclickmenu.cpp
+++ b/src/UserInterface/RightClickMenu/rightclickmenu.cpp
@@ -261,7 +261,7 @@ int RightClickMenu::showAppBtnMenu(const QPoint &pos, QString desktopfp)
return m_actionNumber;
}
-int RightClickMenu::showShutdownMenu(const QPoint &pos)
+int RightClickMenu::showShutdownMenu(const QPoint &pos, const bool &isFullWind)
{
m_actionNumber = 0;
MenuBox m_showShutMenu;
@@ -315,7 +315,12 @@ int RightClickMenu::showShutdownMenu(const QPoint &pos)
m_showShutMenu.setAttribute(Qt::WA_TranslucentBackground);
m_showShutMenu.setAttribute(Qt::WA_DeleteOnClose);
m_showShutMenu.raise();
- m_showShutMenu.exec(pos);
+ if (isFullWind) {
+ m_showShutMenu.exec(QPoint(pos.x() - m_showShutMenu.sizeHint().width(), pos.y() - m_showShutMenu.sizeHint().height()));
+ } else {
+ m_showShutMenu.exec(pos);
+ }
+
myDebug() << "RightClickMenu::showShutdownMenu()";
return m_actionNumber;
}
diff --git a/src/UserInterface/RightClickMenu/rightclickmenu.h b/src/UserInterface/RightClickMenu/rightclickmenu.h
index a96c65d..4075294 100755
--- a/src/UserInterface/RightClickMenu/rightclickmenu.h
+++ b/src/UserInterface/RightClickMenu/rightclickmenu.h
@@ -65,7 +65,7 @@ public:
* @brief Displays the power right-click menu
* @return return action number
*/
- int showShutdownMenu(const QPoint &pos);
+ int showShutdownMenu(const QPoint &pos, const bool &isFullWind);
/**
* @brief Displays other application right-click menus
* @param desktopfp: Application desktop file
diff --git a/src/UserInterface/ViewItem/full_item_delegate.cpp b/src/UserInterface/ViewItem/full_item_delegate.cpp
index 9dc4076..5e5c358 100755
--- a/src/UserInterface/ViewItem/full_item_delegate.cpp
+++ b/src/UserInterface/ViewItem/full_item_delegate.cpp
@@ -42,7 +42,7 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
rect.setWidth(option.rect.width());
rect.setHeight(option.rect.height());
//QPainterPath画圆角矩形
- const qreal radius = 4;
+ const qreal radius = 26;
QPainterPath path;
path.moveTo(rect.topRight() - QPointF(radius, 0));
path.lineTo(rect.topLeft() + QPointF(radius, 0));
@@ -118,8 +118,8 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
QString appname = pUkuiMenuInterface->getAppName(desktopfp);
QRect iconRect;
QRect textRect;
- iconRect = QRect(/*rect.x()+66*/rect.x() + (rect.width() - Style::AppListIconSize) / 2,
- /*rect.y()+40*/rect.y() + 40,
+ iconRect = QRect(rect.x() + (rect.width() - Style::AppListIconSize) / 2,
+ rect.y() + 20,
Style::AppListIconSize,
Style::AppListIconSize);
icon.paint(painter, iconRect);
@@ -217,5 +217,5 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
QSize FullItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
{
- return QSize(/*Style::AppListItemSizeWidth*/220, /*Style::AppListItemSizeWidth*/220);
+ return QSize(Style::AppListItemSizeWidth, Style::AppListItemSizeWidth);
}
diff --git a/src/UserInterface/ViewItem/itemdelegate.cpp b/src/UserInterface/ViewItem/itemdelegate.cpp
index aa7f169..7effecd 100755
--- a/src/UserInterface/ViewItem/itemdelegate.cpp
+++ b/src/UserInterface/ViewItem/itemdelegate.cpp
@@ -172,6 +172,11 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
if ((option.state & QStyle::State_MouseOver) || (option.state & QStyle::State_HasFocus)) {
painter->drawPixmap(rect.width() - 25, rect.y() + 15, pixmap);
+ if (module == 1) {
+ QToolTip::showText(QCursor::pos(), tr("Open the function sort menu"));
+ } else if (module == 2) {
+ QToolTip::showText(QCursor::pos(), tr("Open the alphabetical menu"));
+ }
}
painter->restore();
diff --git a/src/UserInterface/ViewItem/right_item_delegate.cpp b/src/UserInterface/ViewItem/right_item_delegate.cpp
index a67a6ca..b50de3d 100755
--- a/src/UserInterface/ViewItem/right_item_delegate.cpp
+++ b/src/UserInterface/ViewItem/right_item_delegate.cpp
@@ -18,10 +18,10 @@ void RightItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt
if (index.isValid()) {
QStyleOptionViewItem viewOption(option);//用来在视图中画一个item
QRectF rect;
- rect.setX(option.rect.x());
- rect.setY(option.rect.y());
- rect.setWidth(option.rect.width());
- rect.setHeight(option.rect.height());
+ rect.setX(option.rect.x() + 1);
+ rect.setY(option.rect.y() + 1);
+ rect.setWidth(option.rect.width() - 2);
+ rect.setHeight(option.rect.height() - 2);
//QPainterPath画圆角矩形
const qreal radius = 10;
QPainterPath path;
diff --git a/src/UserInterface/Widget/full_commonuse_widget.cpp b/src/UserInterface/Widget/full_commonuse_widget.cpp
index 5dd8db5..c02f317 100755
--- a/src/UserInterface/Widget/full_commonuse_widget.cpp
+++ b/src/UserInterface/Widget/full_commonuse_widget.cpp
@@ -20,7 +20,6 @@
#include <QDesktopWidget>
#include "style.h"
#include "utility.h"
-#include "buriedpointdatasend.h"
#include <QDebug>
FullCommonUseWidget::FullCommonUseWidget(QWidget *parent) :
@@ -132,23 +131,14 @@ void FullCommonUseWidget::initVerticalScrollBar()
void FullCommonUseWidget::on_powerOffButton_clicked()
{
QProcess::startDetached(QString("ukui-session-tools"));
- pointDataStruct pointData;
- pointData.module = "fullWindow/commonUseWidget/powerOffButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullCommonUseWidget::on_powerOffButton_customContextMenuRequested(const QPoint &pos)
{
+ Q_UNUSED(pos);
RightClickMenu m_otherMenu(this);
- m_otherMenu.showShutdownMenu(m_powerOffButton->mapToGlobal(pos));
+ m_otherMenu.showShutdownMenu(m_powerOffButton->mapToGlobal(QPoint(0, 45)), true);
myDebug() << "SideBarWidget::shutdownBtnRightClickSlot() 开始";
- pointDataStruct pointData;
- pointData.module = "fullWindow/commonUseWidget/powerOffButton";
- pointData.function = "RightClicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullCommonUseWidget::initAppListWidget()
@@ -201,12 +191,6 @@ void FullCommonUseWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
- pointDataStruct pointData;
- pointData.module = "fullWindow/commonUseWidget/execApplication";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- pointData.otherFunction[0] = desktopfp;
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullCommonUseWidget::selectFirstItem()
diff --git a/src/UserInterface/Widget/full_function_widget.cpp b/src/UserInterface/Widget/full_function_widget.cpp
index 55ed6c0..253f210 100755
--- a/src/UserInterface/Widget/full_function_widget.cpp
+++ b/src/UserInterface/Widget/full_function_widget.cpp
@@ -23,7 +23,6 @@
#include <QDebug>
#include <QSvgRenderer>
#include <QPainter>
-#include "buriedpointdatasend.h"
FullFunctionWidget::FullFunctionWidget(QWidget *parent) :
QWidget(parent)
@@ -152,23 +151,14 @@ void FullFunctionWidget::initVerticalScrollBar()
void FullFunctionWidget::on_powerOffButton_clicked()
{
QProcess::startDetached(QString("ukui-session-tools"));
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullFunctionWidget/powerOffButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullFunctionWidget::on_powerOffButton_customContextMenuRequested(const QPoint &pos)
{
+ Q_UNUSED(pos);
RightClickMenu m_otherMenu(this);
- m_otherMenu.showShutdownMenu(m_powerOffButton->mapToGlobal(pos));
+ m_otherMenu.showShutdownMenu(m_powerOffButton->mapToGlobal(QPoint(0, 45)), true);
myDebug() << "SideBarWidget::shutdownBtnRightClickSlot() 开始";
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullFunctionWidget/powerOffButton";
- pointData.function = "RightClicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
@@ -229,12 +219,6 @@ void FullFunctionWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullFunctionWidget/execApplication";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- pointData.otherFunction[0] = desktopfp;
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullFunctionWidget::on_setAreaScrollBarValue(int value)
@@ -248,6 +232,8 @@ void FullFunctionWidget::on_setAreaScrollBarValue(int value)
*/
void FullFunctionWidget::updateAppListView()
{
+ disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged,
+ this, &FullFunctionWidget::valueChangedSlot);
//刷新应用列表界面
QLayoutItem *child;
diff --git a/src/UserInterface/Widget/full_letter_widget.cpp b/src/UserInterface/Widget/full_letter_widget.cpp
index 353cbef..96daac2 100755
--- a/src/UserInterface/Widget/full_letter_widget.cpp
+++ b/src/UserInterface/Widget/full_letter_widget.cpp
@@ -19,7 +19,6 @@
#include "full_letter_widget.h"
#include <QDebug>
#include <syslog.h>
-#include "buriedpointdatasend.h"
FullLetterWidget::FullLetterWidget(QWidget *parent) :
QWidget(parent)
@@ -146,23 +145,14 @@ void FullLetterWidget::initVerticalScrollBar()
void FullLetterWidget::on_powerOffButton_clicked()
{
QProcess::startDetached(QString("ukui-session-tools"));
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullLetterWidget/powerOffButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullLetterWidget::on_powerOffButton_customContextMenuRequested(const QPoint &pos)
{
+ Q_UNUSED(pos);
RightClickMenu m_otherMenu(this);
- m_otherMenu.showShutdownMenu(m_powerOffButton->mapToGlobal(pos));
+ m_otherMenu.showShutdownMenu(m_powerOffButton->mapToGlobal(QPoint(0, 45)), true);
qDebug() << "SideBarWidget::shutdownBtnRightClickSlot() 开始";
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullLetterWidget/powerOffButton";
- pointData.function = "RightClicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullLetterWidget::setFocusToThis()
@@ -233,12 +223,6 @@ void FullLetterWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullLetterWidget/execApplication";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- pointData.otherFunction[0] = desktopfp;
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullLetterWidget::on_setAreaScrollBarValue(int value)
@@ -252,6 +236,8 @@ void FullLetterWidget::on_setAreaScrollBarValue(int value)
*/
void FullLetterWidget::updateAppListView()
{
+ disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged,
+ this, &FullLetterWidget::valueChangedSlot);
//刷新应用列表界面
QLayoutItem *child;
diff --git a/src/UserInterface/Widget/full_searchresult_widget.cpp b/src/UserInterface/Widget/full_searchresult_widget.cpp
index 259986b..be5dd6b 100755
--- a/src/UserInterface/Widget/full_searchresult_widget.cpp
+++ b/src/UserInterface/Widget/full_searchresult_widget.cpp
@@ -20,7 +20,6 @@
#include "style.h"
#include "utility.h"
#include <QDebug>
-#include "buriedpointdatasend.h"
FullSearchResultWidget::FullSearchResultWidget(QWidget *parent) :
QWidget(parent)
@@ -121,23 +120,14 @@ void FullSearchResultWidget::initVerticalScrollBar()
void FullSearchResultWidget::on_powerOffButton_clicked()
{
QProcess::startDetached(QString("ukui-session-tools"));
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullSearchResultWidget/powerOffButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullSearchResultWidget::on_powerOffButton_customContextMenuRequested(const QPoint &pos)
{
+ Q_UNUSED(pos);
RightClickMenu m_otherMenu(this);
- m_otherMenu.showShutdownMenu(m_powerOffButton->mapToGlobal(pos));
+ m_otherMenu.showShutdownMenu(m_powerOffButton->mapToGlobal(QPoint(0, 45)), true);
myDebug() << "SideBarWidget::shutdownBtnRightClickSlot() 开始";
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullSearchResultWidget/powerOffButton";
- pointData.function = "RightClicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullSearchResultWidget::initAppListWidget()
@@ -164,12 +154,6 @@ void FullSearchResultWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
- pointDataStruct pointData;
- pointData.module = "fullWindow/FullLetterWidget/execApplication";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- pointData.otherFunction[0] = desktopfp;
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullSearchResultWidget::updateAppListView(QVector<QStringList> arg)
@@ -241,11 +225,7 @@ void FullSearchResultWidget::selectFirstItemTab()
void FullSearchResultWidget::repaintWidget()
{
m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight);
- m_scrollAreaWidLayout->removeWidget(m_listView);
- m_listView->setParent(nullptr);
- delete m_listView;
- initAppListWidget();
- fillAppList();
+ resizeScrollAreaControls();
m_scrollAreaWidHeight = m_scrollAreaWid->height() + 1;
initVerticalScrollBar();
}
diff --git a/src/UserInterface/full_mainwindow.cpp b/src/UserInterface/full_mainwindow.cpp
index 5e63110..4e6ea9a 100755
--- a/src/UserInterface/full_mainwindow.cpp
+++ b/src/UserInterface/full_mainwindow.cpp
@@ -3,7 +3,6 @@
#include <QAction>
#include <QTranslator>
#include "utility.h"
-#include "buriedpointdatasend.h"
FullMainWindow::FullMainWindow(QWidget *parent) :
QMainWindow(parent)
@@ -11,12 +10,24 @@ FullMainWindow::FullMainWindow(QWidget *parent) :
this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
this->setAttribute(Qt::WA_TranslucentBackground, true);
this->setAutoFillBackground(false);
- m_searchAppThread = new SearchAppThread;
Style::initWidStyle();
- m_buttonStyle = QString("%1{border-radius:24px; background: rgba(255, 255, 255, 0.1);}"
- "%1:hover {border-radius:24px; background: rgba(255, 255, 255, 0.2);}"
- "%1:pressed {border-radius:24px; background: rgba(255, 255, 255, 0.3);}");
this->setFixedSize(Style::m_availableScreenWidth, Style::m_availableScreenHeight);
+ initLayout();
+ initSearchUI();
+ initButtonUI();
+ initAppListUI();
+ initMenu();
+ initTabOrder();
+ changeStyle();
+ initConnect();
+}
+
+FullMainWindow::~FullMainWindow()
+{
+}
+
+void FullMainWindow::initLayout()
+{
centralwidget = new QWidget(this);
verticalLayout = new QVBoxLayout(centralwidget);
verticalLayout->setSpacing(0);
@@ -28,6 +39,45 @@ FullMainWindow::FullMainWindow(QWidget *parent) :
bottomHorizonLayout = new QHBoxLayout();
bottomHorizonLayout->setSpacing(0);
bottomHorizonLayout->setContentsMargins(0, 0, 0, 0);
+}
+
+void FullMainWindow::initButtonUI()
+{
+ m_buttonStyle = QString("%1{border-radius:24px; background: rgba(255, 255, 255, 0.1);}"
+ "%1:hover {border-radius:24px; background: rgba(255, 255, 255, 0.2);}"
+ "%1:pressed {border-radius:24px; background: rgba(255, 255, 255, 0.3);}");
+ m_lineEdit->setFocusPolicy(Qt::StrongFocus);
+ horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
+ m_fullSelectToolButton = new QPushButton(centralwidget);
+// fullSelectToolButton->setStyleSheet(m_buttonStyle.arg("QToolButton"));
+ m_fullSelectToolButton->setObjectName(QString::fromUtf8("fullSelectToolButton"));
+ m_fullSelectToolButton->setMinimumSize(QSize(48, 48));
+ m_fullSelectToolButton->installEventFilter(this);
+ m_fullSelectToolButton->setFocus();
+ QIcon selectIcon;
+ selectIcon.addFile(QString::fromUtf8(":/data/img/mainviewwidget/full-function.svg"), QSize(), QIcon::Normal, QIcon::Off);
+ m_fullSelectToolButton->setIcon(selectIcon);
+
+ m_fullSelectMenuButton = new RotationLabel(this);
+ m_fullSelectMenuButton->installEventFilter(this);
+ m_fullSelectMenuButton->setStyleSheet("background: transparent;");
+ m_fullSelectMenuButton->setFixedSize(QSize(16, 34));
+ m_fullSelectMenuButton->setAcceptDrops(true);
+ m_fullSelectMenuButton->setFocusPolicy(Qt::StrongFocus);
+ m_fullSelectMenuButton->setIcon(QPixmap(":/data/img/mainviewwidget/DM-arrow-2x.png"));
+ QPalette palete;
+ palete.setColor(QPalette::NoRole, Qt::white);
+ m_fullSelectMenuButton->setPalette(palete);
+ m_minPushButton = new QPushButton(centralwidget);
+ m_minPushButton->setObjectName(QString::fromUtf8("minPushButton"));
+ m_minPushButton->setFixedSize(QSize(48, 48));
+ m_minPushButton->setFlat(true);
+ m_minPushButton->installEventFilter(this);
+}
+
+void FullMainWindow::initSearchUI()
+{
+ m_searchAppThread = new SearchAppThread;
m_lineEdit = new QLineEdit(centralwidget);
m_lineEdit->setFixedSize(QSize(372, 36));
m_lineEdit->setLayoutDirection(Qt::LeftToRight);
@@ -89,34 +139,10 @@ FullMainWindow::FullMainWindow(QWidget *parent) :
queryWidLayout->addWidget(m_queryIcon);
queryWidLayout->addWidget(m_queryText);
queryWidLayout->setAlignment(Qt::AlignCenter);
- m_lineEdit->setFocusPolicy(Qt::StrongFocus);
- horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
- fullSelectToolButton = new QPushButton(centralwidget);
-// fullSelectToolButton->setStyleSheet(m_buttonStyle.arg("QToolButton"));
- fullSelectToolButton->setObjectName(QString::fromUtf8("fullSelectToolButton"));
- fullSelectToolButton->setMinimumSize(QSize(48, 48));
- fullSelectToolButton->installEventFilter(this);
- fullSelectToolButton->setFocus();
- QIcon selectIcon;
- selectIcon.addFile(QString::fromUtf8(":/data/img/mainviewwidget/full-function.svg"), QSize(), QIcon::Normal, QIcon::Off);
- fullSelectToolButton->setIcon(selectIcon);
- fullSelectMenuButton = new QToolButton(centralwidget);
- QIcon menuBottonIcon;
- fullSelectMenuButton->setStyleSheet("QToolButton{background:transparent;}");
- fullSelectMenuButton->setProperty("useIconHighlightEffect", 0x0);
- fullSelectMenuButton->setFixedSize(20, 20);
- fullSelectMenuButton->setObjectName(QString::fromUtf8("fullSelectMenuButton"));
- fullSelectMenuButton->setPopupMode(QToolButton::InstantPopup);
- fullSelectMenuButton->setToolButtonStyle(Qt::ToolButtonIconOnly);
- fullSelectMenuButton->installEventFilter(this);
- QPalette palete;
- palete.setColor(QPalette::NoRole, Qt::white);
- fullSelectMenuButton->setPalette(palete);
- minPushButton = new QPushButton(centralwidget);
- minPushButton->setObjectName(QString::fromUtf8("minPushButton"));
- minPushButton->setFixedSize(QSize(48, 48));
- minPushButton->setFlat(true);
- minPushButton->installEventFilter(this);
+}
+
+void FullMainWindow::initAppListUI()
+{
m_fullStackedWidget = new QStackedWidget(centralwidget);
m_fullCommonPage = new FullCommonUseWidget(m_fullStackedWidget);
m_fullStackedWidget->addWidget(m_fullCommonPage);
@@ -131,38 +157,48 @@ FullMainWindow::FullMainWindow(QWidget *parent) :
topHorizontalLayout->addItem(horizontalSpacer);
topHorizontalLayout->addWidget(m_lineEdit);
topHorizontalLayout->addItem(horizontalSpacer_2);
- topHorizontalLayout->addWidget(fullSelectToolButton);
- topHorizontalLayout->addWidget(fullSelectMenuButton);
- topHorizontalLayout->addWidget(minPushButton);
+ topHorizontalLayout->addWidget(m_fullSelectToolButton);
+ topHorizontalLayout->addWidget(m_fullSelectMenuButton);
+ topHorizontalLayout->addWidget(m_minPushButton);
verticalLayout->addLayout(topHorizontalLayout);
verticalLayout->addLayout(bottomHorizonLayout);
this->setCentralWidget(centralwidget);
m_fullStackedWidget->setCurrentIndex(0);
- m_menu = new QMenu;
- m_allAction = new QAction(m_menu);
- m_letterAction = new QAction(m_menu);
- m_funcAction = new QAction(m_menu);
+}
+
+void FullMainWindow::initMenu()
+{
+ m_dropDownMenu = new MenuBox(this);
+ m_dropDownMenu->setFixedWidth(Style::DropMenuWidth);
+ m_allAction = new QAction(m_dropDownMenu);
+ m_letterAction = new QAction(m_dropDownMenu);
+ m_funcAction = new QAction(m_dropDownMenu);
m_allAction->setText(tr("All"));
m_allAction->setCheckable(true);
m_letterAction->setText(tr("Letter"));
m_letterAction->setCheckable(true);
m_funcAction->setText(tr("Function"));
m_funcAction->setCheckable(true);
- m_menu->addAction(m_allAction);
- m_menu->addAction(m_letterAction);
- m_menu->addAction(m_funcAction);
+ m_dropDownMenu->addAction(m_allAction);
+ m_dropDownMenu->addAction(m_letterAction);
+ m_dropDownMenu->addAction(m_funcAction);
m_allAction->setChecked(true);
- fullSelectMenuButton->setMenu(m_menu);
- setTabOrder(m_lineEdit, fullSelectToolButton);
- setTabOrder(fullSelectToolButton, fullSelectMenuButton);
- setTabOrder(fullSelectMenuButton, minPushButton);
- changeStyle();
+}
+
+void FullMainWindow::initTabOrder()
+{
+ setTabOrder(m_lineEdit, m_fullSelectToolButton);
+ setTabOrder(m_fullSelectToolButton, m_fullSelectMenuButton);
+ setTabOrder(m_fullSelectMenuButton, m_minPushButton);
+}
+
+void FullMainWindow::initConnect()
+{
connect(m_lineEdit, &QLineEdit::textChanged, this, &FullMainWindow::searchAppSlot);
connect(this, &FullMainWindow::sendSearchKeyword, m_searchAppThread, &SearchAppThread::recvSearchKeyword);
connect(m_searchAppThread, &SearchAppThread::sendSearchResult, this, &FullMainWindow::recvSearchResult);
- connect(minPushButton, &QPushButton::clicked, this, &FullMainWindow::on_minPushButton_clicked);
- connect(fullSelectToolButton, &QToolButton::clicked, this, &FullMainWindow::on_fullSelectToolButton_clicked);
- connect(fullSelectMenuButton, &QToolButton::triggered, this, &FullMainWindow::on_fullSelectMenuButton_triggered);
+ connect(m_minPushButton, &QPushButton::clicked, this, &FullMainWindow::on_minPushButton_clicked);
+ connect(m_fullSelectToolButton, &QToolButton::clicked, this, &FullMainWindow::on_fullSelectToolButton_clicked);
connect(m_fullFunctionPage, &FullFunctionWidget::setFocusToSideWin, this, &FullMainWindow::setFocusToButton);
connect(m_fullLetterPage, &FullLetterWidget::setFocusToSideWin, this, &FullMainWindow::setFocusToButton);
connect(m_fullCommonPage, &FullCommonUseWidget::setFocusToSideWin, this, &FullMainWindow::setFocusToButton);
@@ -171,12 +207,15 @@ FullMainWindow::FullMainWindow(QWidget *parent) :
connect(this, &FullMainWindow::sendSetFocusToLet, m_fullLetterPage, &FullLetterWidget::setFocusToThis);
connect(this, &FullMainWindow::sendSetFocusToFun, m_fullFunctionPage, &FullFunctionWidget::setFocusToThis);
connect(this, &FullMainWindow::sendSetFocusToResult, m_fullResultPage, &FullSearchResultWidget::selectFirstItemTab);
- connect(fullSelectMenuButton, &QToolButton::clicked, this, &FullMainWindow::on_fullSelectMenuButton_clicked);
+// connect(m_fullSelectMenuButton, &QToolButton::clicked, this, &FullMainWindow::on_fullSelectMenuButton_clicked);
connect(m_fullCommonPage, &FullCommonUseWidget::sendUpdateOtherView, this, &FullMainWindow::sendUpdateOtherView);
-}
-
-FullMainWindow::~FullMainWindow()
-{
+ connect(m_fullCommonPage, &FullCommonUseWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide);
+ connect(m_fullFunctionPage, &FullFunctionWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide);
+ connect(m_fullLetterPage, &FullLetterWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide);
+ connect(m_dropDownMenu, &MenuBox::triggered, this, &FullMainWindow::on_fullSelectMenuButton_triggered);
+ connect(m_dropDownMenu, &MenuBox::sendMainWinActiveSignal, [ = ]() {
+ selectIconAnimation(false);
+ });
}
void FullMainWindow::updateView()
@@ -217,20 +256,15 @@ void FullMainWindow::changeStyle()
m_buttonStyle = QString("%1{border-radius:24px; background:" + buttonColorDefault + ";}"
"%1:hover {border-radius:24px; background:" + buttonColorHover + ";}"
"%1:pressed {border-radius:24px; background:" + buttonColorPress + ";}");
- fullSelectToolButton->setStyleSheet(m_buttonStyle.arg("QPushButton"));
- fullSelectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/full-drop-down.svg", false));
- minPushButton->setIcon(getCurIcon(":/data/img/mainviewwidget/full-min.svg", false));
- minPushButton->setProperty("useIconHighlightEffect", 0x0);
+ m_fullSelectToolButton->setStyleSheet(m_buttonStyle.arg("QPushButton"));
+ m_fullSelectMenuButton->setIcon(QPixmap(":/data/img/mainviewwidget/DM-arrow-2x.png"));
+ m_minPushButton->setIcon(getCurIcon(":/data/img/mainviewwidget/full-min.svg", false));
+ m_minPushButton->setProperty("useIconHighlightEffect", 0x0);
}
void FullMainWindow::on_minPushButton_clicked()
{
Q_EMIT showNormalWindow();
- pointDataStruct pointData;
- pointData.module = "fullWindow/minPushButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void FullMainWindow::paintEvent(QPaintEvent *event)
@@ -252,15 +286,10 @@ void FullMainWindow::paintEvent(QPaintEvent *event)
bool FullMainWindow::eventFilter(QObject *watched, QEvent *event)
{
if (watched == m_lineEdit) {
- isSearching = true;
+ m_isSearching = true;
char style[200];
if (event->type() == QEvent::FocusIn) {
- pointDataStruct pointData;
- pointData.module = "fullWindow/Search";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
sprintf(style, "QLineEdit{border:2px solid %s;background-color:%s;border-radius:17px;color:#ffffff;}",
QueryLineEditClickedBorder, QueryLineEditClickedBackground);
m_lineEdit->setStyleSheet(style);
@@ -293,7 +322,7 @@ bool FullMainWindow::eventFilter(QObject *watched, QEvent *event)
}
}
- if (watched == minPushButton) {
+ if (watched == m_minPushButton) {
if (event->type() == QEvent::KeyPress) {
QKeyEvent *ke = (QKeyEvent *)event;
@@ -313,7 +342,7 @@ bool FullMainWindow::eventFilter(QObject *watched, QEvent *event)
}
}
- if (watched == minPushButton || watched == fullSelectToolButton || watched == fullSelectMenuButton) {
+ if (watched == m_minPushButton || watched == m_fullSelectToolButton || watched == m_fullSelectMenuButton) {
if (event->type() == QEvent::KeyPress) {
QKeyEvent *ke = (QKeyEvent *)event;
@@ -324,15 +353,60 @@ bool FullMainWindow::eventFilter(QObject *watched, QEvent *event)
}
}
+ if (watched == m_fullSelectMenuButton) {
+ if (event->type() == QEvent::MouseButtonPress) {
+ selectIconAnimation(true);
+ return true;
+ }
+ }
+
return QWidget::eventFilter(watched, event);
}
+void FullMainWindow::iconAnimationFinished()
+{
+ m_dropDownMenu->raise();
+ m_dropDownMenu->exec(m_fullSelectMenuButton->mapToGlobal(QPoint(m_fullSelectMenuButton->width()
+ -Style::DropMenuWidth, 45)));
+}
+
+void FullMainWindow::selectIconAnimation(const bool &flag)
+{
+ iconAnimation = new QPropertyAnimation(m_fullSelectMenuButton, "rotation", this);
+
+ if (flag) {
+ connect(iconAnimation, &QPropertyAnimation::finished, this, &FullMainWindow::iconAnimationFinished);
+
+ if (m_fullSelectMenuButton->property("rotation") == 0) {
+ iconAnimation->setStartValue(0);
+ iconAnimation->setEndValue(-180);
+ }
+ } else {
+ if (m_fullSelectMenuButton->property("rotation") == -180) {
+ iconAnimation->setStartValue(-180);
+ iconAnimation->setEndValue(0);
+ }
+ }
+
+ iconAnimation->setEasingCurve(QEasingCurve::Linear);
+ iconAnimation->setDuration(300);
+ iconAnimation->start(QPropertyAnimation::DeleteWhenStopped);
+}
+
+void FullMainWindow::fullWindowHide()
+{
+ this->hide();
+}
+
void FullMainWindow::resetEditline()
{
m_lineEdit->clear();
m_lineEdit->clearFocus();
- m_queryWid->layout()->addWidget(m_queryIcon);
- m_queryWid->layout()->addWidget(m_queryText);
+ m_fullSelectToolButton->setFocus();
+ if (m_queryWid->layout()->children().isEmpty()) {
+ m_queryWid->layout()->addWidget(m_queryIcon);
+ m_queryWid->layout()->addWidget(m_queryText);
+ }
m_queryIcon->adjustSize();
m_queryText->adjustSize();
m_queryWid->layout()->setAlignment(Qt::AlignCenter);
@@ -357,10 +431,10 @@ bool FullMainWindow::event(QEvent *event)
QKeyEvent *keyEvent = (QKeyEvent *) event;
if (keyEvent->key() == Qt::Key_Enter || keyEvent->key() == Qt::Key_Return) {
- if (fullSelectToolButton->hasFocus()) {
- fullSelectToolButton->click();
- } else if (fullSelectMenuButton->hasFocus()) {
- fullSelectMenuButton->click();
+ if (m_fullSelectToolButton->hasFocus()) {
+ m_fullSelectToolButton->click();
+ } else if (m_fullSelectMenuButton->hasFocus()) {
+ QApplication::postEvent(m_fullSelectMenuButton, new QEvent(QEvent::MouseButtonPress));
}
if (m_lineEdit->hasFocus()) {
@@ -406,6 +480,9 @@ void FullMainWindow::searchAppSlot(QString arg)
void FullMainWindow::mousePressEvent(QMouseEvent *event)
{
resetEditline();
+ if (event->button() == Qt::LeftButton) {
+ this->hide();
+ }
return QMainWindow::mousePressEvent(event);
}
@@ -418,7 +495,8 @@ void FullMainWindow::recvSearchResult(QVector<QStringList> arg)
void FullMainWindow::on_fullSelectToolButton_clicked()
{
resetEditline();
- fullSelectToolButton->setFocus();
+ m_fullSelectToolButton->setFocus();
+ selectIconAnimation(false);
if (m_fullStackedWidget->currentIndex() == 0) {
on_fullSelectMenuButton_triggered(m_letterAction);
@@ -436,45 +514,33 @@ void FullMainWindow::on_fullSelectMenuButton_clicked()
void FullMainWindow::on_fullSelectMenuButton_triggered(QAction *arg1)
{
- pointDataStruct pointData;
+ selectIconAnimation(false);
if (arg1 == m_allAction) {
m_fullStackedWidget->setCurrentIndex(0);
m_fullCommonPage->repaintWidget();
//fullCommonPage->updateListView();
m_state = 0;
- fullSelectToolButton->setIcon(QIcon(":/data/img/mainviewwidget/full-all-2x.png"));
+ m_fullSelectToolButton->setIcon(QIcon(":/data/img/mainviewwidget/full-all-2x.png"));
m_allAction->setChecked(true);
m_letterAction->setChecked(false);
m_funcAction->setChecked(false);
- pointData.module = "fullWindow/fullSelectMenuButton";
- pointData.function = "AllSelect";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
} else if (arg1 == m_letterAction) {
m_fullStackedWidget->setCurrentIndex(1);
m_fullLetterPage->repaintWidget();
m_state = 1;
- fullSelectToolButton->setIcon(QIcon(":/data/img/mainviewwidget/full-letter.svg"));
+ m_fullSelectToolButton->setIcon(QIcon(":/data/img/mainviewwidget/full-letter.svg"));
m_allAction->setChecked(false);
m_letterAction->setChecked(true);
m_funcAction->setChecked(false);
- pointData.module = "fullWindow/fullSelectMenuButton";
- pointData.function = "letterSelect";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
} else if (arg1 == m_funcAction) {
m_fullStackedWidget->setCurrentIndex(2);
m_fullFunctionPage->repaintWidget();
m_state = 2;
- fullSelectToolButton->setIcon(QIcon(":/data/img/mainviewwidget/full-function.svg"));
+ m_fullSelectToolButton->setIcon(QIcon(":/data/img/mainviewwidget/full-function.svg"));
m_allAction->setChecked(false);
m_letterAction->setChecked(false);
m_funcAction->setChecked(true);
- pointData.module = "fullWindow/fullSelectMenuButton";
- pointData.function = "FunctionSelect";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
}
diff --git a/src/UserInterface/full_mainwindow.h b/src/UserInterface/full_mainwindow.h
index 3e41bb9..34a91ca 100755
--- a/src/UserInterface/full_mainwindow.h
+++ b/src/UserInterface/full_mainwindow.h
@@ -12,6 +12,7 @@
#include "full_letter_widget.h"
#include "searchappthread.h"
#include "full_searchresult_widget.h"
+#include "rotationlabel.h"
class FullMainWindow : public QMainWindow
{
@@ -44,6 +45,7 @@ private Q_SLOTS:
void recvSearchResult(QVector<QStringList> arg);
void setFocusToButton();
void on_fullSelectMenuButton_clicked();
+ void fullWindowHide();
protected:
@@ -52,6 +54,15 @@ protected:
bool eventFilter(QObject *watched, QEvent *event);
void mousePressEvent(QMouseEvent *event);
void changeStyle();
+ void initConnect();
+ void initTabOrder();
+ void initMenu();
+ void initAppListUI();
+ void initSearchUI();
+ void initButtonUI();
+ void initLayout();
+ void selectIconAnimation(const bool &flag);
+ void iconAnimationFinished();
private:
QAction *m_allAction = nullptr;
@@ -66,9 +77,9 @@ private:
QSpacerItem *horizontalSpacer;
QLineEdit *m_lineEdit;
QSpacerItem *horizontalSpacer_2;
- QPushButton *fullSelectToolButton;
- QToolButton *fullSelectMenuButton;
- QPushButton *minPushButton;
+ QPushButton *m_fullSelectToolButton;
+ RotationLabel *m_fullSelectMenuButton;
+ QPushButton *m_minPushButton;
QStackedWidget *m_fullStackedWidget;
FullCommonUseWidget *m_fullCommonPage;
@@ -81,8 +92,10 @@ private:
QWidget *m_queryWid = nullptr;
QLabel *m_queryIcon = nullptr;
QLabel *m_queryText = nullptr;
- bool isSearching = false;
+ bool m_isSearching = false;
QString m_buttonStyle;
+ QPropertyAnimation *iconAnimation = nullptr;
+ MenuBox *m_dropDownMenu = nullptr;
};
#endif // FULLMAINWINDOW_H
diff --git a/src/UserInterface/mainwindow.cpp b/src/UserInterface/mainwindow.cpp
index 984d9f0..d65d221 100755
--- a/src/UserInterface/mainwindow.cpp
+++ b/src/UserInterface/mainwindow.cpp
@@ -33,7 +33,6 @@
#include <QGroupBox>
#include <QEventLoop>
#include <QLabel>
-#include "buriedpointdatasend.h"
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent)
@@ -52,6 +51,235 @@ MainWindow::MainWindow(QWidget *parent) :
m_mainLeftVerticalLayout = new QVBoxLayout(m_viewWidget);
m_mainLeftVerticalLayout->setSpacing(9);
m_mainLeftVerticalLayout->setContentsMargins(8, 15, 4, 0);
+
+ initSearchUi();
+ initLeftWidget();
+ initRightWidgetButton();
+ initCollectWidget();
+ initRecentWidget();
+ initTabOrder();
+
+ m_softwareDbThread = new SoftwareDatabaseUpdateThread;
+ m_animationPage = new AnimationPage();
+ m_maxAnimation = new QPropertyAnimation(m_animationPage, "geometry", this);
+ m_minAnimation = new QPropertyAnimation(m_animationPage, "geometry", this);
+ m_searchAppThread = new SearchAppThread;
+ m_functionBtnWid = new FunctionButtonWidget(m_minFuncPage);
+ m_functionBtnWid->hide();
+ m_letterBtnWid = new LetterButtonWidget(m_minLetterPage);
+ m_letterBtnWid->hide();
+ m_enterAnimation = new QPropertyAnimation;
+ m_enterAnimation->setPropertyName(QString("geometry").toLocal8Bit());
+ m_leaveAnimation = new QPropertyAnimation;
+ m_leaveAnimation->setPropertyName(QString("geometry").toLocal8Bit());
+
+ //获取软件商店类别信号
+ QDBusConnection::sessionBus().connect("com.kylin.softwarecenter.getsearchresults",
+ "/com/kylin/softwarecenter/getsearchresults",
+ "com.kylin.getsearchresults",
+ "get_app_category_list_signal",
+ this,
+ SLOT(updateAppCategorySlot(QString))
+ );
+ setTabletModeFlag();
+ initUi();
+ registDbusServer();
+ initSignalConnect();
+ initGsettings();
+}
+
+MainWindow::~MainWindow()
+{
+ closeDataBase("MainThread");
+
+ if (m_animationPage != nullptr) {
+ delete m_animationPage;
+ m_animationPage = nullptr;
+ }
+}
+
+void MainWindow::setTabletModeFlag()
+{
+ QDBusConnection::sessionBus().connect("com.kylin.statusmanager.interface",
+ "/",
+ "com.kylin.statusmanager.interface",
+ "mode_change_signal",
+ this,
+ SLOT(tabletModeChangeSlot(bool)));
+ m_usrInterface = new QDBusInterface("com.kylin.statusmanager.interface",
+ "/",
+ "com.kylin.statusmanager.interface",
+ QDBusConnection::sessionBus(), this);
+ QDBusReply<bool> res = m_usrInterface->call("get_current_tabletmode");
+ if (res.isValid()) {
+ m_isTabletMode = res;
+ }
+}
+
+void MainWindow::registDbusServer()
+{
+ m_dbus = new DBus;
+ new MenuAdaptor(m_dbus);
+ m_fullWindow = new FullMainWindow;
+ QDBusConnection con = QDBusConnection::sessionBus();
+
+ if (!con.registerService("org.ukui.menu") ||
+ !con.registerObject("/org/ukui/menu", m_dbus)) {
+ qDebug() << "error:" << con.lastError().message();
+ }
+
+ connect(m_dbus, &DBus::sendReloadSignal, this, [ = ] {
+ updateView();
+ });
+ connect(m_dbus, &DBus::winKeyResponseSignal, this, [ = ] {
+
+ if (m_isTabletMode) {
+ return;
+ }
+
+ if (QGSettings::isSchemaInstalled(QString("org.ukui.session").toLocal8Bit()))
+ {
+ QGSettings gsetting(QString("org.ukui.session").toLocal8Bit());
+
+ if (gsetting.keys().contains("winKeyRelease"))
+ if (gsetting.get("winKeyRelease").toBool()) {
+ return;
+ }
+ }
+ if (QGSettings::isSchemaInstalled(QString("org.ukui.screenshot").toLocal8Bit()))
+ {
+ QGSettings gsetting(QString("org.ukui.screenshot").toLocal8Bit());
+
+ if (gsetting.keys().contains("isrunning"))
+ if (gsetting.get("isrunning").toBool()) {
+ return;
+ }
+ }
+
+ if (this->isVisible())
+ {
+ this->hide();
+ m_topStackedWidget->setCurrentIndex(0);
+ m_lineEdit->clear();
+ this->clearFocus();
+ m_isFullScreen = false;
+ } else if (m_fullWindow->isVisible())
+ {
+ m_fullWindow->hide();
+ m_fullWindow->clearFocus();
+ m_fullWindow->resetEditline();
+ m_isFullScreen = true;
+ } else
+ {
+ if (!m_isFullScreen) {
+ this->show();
+ setMinWindowPos();
+ this->raise();
+ this->activateWindow();
+ on_collectPushButton_clicked();
+ m_viewWidget->setFocus();
+ } else {
+ m_fullWindow->show();
+ setMaxWindowPos();
+ // fullWindow->raise();
+ m_fullWindow->activateWindow();
+ }
+ }
+ });
+
+ repaintWidget();
+}
+
+void MainWindow::initSignalConnect()
+{
+ connect(this, &MainWindow::sendClassificationbtnList, m_functionBtnWid, &FunctionButtonWidget::recvClassificationBtnList);
+ connect(this, &MainWindow::sendLetterClassificationList, m_letterBtnWid, &LetterButtonWidget::recvLetterBtnList);
+ // connect(m_functionBtnWid, &FunctionButtonWidget::sendFunctionBtnSignal,this,&FunctionWidget::recvFunctionBtnSignal);
+ connect(m_minFuncListView, &ListView::sendAppClassificationBtnClicked, this, &MainWindow::appClassificationBtnClickedSlot);
+ connect(m_minLetterListView, &ListView::sendAppClassificationBtnClicked, this, &MainWindow::appClassificationBtnClickedSlot);
+ connect(m_leaveAnimation, &QPropertyAnimation::finished, this, &MainWindow::animationFinishedSLot);
+ connect(m_enterAnimation, &QPropertyAnimation::finished, this, &MainWindow::animationFinishedSLot);
+ connect(m_functionBtnWid, &FunctionButtonWidget::sendFunctionBtnSignal, this, &MainWindow::recvFunctionBtnSignal);
+ connect(m_letterBtnWid, &LetterButtonWidget::sendLetterBtnSignal, this, &MainWindow::recvFunctionBtnSignal);
+ connect(m_functionBtnWid, &FunctionButtonWidget::sendResetFunctionPage, this, &MainWindow::resetFunctionPage);
+ connect(m_letterBtnWid, &LetterButtonWidget::sendResetLetterPage, this, &MainWindow::resetLetterPage);
+ connect(m_maxAnimation, &QPropertyAnimation::finished, this, &MainWindow::maxAnimationFinished);
+ connect(m_minAnimation, &QPropertyAnimation::finished, this, &MainWindow::minAnimationFinished);
+ connect(m_lineEdit, &QLineEdit::textChanged, this, &MainWindow::searchAppSlot);
+ connect(this, &MainWindow::sendSearchKeyword, m_searchAppThread, &SearchAppThread::recvSearchKeyword);
+ connect(m_searchAppThread, &SearchAppThread::sendSearchResult, this, &MainWindow::recvSearchResult);
+ connect(m_fullWindow, &FullMainWindow::showNormalWindow, this, &MainWindow::showNormalWindowSlot);
+ connect(m_fullWindow, &FullMainWindow::sendUpdateOtherView, this, &MainWindow::updateMinAllView);
+ connect(m_minSelectButton, &QToolButton::clicked, this, &MainWindow::on_minSelectButton_clicked);
+ connect(m_dropDownMenu, &MenuBox::triggered, this, &MainWindow::on_selectMenuButton_triggered);
+ connect(m_dropDownMenu, &MenuBox::sendMainWinActiveSignal, [ = ]() {
+ selectIconAnimation(false);
+ });
+ connect(m_powerOffButton, &QPushButton::customContextMenuRequested, this, &MainWindow::on_powerOffButton_customContextMenuRequested);
+ connect(m_powerOffButton, &QPushButton::clicked, this, &MainWindow::on_powerOffButton_clicked);
+ connect(m_cancelSearchPushButton, &QPushButton::clicked, this, &MainWindow::on_cancelSearchPushButton_clicked);
+ connect(m_searchPushButton, &QPushButton::clicked, this, &MainWindow::on_searchPushButton_clicked);
+ connect(m_minMaxChangeButton, &QPushButton::clicked, this, &MainWindow::on_minMaxChangeButton_clicked);
+ connect(m_minAllListView, &ListView::sendHideMainWindowSignal, this, &MainWindow::hideWindow);
+ connect(m_minFuncListView, &ListView::sendHideMainWindowSignal, this, &MainWindow::hideWindow);
+ connect(m_minLetterListView, &ListView::sendHideMainWindowSignal, this, &MainWindow::hideWindow);
+ connect(m_collectListView, &RightListView::sendHideMainWindowSignal, this, &MainWindow::hideWindow);
+// QDBusConnection::sessionBus().connect(DBUS_NAME, DBUS_PATH, DBUS_INTERFACE, QString("PanelGeometryRefresh"), this, SLOT(primaryScreenChangeSlot()));
+ connect(QApplication::desktop(), &QDesktopWidget::resized, this, &MainWindow::primaryScreenChangeSlot);
+ connect(QApplication::desktop(), &QDesktopWidget::primaryScreenChanged, this, &MainWindow::primaryScreenChangeSlot);
+ connect(QApplication::desktop(), &QDesktopWidget::screenCountChanged, this, &MainWindow::primaryScreenChangeSlot);
+
+ //监控应用进程开启
+ connect(KWindowSystem::self(), &KWindowSystem::windowAdded, [ = ](WId id) {
+ ConvertWinidToDesktop reply;
+ QString desktopfp = reply.tranIdToDesktop(id);
+
+ if (!desktopfp.isEmpty()) {
+ ViewOpenedSlot(desktopfp);
+ }
+ });
+}
+
+void MainWindow::initGsettings()
+{
+ //监听屏幕缩放
+ if (QGSettings::isSchemaInstalled(QString("org.ukui.SettingsDaemon.plugins.xsettings").toLocal8Bit())) {
+ QGSettings *m_gsetting = new QGSettings(QString("org.ukui.SettingsDaemon.plugins.xsettings").toLocal8Bit());
+ connect(m_gsetting, &QGSettings::changed, this, [ = ](const QString & key) {
+ if (key == "scalingFactor") {
+ repaintWidget();
+ }
+ });
+ }
+
+ if (QGSettings::isSchemaInstalled(QString("org.ukui.panel.settings").toLocal8Bit())) {
+ QGSettings *gsetting = new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit());
+ connect(gsetting, &QGSettings::changed,
+ this, &MainWindow::repaintWidget);
+ }
+
+ if (QGSettings::isSchemaInstalled(QString("org.ukui.style").toLocal8Bit())) {
+ QGSettings *gsetting = new QGSettings("org.ukui.style", QByteArray(), this);
+ connect(gsetting, &QGSettings::changed, [ = ](QString key) {
+ if ("systemFont" == key || "systemFontSize" == key) {
+ m_leftTopSearchHorizontalLayout->removeWidget(m_lineEdit);
+ m_leftTopSearchHorizontalLayout->removeWidget(m_cancelSearchPushButton);
+ m_lineEdit->setParent(nullptr);
+ m_leftTopSearchHorizontalLayout->addWidget(m_lineEdit);
+ m_leftTopSearchHorizontalLayout->addWidget(m_cancelSearchPushButton);
+ m_lineEdit->setPlaceholderText("搜索应用");
+ m_fullWindow->updateView();
+ }
+
+ if (key.contains(QString("styleName"))) {
+ changeStyle();
+ }
+ });
+ }
+}
+
+void MainWindow::initSearchUi()
+{
//搜索框部分
m_topStackedWidget = new QStackedWidget(m_viewWidget);
m_topStackedWidget->setFixedHeight(34);
@@ -68,9 +296,11 @@ MainWindow::MainWindow(QWidget *parent) :
m_searchPushButton->setFixedSize(QSize(26, 26));
m_searchPushButton->setIcon(getCurIcon(":/data/img/mainviewwidget/search.svg", true));
m_searchPushButton->installEventFilter(this);
+ m_searchPushButton->setToolTip(tr("Search"));
m_minSelectButton = new QPushButton(m_minMenuPage);
m_minSelectButton->setFixedSize(QSize(26, 26));
m_minSelectButton->setIcon(getCurIcon(":/data/img/mainviewwidget/DM-all.svg", true));
+ m_minSelectButton->setToolTip(tr("All"));
m_minSelectButton->installEventFilter(this);
m_selectMenuButton = new RotationLabel(m_minMenuPage);
m_selectMenuButton->installEventFilter(this);
@@ -96,6 +326,10 @@ MainWindow::MainWindow(QWidget *parent) :
m_cancelSearchPushButton->setIcon(getCurIcon(":/data/img/mainviewwidget/DM-close-2x.png", true));
m_topStackedWidget->addWidget(m_minMenuPage);
m_topStackedWidget->addWidget(m_minSearchPage);
+}
+
+void MainWindow::initLeftWidget()
+{
//左侧列表区
m_leftStackedWidget = new QStackedWidget(m_viewWidget);
m_leftStackedWidget->setFixedSize(QSize(300, Style::leftPageHeight));
@@ -126,6 +360,10 @@ MainWindow::MainWindow(QWidget *parent) :
m_minSearchResultListView->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight));
m_minSearchResultListView->installEventFilter(this);
m_leftStackedWidget->addWidget(m_minSearchResultPage);
+}
+
+void MainWindow::initRightWidgetButton()
+{
//右侧窗口
m_mainRightVerticalLayout = new QVBoxLayout();
m_mainRightVerticalLayout->setSpacing(0);
@@ -157,17 +395,21 @@ MainWindow::MainWindow(QWidget *parent) :
m_rightTopHorizontalLayout->addItem(m_horizontalSpacer_3);
m_rightTopHorizontalLayout->addWidget(m_minMaxChangeButton);
m_verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
+}
+
+void MainWindow::initCollectWidget()
+{
//右侧列表区
m_rightStackedWidget = new QStackedWidget(m_centralwidget);
- m_rightStackedWidget->setFixedSize(QSize(324, 490));
+ m_rightStackedWidget->setFixedSize(QSize(352, 490));
m_rightStackedWidget->setFocusPolicy(Qt::StrongFocus);
m_collectPage = new QWidget();
- m_collectPage->setFixedSize(QSize(324, 480));
+ m_collectPage->setFixedSize(QSize(332, 480));
m_rightCollectLayout = new QVBoxLayout(m_collectPage);
m_rightCollectLayout->setContentsMargins(0, 18, 0, 0);
//收藏视图
m_collectListView = new RightListView(m_collectPage);
- m_collectListView->setFixedSize(QSize(324, 428));
+ m_collectListView->setFixedSize(QSize(332, 420));
m_collectListView->setAcceptDrops(true);
m_collectListView->setAutoFillBackground(false);
m_collectListView->setProperty("showDropIndicator", QVariant(true));
@@ -180,9 +422,13 @@ MainWindow::MainWindow(QWidget *parent) :
m_collectListView->setSelectionRectVisible(true);
m_collectListView->installEventFilter(this);
m_recentPage = new QWidget();
- m_recentPage->setFixedSize(QSize(324, 490));
+ m_recentPage->setFixedSize(QSize(352, 490));
m_rightRecentLayout = new QVBoxLayout(m_recentPage);
m_rightRecentLayout->setContentsMargins(0, 20, 0, 0);
+}
+
+void MainWindow::initRecentWidget()
+{
//最近视图
m_recentListView = new ListView(m_recentPage);
m_recentListView->installEventFilter(this);
@@ -248,202 +494,16 @@ MainWindow::MainWindow(QWidget *parent) :
m_leftStackedWidget->setCurrentIndex(0);
m_minMaxChangeButton->setDefault(false);
m_rightStackedWidget->setCurrentIndex(0);
- //设置tab切换顺序
- // setTabOrder(widget, searchPushButton);
+}
+
+void MainWindow::initTabOrder()
+{
setTabOrder(m_searchPushButton, m_minSelectButton);
setTabOrder(m_minSelectButton, m_selectMenuButton);
setTabOrder(m_selectMenuButton, m_collectPushButton);
setTabOrder(m_collectPushButton, m_recentPushButton);
setTabOrder(m_recentPushButton, m_minMaxChangeButton);
setTabOrder(m_minMaxChangeButton, m_powerOffButton);
- m_softwareDbThread = new SoftwareDatabaseUpdateThread;
- //获取软件商店类别信号
- QDBusConnection::sessionBus().connect("com.kylin.softwarecenter.getsearchresults",
- "/com/kylin/softwarecenter/getsearchresults",
- "com.kylin.getsearchresults",
- "get_app_category_list_signal",
- this,
- SLOT(updateAppCategorySlot(QString))
- );
- initUi();
- m_functionBtnWid = new FunctionButtonWidget(m_minFuncPage);
- m_functionBtnWid->hide();
- m_letterBtnWid = new LetterButtonWidget(m_minLetterPage);
- m_letterBtnWid->hide();
- m_enterAnimation = new QPropertyAnimation;
- m_enterAnimation->setPropertyName(QString("geometry").toLocal8Bit());
- m_leaveAnimation = new QPropertyAnimation;
- m_leaveAnimation->setPropertyName(QString("geometry").toLocal8Bit());
- connect(this, &MainWindow::sendClassificationbtnList, m_functionBtnWid, &FunctionButtonWidget::recvClassificationBtnList);
- connect(this, &MainWindow::sendLetterClassificationList, m_letterBtnWid, &LetterButtonWidget::recvLetterBtnList);
- // connect(m_functionBtnWid, &FunctionButtonWidget::sendFunctionBtnSignal,this,&FunctionWidget::recvFunctionBtnSignal);
- connect(m_minFuncListView, &ListView::sendAppClassificationBtnClicked, this, &MainWindow::appClassificationBtnClickedSlot);
- connect(m_minLetterListView, &ListView::sendAppClassificationBtnClicked, this, &MainWindow::appClassificationBtnClickedSlot);
- connect(m_leaveAnimation, &QPropertyAnimation::finished, this, &MainWindow::animationFinishedSLot);
- connect(m_enterAnimation, &QPropertyAnimation::finished, this, &MainWindow::animationFinishedSLot);
- connect(m_functionBtnWid, &FunctionButtonWidget::sendFunctionBtnSignal, this, &MainWindow::recvFunctionBtnSignal);
- connect(m_letterBtnWid, &LetterButtonWidget::sendLetterBtnSignal, this, &MainWindow::recvFunctionBtnSignal);
- connect(m_functionBtnWid, &FunctionButtonWidget::sendResetFunctionPage, this, &MainWindow::resetFunctionPage);
- connect(m_letterBtnWid, &LetterButtonWidget::sendResetLetterPage, this, &MainWindow::resetLetterPage);
- m_searchAppThread = new SearchAppThread;
- m_dbus = new DBus;
- new MenuAdaptor(m_dbus);
- m_fullWindow = new FullMainWindow;
- QDBusConnection con = QDBusConnection::sessionBus();
-
- if (!con.registerService("org.ukui.menu") ||
- !con.registerObject("/org/ukui/menu", m_dbus)) {
- qDebug() << "error:" << con.lastError().message();
- }
-
- connect(m_dbus, &DBus::sendReloadSignal, this, [ = ] {
- updateView();
- });
- connect(m_dbus, &DBus::winKeyResponseSignal, this, [ = ] {
- if (QGSettings::isSchemaInstalled(QString("org.ukui.session").toLocal8Bit()))
- {
- QGSettings gsetting(QString("org.ukui.session").toLocal8Bit());
-
- if (gsetting.keys().contains("winKeyRelease"))
- if (gsetting.get("winKeyRelease").toBool()) {
- return;
- }
- }
- if (QGSettings::isSchemaInstalled(QString("org.ukui.screenshot").toLocal8Bit()))
- {
- QGSettings gsetting(QString("org.ukui.screenshot").toLocal8Bit());
-
- if (gsetting.keys().contains("isrunning"))
- if (gsetting.get("isrunning").toBool()) {
- return;
- }
- }
-
- if (this->isVisible())
- {
- this->hide();
- this->clearFocus();
- m_isFullScreen = false;
- pointDataStruct pointData;
- pointData.module = "mainWindow";
- pointData.function = "winHide";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
- } else if (m_fullWindow->isVisible())
- {
- m_fullWindow->hide();
- m_fullWindow->clearFocus();
- pointDataStruct pointData;
- pointData.module = "fullWindow";
- pointData.function = "winHide";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
- m_isFullScreen = true;
- } else
- {
- if (!m_isFullScreen) {
- this->show();
- setMinWindowPos();
- this->raise();
- this->activateWindow();
- pointDataStruct pointData;
- pointData.module = "mainWindow";
- pointData.function = "winShow";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
- on_collectPushButton_clicked();
- m_viewWidget->setFocus();
- } else {
- m_fullWindow->show();
- setMaxWindowPos();
-// fullWindow->raise();
- m_fullWindow->activateWindow();
- pointDataStruct pointData;
- pointData.module = "fullWindow";
- pointData.function = "winShow";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
- }
- }
- });
- m_animationPage = new AnimationPage();
- m_maxAnimation = new QPropertyAnimation(m_animationPage, "geometry", this);
- m_minAnimation = new QPropertyAnimation(m_animationPage, "geometry", this);
- connect(m_maxAnimation, &QPropertyAnimation::finished, this, &MainWindow::maxAnimationFinished);
- connect(m_minAnimation, &QPropertyAnimation::finished, this, &MainWindow::minAnimationFinished);
- connect(m_lineEdit, &QLineEdit::textChanged, this, &MainWindow::searchAppSlot);
- connect(this, &MainWindow::sendSearchKeyword, m_searchAppThread, &SearchAppThread::recvSearchKeyword);
- connect(m_searchAppThread, &SearchAppThread::sendSearchResult, this, &MainWindow::recvSearchResult);
- connect(m_fullWindow, &FullMainWindow::showNormalWindow, this, &MainWindow::showNormalWindowSlot);
- connect(m_fullWindow, &FullMainWindow::sendUpdateOtherView, this, &MainWindow::updateMinAllView);
- connect(m_minSelectButton, &QToolButton::clicked, this, &MainWindow::on_minSelectButton_clicked);
- connect(m_dropDownMenu, &MenuBox::triggered, this, &MainWindow::on_selectMenuButton_triggered);
- connect(m_dropDownMenu, &MenuBox::sendMainWinActiveSignal, [ = ]() {
- m_selectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/downarrow.svg", true)
- .pixmap(QSize(Style::miniIconSize, Style::miniIconSize)));
- selectIconAnimation(false);
- });
- connect(m_powerOffButton, &QPushButton::customContextMenuRequested, this, &MainWindow::on_powerOffButton_customContextMenuRequested);
- connect(m_powerOffButton, &QPushButton::clicked, this, &MainWindow::on_powerOffButton_clicked);
- connect(m_cancelSearchPushButton, &QPushButton::clicked, this, &MainWindow::on_cancelSearchPushButton_clicked);
- connect(m_searchPushButton, &QPushButton::clicked, this, &MainWindow::on_searchPushButton_clicked);
- connect(m_minMaxChangeButton, &QPushButton::clicked, this, &MainWindow::on_minMaxChangeButton_clicked);
- QDBusConnection::sessionBus().connect(DBUS_NAME, DBUS_PATH, DBUS_INTERFACE, QString("PanelGeometryRefresh"), this, SLOT(primaryScreenChangeSlot()));
-
- //监听屏幕缩放
- if (QGSettings::isSchemaInstalled(QString("org.ukui.SettingsDaemon.plugins.xsettings").toLocal8Bit())) {
- QGSettings *m_gsetting = new QGSettings(QString("org.ukui.SettingsDaemon.plugins.xsettings").toLocal8Bit());
- connect(m_gsetting, &QGSettings::changed, this, [ = ](const QString & key) {
- if (key == "scalingFactor") {
- repaintWidget();
- }
- });
- }
-
- if (QGSettings::isSchemaInstalled(QString("org.ukui.panel.settings").toLocal8Bit())) {
- QGSettings *gsetting = new QGSettings(QString("org.ukui.panel.settings").toLocal8Bit());
- connect(gsetting, &QGSettings::changed,
- this, &MainWindow::repaintWidget);
- }
-
- if (QGSettings::isSchemaInstalled(QString("org.ukui.style").toLocal8Bit())) {
- QGSettings *gsetting = new QGSettings("org.ukui.style", QByteArray(), this);
- connect(gsetting, &QGSettings::changed, [ = ](QString key) {
- if ("systemFont" == key || "systemFontSize" == key) {
- m_leftTopSearchHorizontalLayout->removeWidget(m_lineEdit);
- m_leftTopSearchHorizontalLayout->removeWidget(m_cancelSearchPushButton);
- m_lineEdit->setParent(nullptr);
- m_leftTopSearchHorizontalLayout->addWidget(m_lineEdit);
- m_leftTopSearchHorizontalLayout->addWidget(m_cancelSearchPushButton);
- m_lineEdit->setPlaceholderText(QApplication::translate("MainWindow", "Search application"));
- m_fullWindow->updateView();
- }
-
- if (key.contains(QString("styleName"))) {
- changeStyle();
- }
- });
- }
-
- //监控应用进程开启
- connect(KWindowSystem::self(), &KWindowSystem::windowAdded, [ = ](WId id) {
- ConvertWinidToDesktop reply;
- QString desktopfp = reply.tranIdToDesktop(id);
-
- if (!desktopfp.isEmpty()) {
- ViewOpenedSlot(desktopfp);
- }
- });
-}
-
-MainWindow::~MainWindow()
-{
- closeDataBase("MainThread");
-
- if (m_animationPage != nullptr) {
- delete m_animationPage;
- m_animationPage = nullptr;
- }
}
void MainWindow::initUi()
@@ -509,6 +569,10 @@ void MainWindow::initUi()
connect(m_desktopWatcher, &DesktopWatcher::directoryChangedSignal, this, &MainWindow::updateView);
connect(m_desktopWatcher, &DesktopWatcher::updateRecentList, this, &MainWindow::updateRecentView);
connect(this, &MainWindow::sendStyleChangeSignal, m_viewWidget, &MainViewWidget::styleChangeSlot);
+ connect(m_minAllListView, &ListView::sendHideMainWindowSignal, this, &MainWindow::hideWindow);
+ connect(m_minFuncListView, &ListView::sendHideMainWindowSignal, this, &MainWindow::hideWindow);
+ connect(m_minLetterListView, &ListView::sendHideMainWindowSignal, this, &MainWindow::hideWindow);
+ connect(m_minSearchResultListView, &ListView::sendHideMainWindowSignal, this, &MainWindow::hideWindow);
changeStyle();
}
@@ -585,6 +649,10 @@ void MainWindow::changeStyle()
void MainWindow::paintEvent(QPaintEvent *event)
{
double transparency = getTransparency();
+ QColor curColor = m_windowColor;
+ if ( transparency == 1) {
+ curColor.setAlpha(255);
+ }
QRect rect = this->rect();
QPainterPath path;
// rect.setTopLeft(QPoint(rect.x()+320,rect.y()));
@@ -601,11 +669,10 @@ void MainWindow::paintEvent(QPaintEvent *event)
path.quadTo(rect.bottomRight(), rect.bottomRight() + QPointF(0, -radius));
path.lineTo(rect.topRight() + QPointF(0, radius));
path.quadTo(rect.topRight(), rect.topRight() + QPointF(-radius, -0));
- painter.setBrush(m_windowColor);
+ painter.setBrush(curColor);
painter.setPen(Qt::transparent);
painter.setOpacity(transparency);
painter.drawPath(path);
- // setProperty("blurRegion", QRegion(path.toFillPolygon().toPolygon()));
KWindowEffects::enableBlurBehind(this->winId(), true, QRegion(path.toFillPolygon().toPolygon()));
QMainWindow::paintEvent(event);
}
@@ -618,6 +685,8 @@ bool MainWindow::event(QEvent *event)
if (QApplication::activeWindow() != this) {
qDebug() << " * 鼠标点击窗口外部事件";
this->hide();
+ m_topStackedWidget->setCurrentIndex(0);
+ m_lineEdit->clear();
}
}
@@ -1040,7 +1109,6 @@ void MainWindow::searchAppSlot(QString arg)
}
void MainWindow::on_selectMenuButton_triggered(QAction *arg1)
{
- pointDataStruct pointData;
m_selectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/downarrow.svg", true).pixmap(QSize(Style::miniIconSize, Style::miniIconSize)));
selectIconAnimation(false);
@@ -1048,38 +1116,29 @@ void MainWindow::on_selectMenuButton_triggered(QAction *arg1)
m_leftStackedWidget->setCurrentIndex(0);
m_state = 0;
m_minSelectButton->setIcon(getCurIcon(":/data/img/mainviewwidget/DM-all.svg", true));
+ m_minSelectButton->setToolTip(tr("All"));
m_minSelectTextLabel->setText(tr("All"));
m_allAction->setChecked(true);
m_letterAction->setChecked(false);
m_funcAction->setChecked(false);
- pointData.module = "mainWindow/selectMenuButton";
- pointData.function = "AllSelect";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
} else if (arg1 == m_letterAction) {
m_leftStackedWidget->setCurrentIndex(1);
m_state = 1;
m_minSelectButton->setIcon(getCurIcon(":/data/img/mainviewwidget/DM-letter.svg", true));
+ m_minSelectButton->setToolTip(tr("Letter"));
m_minSelectTextLabel->setText(tr("Letter"));
m_allAction->setChecked(false);
m_letterAction->setChecked(true);
m_funcAction->setChecked(false);
- pointData.module = "mainWindow/selectMenuButton";
- pointData.function = "LetterSelect";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
} else if (arg1 == m_funcAction) {
m_leftStackedWidget->setCurrentIndex(2);
m_state = 2;
m_minSelectButton->setIcon(getCurIcon(":/data/img/mainviewwidget/DM-function.svg", true));
+ m_minSelectButton->setToolTip(tr("Function"));
m_minSelectTextLabel->setText(tr("Function"));
m_allAction->setChecked(false);
m_letterAction->setChecked(false);
m_funcAction->setChecked(true);
- pointData.module = "mainWindow/selectMenuButton";
- pointData.function = "FunctionSelect";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
}
void MainWindow::updateCollectView()
@@ -1129,10 +1188,6 @@ void MainWindow::databaseThreadCloseSlot()
void MainWindow::on_collectPushButton_clicked()
{
m_rightStackedWidget->setCurrentIndex(0);
- pointDataStruct pointData;
- pointData.module = "mainWindow/collectPushButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
m_collectPushButton->setStyleSheet("color:#3790FA;");
QFont collectFont(QGuiApplication::font().family(), QGuiApplication::font().pointSize() + 2);
@@ -1156,11 +1211,6 @@ void MainWindow::on_recentPushButton_clicked()
m_collectPushButton->setFont(collectFont);
m_recentPushButton->setStyleSheet("color:#3790FA");
- pointDataStruct pointData;
- pointData.module = "mainWindow/recentPushButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
-
QFont recentFont(QGuiApplication::font().family(), QGuiApplication::font().pointSize() + 2);
m_recentPushButton->setFont(recentFont);
updateRecentView();
@@ -1169,21 +1219,11 @@ void MainWindow::on_cancelSearchPushButton_clicked()
{
m_topStackedWidget->setCurrentIndex(0);
m_lineEdit->clear();
- pointDataStruct pointData;
- pointData.module = "mainWindow/cancelSearchPushButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void MainWindow::on_searchPushButton_clicked()
{
m_topStackedWidget->setCurrentIndex(1);
m_lineEdit->setFocus();
- pointDataStruct pointData;
- pointData.module = "mainWindow/searchPushButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void MainWindow::on_minMaxChangeButton_clicked()
{
@@ -1208,60 +1248,40 @@ void MainWindow::on_minMaxChangeButton_clicked()
m_maxAnimation->setDuration(260);
m_maxAnimation->start();
this->hide();
- pointDataStruct pointData;
- pointData.module = "mainWindow/minMaxChangeButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void MainWindow::showWindow()
{
+ Style::initWidStyle();
+ myDebug() << "调用开始菜单显示";
if (m_isFullScreen) {
- m_fullWindow->raise();
- m_fullWindow->showNormal();
+ m_fullWindow->show();
setMaxWindowPos();
+ m_fullWindow->raise();
m_fullWindow->activateWindow();
- pointDataStruct pointData;
- pointData.module = "fullWindow";
- pointData.function = "Show";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
} else {
- this->raise();
- this->showNormal();
+ this->show();
setMinWindowPos();
+ this->raise();
this->activateWindow();
-// m_collectPushButton->clicked(true);
on_collectPushButton_clicked();
m_viewWidget->setFocus();
- pointDataStruct pointData;
- pointData.module = "mainWindow";
- pointData.function = "Show";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
}
void MainWindow::hideWindow()
{
+ myDebug() << "调用开始菜单隐藏";
if (m_fullWindow->isVisible()) {
m_fullWindow->hide();
+ m_fullWindow->resetEditline();
this->clearFocus();
m_isFullScreen = true;
- pointDataStruct pointData;
- pointData.module = "fullWindow";
- pointData.function = "Hide";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
} else {
this->hide();
+ m_topStackedWidget->setCurrentIndex(0);
+ m_lineEdit->clear();
this->clearFocus();
m_isFullScreen = false;
- pointDataStruct pointData;
- pointData.module = "mainWindow";
- pointData.function = "Hide";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
}
@@ -1345,20 +1365,11 @@ void MainWindow::showNormalWindowSlot()
void MainWindow::on_powerOffButton_clicked()
{
QProcess::startDetached(QString("ukui-session-tools"));
- pointDataStruct pointData;
- pointData.module = "mainWindow/powerOffButton";
- pointData.function = "Clicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
}
void MainWindow::on_powerOffButton_customContextMenuRequested(const QPoint &pos)
{
+ Q_UNUSED(pos);
RightClickMenu m_otherMenu(this);
- m_otherMenu.showShutdownMenu(this->mapToGlobal(m_centralwidget->rect().bottomRight()));
- pointDataStruct pointData;
- pointData.module = "mainWindow/powerOffButton";
- pointData.function = "RightClicked";
- pointData.functionNum = "";
- BuriedPointDataSend::getInstance()->setPoint(pointData);
+ m_otherMenu.showShutdownMenu(this->mapToGlobal(m_centralwidget->rect().bottomRight()), false);
qDebug() << "SideBarWidget::shutdownBtnRightClickSlot() 开始";
}
diff --git a/src/UserInterface/mainwindow.h b/src/UserInterface/mainwindow.h
index 7dede39..4f0baf3 100755
--- a/src/UserInterface/mainwindow.h
+++ b/src/UserInterface/mainwindow.h
@@ -70,6 +70,16 @@ public:
void hideWindow();
protected:
+ void initSearchUi();
+ void initLeftWidget();
+ void initRightWidgetButton();
+ void initCollectWidget();
+ void initRecentWidget();
+ void initTabOrder();
+ void initGsettings();
+ void initSignalConnect();
+ void registDbusServer();
+ void setTabletModeFlag();
void initUi();
/**
* @brief 处理外部点击事件和主窗口键盘控制
@@ -233,6 +243,8 @@ private:
LetterButtonWidget *m_letterBtnWid = nullptr;
SoftwareDatabaseUpdateThread *m_softwareDbThread = nullptr;
QColor m_windowColor;
+ bool m_isTabletMode = false;
+ QDBusInterface *m_usrInterface = nullptr;
};
#endif // MAINWINDOW_H
diff --git a/src/UtilityFunction/Style/style.cpp b/src/UtilityFunction/Style/style.cpp
index a7ea91a..53378bd 100755
--- a/src/UtilityFunction/Style/style.cpp
+++ b/src/UtilityFunction/Style/style.cpp
@@ -152,7 +152,7 @@ void Style::initWidStyle()
LeftLetterFontSize = 14;
LeftSpaceBetweenItem = 15;
AppListIconSize = 86;
- AppListItemSizeWidth = 150;
+ AppListItemSizeWidth = 168;
m_applistGridSizeWidth = 220;
AppSpaceBetweenIconText = 18;
} else if (m_availableScreenWidth >= 1600 && m_availableScreenWidth < 1920) {
@@ -210,7 +210,7 @@ void Style::initWidStyle()
QueryLineEditHeight = 30;
LeftLetterBtnHeight = 25;
LeftIconSize = 19;
- DropMenuWidth = 140;
+ DropMenuWidth = 170;
DropMenuHeight = 112;
miniIconSize = 8;
rightViewWidth = 324;
diff --git a/src/UtilityFunction/utility.h b/src/UtilityFunction/utility.h
index 9d5f7a9..4491673 100755
--- a/src/UtilityFunction/utility.h
+++ b/src/UtilityFunction/utility.h
@@ -32,26 +32,6 @@
#define myDebug() qDebug() << QString("%1 %2 行 %3").arg(__FILE__).arg(__FUNCTION__).arg(__LINE__)
-typedef struct pointDataStruct {
- QString module;
- QString function;
- QString functionNum;
- QStringList otherFunction;
- QString errorLevel;
- QString errorOutput;
- QString timeStamp;
- pointDataStruct()
- {
- module = QString();
- function = QString();
- functionNum = QString();
- otherFunction = QStringList();
- errorLevel = QString();
- errorOutput = QString();
- timeStamp = QString();
- }
-} pointDataStruct;
-
static int collectCount = 0;
const QPixmap loadSvg(const QString &fileName, const int size);
diff --git a/translations/ukui-menu_bo.qm b/translations/ukui-menu_bo.qm
deleted file mode 100755
index be651ee..0000000
--- a/translations/ukui-menu_bo.qm
+++ /dev/null
@@ -1 +0,0 @@
-<<3C>d<18><EFBFBD>!<1C>`<60><><EFBFBD>
\ No newline at end of file
diff --git a/translations/ukui-menu_bo.ts b/translations/ukui-menu_bo.ts
index 85e856d..370c9d8 100755
--- a/translations/ukui-menu_bo.ts
+++ b/translations/ukui-menu_bo.ts
@@ -4,22 +4,22 @@
<context>
<name>FullMainWindow</name>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="86"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="87"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="144"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="145"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="146"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="147"/>
<source>Letter</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="148"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="149"/>
<source>Function</source>
<translation type="unfinished"></translation>
</message>
@@ -27,64 +27,77 @@
<context>
<name>FunctionWidget</name>
<message>
- <location filename="../src/UserInterface/Widget/function_Widget.cpp" line="204"/>
+ <location filename="../src/UserInterface/Widget/function_Widget.cpp" line="199"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
</context>
+<context>
+ <name>ItemDelegate</name>
+ <message>
+ <location filename="../src/UserInterface/ViewItem/itemdelegate.cpp" line="176"/>
+ <source>Open the function sort menu</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/UserInterface/ViewItem/itemdelegate.cpp" line="178"/>
+ <source>Open the alphabetical menu</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>MainWindow</name>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="240"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="497"/>
<source>collection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="233"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="452"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="985"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="313"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="490"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="551"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1119"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1120"/>
<source>All</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="90"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="309"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="331"/>
<source>Search</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="192"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="449"/>
<source>No recent files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="241"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="498"/>
<source>recent</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="242"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="499"/>
<source>Max</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="244"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="501"/>
<source>PowerOff</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="395"/>
- <source>Search application</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="454"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="993"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="553"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1132"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1133"/>
<source>Letter</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="456"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="1001"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="555"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1145"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1146"/>
<source>Function</source>
<translation type="unfinished"></translation>
</message>
@@ -244,22 +257,22 @@
<context>
<name>TabletRightClickMenu</name>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="241"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="220"/>
<source>Pin to taskbar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="244"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="223"/>
<source>Unpin from taskbar</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="250"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="229"/>
<source>Add to desktop shortcuts</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="269"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="248"/>
<source>Uninstall</source>
<translation type="unfinished"></translation>
</message>
diff --git a/translations/ukui-menu_tr.qm b/translations/ukui-menu_tr.qm
deleted file mode 100755
index 927e24f..0000000
--- a/translations/ukui-menu_tr.qm
+++ /dev/null
@@ -1,13 +0,0 @@
-<<3C>d<18><EFBFBD>!<1C>`<60><><EFBFBD>B H,H,<04>53P7<50>aZ+<2B>tZ<>|<06>Z<>|<08>\<5C><><03>-<2D><><01>YV<59><04>,<2C><>i,<2C><>c<02>j<><6A><05><><EFBFBD><00><05><><EFBFBD><00><05><><EFBFBD><01><05><>|2<05><><EFBFBD><02><05><><EFBFBD>`<05><>nn<06>z<EFBFBD><03><06>z<EFBFBD><07><07>,R<08>U*ʨ<>. <09>7<EFBFBD>G <09>7<EFBFBD><08>
-<2D><><EFBFBD><05>
-<2D><><EFBFBD>9
-<2D>X<EFBFBD><04> <0B><><EFBFBD> J<><4A>. J<><4A>, <EFBFBD>"<22><05>/e<<06>i [T<00>m<00>AllFullMainWindowKategoriFunctionFullMainWindowAlfabetikLetterFullMainWindowAraSearchFullMainWindowAraSearchFunctionWidgetT<00>m<00>All
-MainWindowKategoriFunction
-MainWindowAlfabetikLetter
-MainWindowAraSearch
-MainWindowProgramlama DevelopmentQObject Eitim EducationQObjectOyunlarGameQObject GrafikImageQObject0nternetInternetQObject"Ofis Uygulamalar1OfficeQObject
-DierOthersQObject SosyalSocialQObject SistemSystemQObject
-VideoVideoQObject6Masa<00>st<00> k1sayollar1na ekleAdd to desktop shortcutsRightClickMenuBeklemeye Al HibernateRightClickMenuEkran1 Kilitle Lock ScreenRightClickMenu
-<00>1k1_Log OutRightClickMenu.Bu listeyi <00>zelle_tirinPersonalize this listRightClickMenuT<00>m<00>n<00> sabitle
-Pin to allRightClickMenu,G<00>rev <00>ubuuna sabitlePin to taskbarRightClickMenu
-Kapat Power OffRightClickMenuYeniden Ba_latRestartRightClickMenuUyku ModuSleepRightClickMenu Kald1r UninstallRightClickMenu0T<00>m sabitlemeleri kald1rUnpin from allRightClickMenuFG<00>rev <00>ubuundan sabitlemeyi kald1rUnpin from taskbarRightClickMenu6Masa<00>st<00> k1sayollar1na ekleAdd to desktop shortcutsTabletRightClickMenu,G<00>rev <00>ubuuna sabitlePin to taskbarTabletRightClickMenu Kald1r UninstallTabletRightClickMenuFG<00>rev <00>ubuundan sabitlemeyi kald1rUnpin from taskbarTabletRightClickMenu
\ No newline at end of file
diff --git a/translations/ukui-menu_tr.ts b/translations/ukui-menu_tr.ts
index 3e5245e..756c8b1 100755
--- a/translations/ukui-menu_tr.ts
+++ b/translations/ukui-menu_tr.ts
@@ -4,22 +4,22 @@
<context>
<name>FullMainWindow</name>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="86"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="87"/>
<source>Search</source>
<translation type="unfinished">Ara</translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="144"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="145"/>
<source>All</source>
<translation type="unfinished">Tümü</translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="146"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="147"/>
<source>Letter</source>
<translation type="unfinished">Alfabetik</translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="148"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="149"/>
<source>Function</source>
<translation type="unfinished">Kategori</translation>
</message>
@@ -118,7 +118,7 @@
<translation type="vanished">Diğer</translation>
</message>
<message>
- <location filename="../src/UserInterface/Widget/function_Widget.cpp" line="204"/>
+ <location filename="../src/UserInterface/Widget/function_Widget.cpp" line="199"/>
<source>Search</source>
<translation type="unfinished">Ara</translation>
</message>
@@ -170,6 +170,19 @@
<translation type="obsolete">Diğer</translation>
</message>
</context>
+<context>
+ <name>ItemDelegate</name>
+ <message>
+ <location filename="../src/UserInterface/ViewItem/itemdelegate.cpp" line="176"/>
+ <source>Open the function sort menu</source>
+ <translation type="unfinished"></translation>
+ </message>
+ <message>
+ <location filename="../src/UserInterface/ViewItem/itemdelegate.cpp" line="178"/>
+ <source>Open the alphabetical menu</source>
+ <translation type="unfinished"></translation>
+ </message>
+</context>
<context>
<name>MainViewWidget</name>
<message>
@@ -192,56 +205,56 @@
<context>
<name>MainWindow</name>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="240"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="497"/>
<source>collection</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="233"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="452"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="985"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="313"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="490"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="551"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1119"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1120"/>
<source>All</source>
<translation type="unfinished">Tümü</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="90"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="309"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="331"/>
<source>Search</source>
<translation type="unfinished">Ara</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="192"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="449"/>
<source>No recent files</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="241"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="498"/>
<source>recent</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="242"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="499"/>
<source>Max</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="244"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="501"/>
<source>PowerOff</source>
<translation type="unfinished"></translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="395"/>
- <source>Search application</source>
- <translation type="unfinished"></translation>
- </message>
- <message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="454"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="993"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="553"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1132"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1133"/>
<source>Letter</source>
<translation type="unfinished">Alfabetik</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="456"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="1001"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="555"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1145"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1146"/>
<source>Function</source>
<translation type="unfinished">Kategori</translation>
</message>
@@ -538,22 +551,22 @@
<context>
<name>TabletRightClickMenu</name>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="241"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="220"/>
<source>Pin to taskbar</source>
<translation type="unfinished">Görev çubuğuna sabitle</translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="244"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="223"/>
<source>Unpin from taskbar</source>
<translation type="unfinished">Görev çubuğundan sabitlemeyi kaldır</translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="250"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="229"/>
<source>Add to desktop shortcuts</source>
<translation type="unfinished">Masaüstü kısayollarına ekle</translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="269"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="248"/>
<source>Uninstall</source>
<translation type="unfinished">Kaldır</translation>
</message>
diff --git a/translations/ukui-menu_zh_CN.qm b/translations/ukui-menu_zh_CN.qm
deleted file mode 100755
index e886587..0000000
--- a/translations/ukui-menu_zh_CN.qm
+++ /dev/null
@@ -1,17 +0,0 @@
-<<3C>d<18><EFBFBD>!<1C>`<60><><EFBFBD>B@1<00>H,H,S<><01><04>5<02><05><>LP7<50><02>Z+<2B><05>Z<>|<05>Z<>|5\<5C><><03><01>*^F<02>
-n<01>-<2D><>;YV<59>.,<2C><>],<2C><>gj<><6A>&<05><><EFBFBD><00><05><><EFBFBD><00><05><>|p<05><><EFBFBD><02><05><><EFBFBD><03><06>p<EFBFBD><01><06>z<EFBFBD><03><06>z<EFBFBD><06><07><>T<07>,\ʨ<><05> <09>7<EFBFBD>Z <09>7<EFBFBD>k <09>
-><04>
-<2D><><EFBFBD><04>
-<2D><><EFBFBD><06> <0B><><EFBFBD>f J<><4A>* J<><4A>8 <EFBFBD>"<22>/e<i<07>Qh<51><68>AllFullMainWindowR<><52><EFBFBD>R|{FunctionFullMainWindow[Wk<57>c<EFBFBD>^<5E>LetterFullMainWindowd}"^<5E>u(SearchFullMainWindowQh\@d}"SearchFunctionWidget<03><><EFBFBD><EFBFBD>...
-MainWindowQh<51><68>All
-MainWindowR<><52><EFBFBD>R|{Function
-MainWindow[Wk<57>c<EFBFBD>^<5E>Letter
-MainWindowe>Y'Max
-MainWindowQsg:PowerOff
-MainWindowe6<65><36>
-collection
-MainWindowg<00><>recent
-MainWindow_S<> DevelopmentQObjecteY<65><59> EducationQObjectn8bGameQObjectV<>P<EFBFBD>ImageQObjectQ~<7E>InternetQObjectR<>QlOfficeQObjectQvN<76>OthersQObject[<5B>QhSafeQObjecty>N<>SocialQObject|<7C>~<7E>SystemQObject_q<5F><71>VideoQObjectm<>R<EFBFBD>R0hL<68>b_<62>cwe<77>_Add to desktop shortcutsRightClickMenul<><6C>Log OutRightClickMenuV<>[<5B>R0 b@g <09>oN<6F> 
-Pin to allRightClickMenu
-V<>[<5B>R0e6<65><36>Pin to collectionRightClickMenu V<>[<5B>R0N<30>R<EFBFBD>hPin to taskbarRightClickMenuQsg: Power OffRightClickMenu
-N<>e6<65><36>y<EFBFBD><79>dRemove from collectionRightClickMenu<04><>T/RestartRightClickMenuwaw SleepRightClickMenuSx<53>} UninstallRightClickMenuN<> b@g <09>oN<6F> S<>m<EFBFBD>V<EFBFBD>[<5B>Unpin from allRightClickMenuN<>N<EFBFBD>R<EFBFBD>hS<>m<EFBFBD>V<EFBFBD>[<5B>Unpin from taskbarRightClickMenuV<>[<5B>R0hL<68>b_<62>cwe<77>_Add to desktop shortcutsTabletRightClickMenu V<>[<5B>R0N<30>R<EFBFBD>hPin to taskbarTabletRightClickMenuSx<53>} UninstallTabletRightClickMenuN<>N<EFBFBD>R<EFBFBD>hS<>m<EFBFBD>V<EFBFBD>[<5B>Unpin from taskbarTabletRightClickMenu
\ No newline at end of file
diff --git a/translations/ukui-menu_zh_CN.ts b/translations/ukui-menu_zh_CN.ts
index 9ed9981..4d04dbf 100755
--- a/translations/ukui-menu_zh_CN.ts
+++ b/translations/ukui-menu_zh_CN.ts
@@ -4,22 +4,22 @@
<context>
<name>FullMainWindow</name>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="86"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="87"/>
<source>Search</source>
<translation>搜索应用</translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="144"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="145"/>
<source>All</source>
<translation>全部</translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="146"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="147"/>
<source>Letter</source>
<translation>字母排序</translation>
</message>
<message>
- <location filename="../src/UserInterface/full_mainwindow.cpp" line="148"/>
+ <location filename="../src/UserInterface/full_mainwindow.cpp" line="149"/>
<source>Function</source>
<translation>功能分类</translation>
</message>
@@ -27,64 +27,89 @@
<context>
<name>FunctionWidget</name>
<message>
- <location filename="../src/UserInterface/Widget/function_Widget.cpp" line="204"/>
+ <location filename="../src/UserInterface/Widget/function_Widget.cpp" line="199"/>
<source>Search</source>
<translation>全局搜索</translation>
</message>
</context>
+<context>
+ <name>ItemDelegate</name>
+ <message>
+ <source>Open feature sort list</source>
+ <translation type="vanished">打开功能排序菜单</translation>
+ </message>
+ <message>
+ <source>Open alphabetical list</source>
+ <translation type="vanished">打开字母排序菜单</translation>
+ </message>
+ <message>
+ <location filename="../src/UserInterface/ViewItem/itemdelegate.cpp" line="176"/>
+ <source>Open the function sort menu</source>
+ <translation>打开功能排序菜单</translation>
+ </message>
+ <message>
+ <location filename="../src/UserInterface/ViewItem/itemdelegate.cpp" line="178"/>
+ <source>Open the alphabetical menu</source>
+ <translation>打开字母排序菜单</translation>
+ </message>
+</context>
<context>
<name>MainWindow</name>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="90"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="309"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="331"/>
<source>Search</source>
<translation>搜索应用</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="192"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="449"/>
<source>No recent files</source>
<translation>暂无最近文件</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="233"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="452"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="985"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="313"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="490"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="551"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1119"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1120"/>
<source>All</source>
<translation>全部</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="240"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="497"/>
<source>collection</source>
<translation>收藏</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="241"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="498"/>
<source>recent</source>
<translation>最近</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="242"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="499"/>
<source>Max</source>
<translation>放大</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="244"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="501"/>
<source>PowerOff</source>
- <translation>关机</translation>
+ <translation>电源</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="395"/>
<source>Search application</source>
- <translation>搜索应用</translation>
+ <translation type="vanished">搜索应用</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="454"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="993"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="553"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1132"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1133"/>
<source>Letter</source>
<translation>字母排序</translation>
</message>
<message>
- <location filename="../src/UserInterface/mainwindow.cpp" line="456"/>
- <location filename="../src/UserInterface/mainwindow.cpp" line="1001"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="555"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1145"/>
+ <location filename="../src/UserInterface/mainwindow.cpp" line="1146"/>
<source>Function</source>
<translation>功能分类</translation>
</message>
@@ -244,22 +269,22 @@
<context>
<name>TabletRightClickMenu</name>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="241"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="220"/>
<source>Pin to taskbar</source>
<translation>固定到任务栏</translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="244"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="223"/>
<source>Unpin from taskbar</source>
<translation>从任务栏取消固定</translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="250"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="229"/>
<source>Add to desktop shortcuts</source>
<translation>固定到桌面快捷方式</translation>
</message>
<message>
- <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="269"/>
+ <location filename="../src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp" line="248"/>
<source>Uninstall</source>
<translation>卸载</translation>
</message>