diff --git a/README.md b/README.md index ff12dc9bcafe39a878860f5bcb33ddc050e24f57..f6ddfbd1b6ed1a306d0721b3bc936c4600dfcf08 100755 --- a/README.md +++ b/README.md @@ -46,7 +46,7 @@ bugfixes for this package. ## Preparation You can build pre-depends with such command: -`sudo apt install libglib2.0-dev qtbase5-dev libqt5svg5-dev libqt5x11extras5-dev libgsettings-qt-dev libbamf3-dev libxrandr-dev libxtst-dev libx11-dev` +`sudo apt install g++ qtbase5-dev qttools5-dev-tools libglib2.0-dev libqt5svg5-dev libqt5x11extras5-dev libgsettings-qt-dev libbamf3-dev libxrandr-dev libxtst-dev libx11-dev libkf5windowsystem-dev libuchardet-dev libpeony-dev libkysdk-waylandhelper-dev libukui-common-dev` Note: build-depends references the paragraph in debian/control. diff --git a/main.cpp b/main.cpp index 4d4c5585734a47378c0edc01382c5da11473bff4..c9c0dbf2ede7dc0c95fb92084051d63d8dd0d6f1 100755 --- a/main.cpp +++ b/main.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "mainwindow.h" @@ -81,17 +80,17 @@ int main(int argc, char *argv[]) if (Style::m_panelPosition == 0) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { kdk::WindowManager::setGeometry(w.windowHandle(),QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + - Style::m_availableScreenHeight - Style::minh - 3, Style::minw, Style::minh)); + Style::m_availableScreenHeight - Style::m_minh - 3, Style::m_minw, Style::m_minh)); } else { - w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + Style::m_availableScreenHeight - Style::minh - 3, - Style::minw, Style::minh)); + w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + Style::m_availableScreenHeight - Style::m_minh - 3, + Style::m_minw, Style::m_minh)); } } else if (Style::m_panelPosition == 1) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { kdk::WindowManager::setGeometry(w.windowHandle(),QRect(Style::m_primaryScreenX + 4, - Style::m_primaryScreenY + 4, Style::minw, Style::minh)); + Style::m_primaryScreenY + 4, Style::m_minw, Style::m_minh)); } else { - w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + 4, Style::minw, Style::minh)); + w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + 4, Style::m_minw, Style::m_minh)); } } else if (Style::m_panelPosition == 2) { @@ -99,17 +98,17 @@ int main(int argc, char *argv[]) if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { kdk::WindowManager::setGeometry(w.windowHandle(), QRect(Style::m_primaryScreenX + 4, - Style::m_primaryScreenY + 4, Style::minw, Style::minh)); + Style::m_primaryScreenY + 4, Style::m_minw, Style::m_minh)); } else { - w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + 4, Style::minw, Style::minh)); + w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + 4, Style::m_minw, Style::m_minh)); } } else { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { kdk::WindowManager::setGeometry(w.windowHandle(), QRect(Style::m_primaryScreenX + Style::m_availableScreenWidth - - Style::minw - 4, Style::m_primaryScreenY + 4, Style::minw, Style::minh)); + Style::m_minw - 4, Style::m_primaryScreenY + 4, Style::m_minw, Style::m_minh)); } else { - w.setGeometry(QRect(Style::m_primaryScreenX + Style::m_availableScreenWidth - Style::minw - 4, Style::m_primaryScreenY + 4, - Style::minw, Style::minh)); + w.setGeometry(QRect(Style::m_primaryScreenX + Style::m_availableScreenWidth - Style::m_minw - 4, Style::m_primaryScreenY + 4, + Style::m_minw, Style::m_minh)); } } diff --git a/src/BackProcess/DBus/dbus.cpp b/src/BackProcess/DBus/dbus.cpp index 42f7109327f6fbd4e03d65a31262fd63d15795fb..2dc3aaa822450ec898ffb4359c141e09a9852b46 100755 --- a/src/BackProcess/DBus/dbus.cpp +++ b/src/BackProcess/DBus/dbus.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "dbus.h" #include #include diff --git a/src/BackProcess/DBus/dbus.h b/src/BackProcess/DBus/dbus.h index 44f3be4d17c01d656a968cbb9330d318ddcfb66a..8da594347d1766fcf1796d000701f806be035e0e 100755 --- a/src/BackProcess/DBus/dbus.h +++ b/src/BackProcess/DBus/dbus.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef DBUS_H #define DBUS_H diff --git a/src/BackProcess/FileWatcher/convert_winid_to_desktop.cpp b/src/BackProcess/FileWatcher/convert_winid_to_desktop.cpp index cf17b369e385a6cc3fcabd3f010a65a5aa68a82d..24575bfbba62ac07726c0073680d23aaa53cb9ba 100755 --- a/src/BackProcess/FileWatcher/convert_winid_to_desktop.cpp +++ b/src/BackProcess/FileWatcher/convert_winid_to_desktop.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,13 +12,11 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "convert_winid_to_desktop.h" #include "utility.h" -#include #include #include #include diff --git a/src/BackProcess/FileWatcher/convert_winid_to_desktop.h b/src/BackProcess/FileWatcher/convert_winid_to_desktop.h index ba6a77f54d6c4a9ee7829a4fe4ac752618866780..92e0521bd869514f333cf88d080014d5cb93bc50 100755 --- a/src/BackProcess/FileWatcher/convert_winid_to_desktop.h +++ b/src/BackProcess/FileWatcher/convert_winid_to_desktop.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef CONVERTDESKTOPTOWINID_H diff --git a/src/BackProcess/FileWatcher/desktop_watcher.cpp b/src/BackProcess/FileWatcher/desktop_watcher.cpp index e3c614129209130657edffea0fae5235b844601e..5e2cf1086bbf2ea9b17d447a0469a20fddf5ab9d 100755 --- a/src/BackProcess/FileWatcher/desktop_watcher.cpp +++ b/src/BackProcess/FileWatcher/desktop_watcher.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "desktop_watcher.h" #include #include @@ -20,6 +37,10 @@ DesktopWatcher::DesktopWatcher() connect(m_directoryChangedThread, &DirectoryChangedThread::requestUpdateSignal, this, &DesktopWatcher::requestUpdateSlot); } +DesktopWatcher::~DesktopWatcher() +{ +} + /** * desktop文件目录改变信号槽 */ diff --git a/src/BackProcess/FileWatcher/desktop_watcher.h b/src/BackProcess/FileWatcher/desktop_watcher.h index 874a98d69729083e51908c749ee09e6469b12d92..9b6f9c3576d35aeb614d9a19609f17b54d4085f4 100755 --- a/src/BackProcess/FileWatcher/desktop_watcher.h +++ b/src/BackProcess/FileWatcher/desktop_watcher.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef DESKTOPWATCHER_H #define DESKTOPWATCHER_H #include @@ -9,6 +26,7 @@ class DesktopWatcher : public QObject Q_OBJECT public: DesktopWatcher(); + ~DesktopWatcher(); public: Q_SIGNALS: diff --git a/src/BackProcess/FileWatcher/directory_changed_thread.cpp b/src/BackProcess/FileWatcher/directory_changed_thread.cpp index 3ef8938313a6494cff75aeaee409c10bd1b5cf0e..b96a4703238261406784d57e32b76da28e93b31c 100755 --- a/src/BackProcess/FileWatcher/directory_changed_thread.cpp +++ b/src/BackProcess/FileWatcher/directory_changed_thread.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "directory_changed_thread.h" @@ -28,7 +27,10 @@ DirectoryChangedThread::DirectoryChangedThread() DirectoryChangedThread::~DirectoryChangedThread() { - delete m_ukuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void DirectoryChangedThread::run() diff --git a/src/BackProcess/FileWatcher/directory_changed_thread.h b/src/BackProcess/FileWatcher/directory_changed_thread.h index da6130cf91c54d420e9d84033f58c8f30b66bbc6..7e290382357e9ae95cd46c08f8809249a4840f9e 100755 --- a/src/BackProcess/FileWatcher/directory_changed_thread.h +++ b/src/BackProcess/FileWatcher/directory_changed_thread.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef DIRECTORYCHANGEDTHREAD_H diff --git a/src/BackProcess/FileWatcher/software_database_update_thread.cpp b/src/BackProcess/FileWatcher/software_database_update_thread.cpp index b8c98f45998eee422fd3d31c7dcb6cd92f8baa52..9c50f44921ad700aace7df4b02d879b940898ead 100755 --- a/src/BackProcess/FileWatcher/software_database_update_thread.cpp +++ b/src/BackProcess/FileWatcher/software_database_update_thread.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "software_database_update_thread.h" diff --git a/src/BackProcess/FileWatcher/software_database_update_thread.h b/src/BackProcess/FileWatcher/software_database_update_thread.h index 51d7d8d2cb88774bb7df512bbe9f68ff178a06c0..2914339dcdd4d56c15a30b2b90e10604f8c796df 100755 --- a/src/BackProcess/FileWatcher/software_database_update_thread.h +++ b/src/BackProcess/FileWatcher/software_database_update_thread.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef SOFTWAREDATABASEUPDATETHREAD_H diff --git a/src/BackProcess/FileWatcher/tablet_directorychanged_thread.cpp b/src/BackProcess/FileWatcher/tablet_directorychanged_thread.cpp index 0cbbf6b4a2487e5e1189c2c99cc66b2ef92d256a..7c7ee4afa9d60d98672566096ad38c9f02dce6f1 100755 --- a/src/BackProcess/FileWatcher/tablet_directorychanged_thread.cpp +++ b/src/BackProcess/FileWatcher/tablet_directorychanged_thread.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "tablet_directorychanged_thread.h" @@ -28,21 +27,20 @@ TabletDirectoryChangedThread::TabletDirectoryChangedThread() { m_ukuiMenuInterface = new UkuiMenuInterface; QString path = QDir::homePath() + "/.config/ukui/ukui-menu.ini"; - setting = new QSettings(path, QSettings::IniFormat); + m_setting = new QSettings(path, QSettings::IniFormat); } TabletDirectoryChangedThread::~TabletDirectoryChangedThread() { if (m_ukuiMenuInterface) { delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; } - if (setting) { - delete setting; + if (m_setting) { + delete m_setting; + m_setting = nullptr; } - - m_ukuiMenuInterface = nullptr; - setting = nullptr; } @@ -67,41 +65,41 @@ void TabletDirectoryChangedThread::run() QStringList list = str.split('/'); str = list[list.size() - 1]; QString desktopfn = str; - setting->beginGroup("recentapp"); - setting->setValue(desktopfn, datetime); - setting->sync(); - setting->endGroup(); + m_setting->beginGroup("recentapp"); + m_setting->setValue(desktopfn, datetime); + m_setting->sync(); + m_setting->endGroup(); //wgx - setting->beginGroup("application"); - QStringList applist = setting->allKeys(); - int appnum = setting->allKeys().count(); + m_setting->beginGroup("application"); + QStringList applist = m_setting->allKeys(); + int appnum = m_setting->allKeys().count(); int maxindex = 0; int minindex = 0; for (int i = 0; i < appnum; i++) { - if (setting->value(applist.at(i)).toInt() > maxindex) { - maxindex = setting->value(applist.at(i)).toInt(); + if (m_setting->value(applist.at(i)).toInt() > maxindex) { + maxindex = m_setting->value(applist.at(i)).toInt(); } - if(setting->value(applist.at(i)).toInt() <= minindex) { - minindex = setting->value(applist.at(i)).toInt(); + if(m_setting->value(applist.at(i)).toInt() <= minindex) { + minindex = m_setting->value(applist.at(i)).toInt(); } } if (desktopfn.contains("small-plugin-manage")){ - setting->setValue(desktopfn,minindex-1); + m_setting->setValue(desktopfn,minindex-1); } else { - setting->setValue(desktopfn,maxindex+1); + m_setting->setValue(desktopfn,maxindex+1); } - setting->sync(); - setting->endGroup(); + m_setting->sync(); + m_setting->endGroup(); // QString iconstr = m_ukuiMenuInterface->getAppIcon(desktopfpList.at(i)); syslog(LOG_LOCAL0 | LOG_DEBUG, "%s", iconstr.toLocal8Bit().data()); syslog(LOG_LOCAL0 | LOG_DEBUG, "软件安装desktop文件名:%s", desktopfn.toLocal8Bit().data()); - Q_FOREACH (QString path, QIcon::themeSearchPaths()) { + Q_FOREACH(QString path, QIcon::themeSearchPaths()) { syslog(LOG_LOCAL0 | LOG_DEBUG, "%s", path.toLocal8Bit().data()); } } @@ -113,35 +111,35 @@ void TabletDirectoryChangedThread::run() QFileInfo fileInfo(desktopfp); QString desktopfn = fileInfo.fileName(); myDebug() << "卸载" << desktopfn; - setting->beginGroup("lockapplication"); - setting->remove(desktopfn); - setting->sync(); - setting->endGroup(); - setting->beginGroup("application"); - - if (!setting->contains(desktopfn)) { - setting->sync(); - setting->endGroup(); + m_setting->beginGroup("lockapplication"); + m_setting->remove(desktopfn); + m_setting->sync(); + m_setting->endGroup(); + m_setting->beginGroup("application"); + + if (!m_setting->contains(desktopfn)) { + m_setting->sync(); + m_setting->endGroup(); continue; } - int val = setting->value(desktopfn).toInt(); + int val = m_setting->value(desktopfn).toInt(); myDebug() << "卸载val" << val; - setting->remove(desktopfn); - QStringList desktopfnList = setting->allKeys(); + m_setting->remove(desktopfn); + QStringList desktopfnList = m_setting->allKeys(); for (int i = 0; i < desktopfnList.count(); i++) { - if (setting->value(desktopfnList.at(i)).toInt() > val) { - setting->setValue(desktopfnList.at(i), setting->value(desktopfnList.at(i)).toInt() - 1); + if (m_setting->value(desktopfnList.at(i)).toInt() > val) { + m_setting->setValue(desktopfnList.at(i), m_setting->value(desktopfnList.at(i)).toInt() - 1); } } - setting->sync(); - setting->endGroup(); - setting->beginGroup("recentapp"); - setting->remove(desktopfn); - setting->sync(); - setting->endGroup(); + m_setting->sync(); + m_setting->endGroup(); + m_setting->beginGroup("recentapp"); + m_setting->remove(desktopfn); + m_setting->sync(); + m_setting->endGroup(); syslog(LOG_LOCAL0 | LOG_DEBUG, "软件卸载desktop文件名:%s", desktopfn.toLocal8Bit().data()); QDBusInterface iface("com.ukui.panel.desktop", "/", diff --git a/src/BackProcess/FileWatcher/tablet_directorychanged_thread.h b/src/BackProcess/FileWatcher/tablet_directorychanged_thread.h index 279dec115019e165ec2775874f39c8ca41bc0376..69393339e9d5b672227a76aae5a645b769dc8fd4 100755 --- a/src/BackProcess/FileWatcher/tablet_directorychanged_thread.h +++ b/src/BackProcess/FileWatcher/tablet_directorychanged_thread.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef TABLETDIRECTORYCHANGEDTHREAD_H @@ -35,7 +34,7 @@ public: private: UkuiMenuInterface *m_ukuiMenuInterface = nullptr; - QSettings *setting = nullptr; + QSettings *m_setting = nullptr; TabletListView *m_listView = nullptr; QStandardItemModel *listmodel = nullptr; diff --git a/src/BackProcess/Interface/currenttime_interface.cpp b/src/BackProcess/Interface/currenttime_interface.cpp index 46080401087d0489f3805d987f053ece77535ea4..ea71b8820169724aefc1f3b6d6a24488bf11297d 100755 --- a/src/BackProcess/Interface/currenttime_interface.cpp +++ b/src/BackProcess/Interface/currenttime_interface.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "currenttime_interface.h" #include #define TIME_FORMAT "org.ukui.control-center.panel.plugins" diff --git a/src/BackProcess/Interface/currenttime_interface.h b/src/BackProcess/Interface/currenttime_interface.h index cf08151efa466ebc22ec62343c8ca5327cf04d47..80c318f74ed9cc096bb6271099d8b2628f6027f8 100755 --- a/src/BackProcess/Interface/currenttime_interface.h +++ b/src/BackProcess/Interface/currenttime_interface.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef CURRENTTIMEINTERFACE_H #define CURRENTTIMEINTERFACE_H #include @@ -7,9 +24,9 @@ #include #include -class CurrentTimeInterface : QObject +class CurrentTimeInterface : public QObject { - + Q_OBJECT public: CurrentTimeInterface(); ~CurrentTimeInterface(); diff --git a/src/BackProcess/Interface/ukui_chineseletter.cpp b/src/BackProcess/Interface/ukui_chineseletter.cpp index ff73a2d51892431f31894e79d0d9e2efb5337607..a5a89562756cff953e4246044741cdc3ef692a4a 100755 --- a/src/BackProcess/Interface/ukui_chineseletter.cpp +++ b/src/BackProcess/Interface/ukui_chineseletter.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "ukui_chineseletter.h" diff --git a/src/BackProcess/Interface/ukui_chineseletter.h b/src/BackProcess/Interface/ukui_chineseletter.h index c1da7295426bd0b85860907c7f0a55301edf1f53..6b4d501200b83e0fb09e7130aaa376d7f2a5ded0 100755 --- a/src/BackProcess/Interface/ukui_chineseletter.h +++ b/src/BackProcess/Interface/ukui_chineseletter.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef UKUICHINESELETTER_H diff --git a/src/BackProcess/Interface/ukuimenuinterface.cpp b/src/BackProcess/Interface/ukuimenuinterface.cpp index ed6718b9b1be9a0da1d0f83114051be2d5fd1609..7879cc005d9dcf99db41f6eaacb78502e85ba516 100755 --- a/src/BackProcess/Interface/ukuimenuinterface.cpp +++ b/src/BackProcess/Interface/ukuimenuinterface.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "ukuimenuinterface.h" @@ -996,7 +995,7 @@ QVector UkuiMenuInterface::getAllClassification() commonVector = getCommonUseApp(); int index = 0; - Q_FOREACH (QString desktopfp, desktopfpVector) { + Q_FOREACH(QString desktopfp, desktopfpVector) { if (!commonVector.contains(desktopfp)) { appVector.append(appInfoVector.at(index)); } @@ -1006,7 +1005,7 @@ QVector UkuiMenuInterface::getAllClassification() qSort(appVector.begin(), appVector.end(), cmpApp); - Q_FOREACH (QString desktopfp, commonVector) { + Q_FOREACH(QString desktopfp, commonVector) { allAppVector.append(desktopfp); } @@ -1102,7 +1101,7 @@ QVector UkuiMenuInterface::getCommonUseApp() if (!g_projectCodeName.contains("V10SP1-edu")) { QVector data; - Q_FOREACH (QString desktopfn, getLockAppList()) { + Q_FOREACH(QString desktopfn, getLockAppList()) { QString desktopfp; if (androidDesktopfnList.contains(desktopfn)) { @@ -1120,7 +1119,7 @@ QVector UkuiMenuInterface::getCommonUseApp() data.append(desktopfp); } - Q_FOREACH (QString desktopfn, getUnlockAllList()) { + Q_FOREACH(QString desktopfn, getUnlockAllList()) { QString desktopfp; if (androidDesktopfnList.contains(desktopfn)) { @@ -1163,7 +1162,7 @@ QVector UkuiMenuInterface::sortDesktopList(QString group) setting->endGroup(); QVector data; - Q_FOREACH (QString desktopfn, desktopfnList) { + Q_FOREACH(QString desktopfn, desktopfnList) { QString desktopfp; if (androidDesktopfnList.contains(desktopfn)) { @@ -1181,7 +1180,7 @@ QVector UkuiMenuInterface::getCollectApp() { QVector data; - Q_FOREACH (QString desktopfn, getCollectAppList()) { + Q_FOREACH(QString desktopfn, getCollectAppList()) { QString desktopfp; if (androidDesktopfnList.contains(desktopfn)) { @@ -1221,7 +1220,7 @@ QVector UkuiMenuInterface::getLockApp() setting->endGroup(); QVector data; - Q_FOREACH (QString desktopfn, lockdesktopfnList) { + Q_FOREACH(QString desktopfn, lockdesktopfnList) { QString desktopfp; // if(androidDesktopfnList.contains(desktopfn))//如果锁的应用在安卓列表 // desktopfp=QString(QDir::homePath()+"/.local/share/applications/"+desktopfn); @@ -1580,7 +1579,7 @@ QString UkuiMenuInterface::getAppNameInitials(QString desktopfp) QStringList appnamestr = appname.split(" "); QString letters; - Q_FOREACH (QString name, appnamestr) { + Q_FOREACH(QString name, appnamestr) { letters.clear(); letters = UkuiChineseLetter::getFirstLettersAll(name); diff --git a/src/BackProcess/Interface/ukuimenuinterface.h b/src/BackProcess/Interface/ukuimenuinterface.h index 1c8ca58fe66e0ba18785c448b579faf983ac2e5c..38ed9c26dddf83c584c943b2807b50fce048656d 100755 --- a/src/BackProcess/Interface/ukuimenuinterface.h +++ b/src/BackProcess/Interface/ukuimenuinterface.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef UKUIMENUINTERFACE_H diff --git a/src/BackProcess/Search/searchappthread.cpp b/src/BackProcess/Search/searchappthread.cpp index 128aeedbc2725754800a7205c86157d24d81181f..e1368f1149d763ef35ab57c9fcb647b8243e50b8 100755 --- a/src/BackProcess/Search/searchappthread.cpp +++ b/src/BackProcess/Search/searchappthread.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "searchappthread.h" @@ -27,7 +26,10 @@ SearchAppThread::SearchAppThread() SearchAppThread::~SearchAppThread() { - delete m_ukuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void SearchAppThread::run() diff --git a/src/BackProcess/Search/searchappthread.h b/src/BackProcess/Search/searchappthread.h index 972ba2bfa0427e683fec31c05b055f5e09c30eea..aca52e40b352fd75087d4923ebcc71deb6b20f46 100755 --- a/src/BackProcess/Search/searchappthread.h +++ b/src/BackProcess/Search/searchappthread.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef SEARCHAPPTHREAD_H diff --git a/src/BackProcess/tablet/getmodeldata.cpp b/src/BackProcess/tablet/getmodeldata.cpp index 11d06933a7e881a5c628f9f0095bc30f1f72a39f..0f8080f1818cb254cead8854ce6e513057f5797c 100755 --- a/src/BackProcess/tablet/getmodeldata.cpp +++ b/src/BackProcess/tablet/getmodeldata.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "getmodeldata.h" #include #include @@ -9,6 +26,14 @@ GetModelData::GetModelData() loadDesktopVercor(); } +GetModelData::~GetModelData() +{ + if (m_ukuiMenuInterface != nullptr) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } +} + void GetModelData::loadDesktopVercor() { UkuiMenuInterface::appInfoVector.clear(); @@ -27,7 +52,7 @@ QVector GetModelData::getMinAllData() { m_minAllData.clear(); - Q_FOREACH (QString desktopfp, UkuiMenuInterface::allAppVector) { + Q_FOREACH(QString desktopfp, UkuiMenuInterface::allAppVector) { m_minAllData.append(QStringList() << desktopfp << "1"); } @@ -40,11 +65,11 @@ QStringList GetModelData::getPreCollectionApp() QStringList preAppList = QStringList(); QStringList preAppListExist = QStringList(); preAppList << QString("/usr/share/applications/ukui-control-center.desktop") - < GetModelData::getRecentData() enumerator = new Peony::FileEnumerator(this); enumerator->setEnumerateDirectory("recent:///"); enumerator->enumerateSync(); - QString uri; for (auto fileInfo : enumerator->getChildren()) { QStringList recentData; diff --git a/src/BackProcess/tablet/getmodeldata.h b/src/BackProcess/tablet/getmodeldata.h index 6e0d3dc7d182675ee038c75528214550775af32b..a642aa723bc09f0c3423c28cbea38ae2184a76ef 100755 --- a/src/BackProcess/tablet/getmodeldata.h +++ b/src/BackProcess/tablet/getmodeldata.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef GETMODELDATA_H #define GETMODELDATA_H #include "ukuimenuinterface.h" @@ -11,6 +28,7 @@ class GetModelData : public QObject public: GetModelData(); + ~GetModelData(); public: /** diff --git a/src/BackProcess/tablet/pagemanager.cpp b/src/BackProcess/tablet/pagemanager.cpp index 86b2af101c9be37defc75cbfa34ba8764e6c921f..3f49f7735fe9a3311f944b938773d7ecec97c52c 100755 --- a/src/BackProcess/tablet/pagemanager.cpp +++ b/src/BackProcess/tablet/pagemanager.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "pagemanager.h" #include "ukuimenuinterface.h" #include "style.h" @@ -9,19 +26,27 @@ PageManager::PageManager() m_ukuiMenuInterface->initAppIni(); } +PageManager::~PageManager() +{ + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } +} + int PageManager::getPageNum(const int &appNum) { int pageNum = 0; - if (appNum / (Style::appColumnFirst * Style::appLineFirst) == 0) { + if (appNum / (Style::m_appColumnFirst * Style::m_appLineFirst) == 0) { pageNum = 1; } else { - int appNumOtherPage = appNum - (Style::appColumnFirst * Style::appLineFirst); + int appNumOtherPage = appNum - (Style::m_appColumnFirst * Style::m_appLineFirst); - if (appNumOtherPage % (Style::appColumn * Style::appLine) == 0) { - pageNum = appNumOtherPage / (Style::appColumn * Style::appLine) + 1; + if (appNumOtherPage % (Style::m_appColumn * Style::m_appLine) == 0) { + pageNum = appNumOtherPage / (Style::m_appColumn * Style::m_appLine) + 1; } else { - pageNum = appNumOtherPage / (Style::appColumn * Style::appLine) + 2; + pageNum = appNumOtherPage / (Style::m_appColumn * Style::m_appLine) + 2; } } @@ -34,14 +59,14 @@ QVector PageManager::sortAppInPage(const QVector &appVecto QVector pageData; QStringList onePageData; - Q_FOREACH (QString desktopfp, appVector) { + Q_FOREACH(QString desktopfp, appVector) { m_data.append(desktopfp); } int pageSize = getPageNum(m_data.size()); onePageData.clear(); - for (int j = 0; j < Style::appColumnFirst * Style::appLineFirst; j++) { + for (int j = 0; j < Style::m_appColumnFirst * Style::m_appLineFirst; j++) { if (m_data.size() > 0) { onePageData.append(m_data.at(0)); m_data.pop_front(); @@ -55,7 +80,7 @@ QVector PageManager::sortAppInPage(const QVector &appVecto for (int i = 0; i < pageSize - 1; i++) { onePageData.clear(); - for (int j = 0; j < Style::appColumn * Style::appLine; j++) { + for (int j = 0; j < Style::m_appColumn * Style::m_appLine; j++) { if (m_data.size() > 0) { onePageData.append(m_data.at(0)); m_data.pop_front(); @@ -79,7 +104,7 @@ QVector PageManager::getAppPageVector() QVector appPagelist; QVector allAppList = UkuiMenuInterface::tencentInitVector + UkuiMenuInterface::customizedVector + UkuiMenuInterface::thirdPartyVector + UkuiMenuInterface::applicationVector; - Q_FOREACH (QStringList desktopfp, sortAppInPage(/*UkuiMenuInterface::tencentInitVector*/allAppList)) { + Q_FOREACH(QStringList desktopfp, sortAppInPage(/*UkuiMenuInterface::tencentInitVector*/allAppList)) { appPagelist.append(desktopfp); } diff --git a/src/BackProcess/tablet/pagemanager.h b/src/BackProcess/tablet/pagemanager.h index 8c3f2cae530c8b161625f6968a35d1e481880c89..9991403dc5570189b66a1dd77971541c802264f6 100755 --- a/src/BackProcess/tablet/pagemanager.h +++ b/src/BackProcess/tablet/pagemanager.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef PAGEMANAGER_H #define PAGEMANAGER_H @@ -9,6 +26,7 @@ class PageManager : public QObject Q_OBJECT public: PageManager(); + ~PageManager(); int getPageNum(const int &appNum); QVector sortAppInPage(const QVector &appVector); diff --git a/src/UserInterface/Button/function_classify_button.cpp b/src/UserInterface/Button/function_classify_button.cpp index ffed89c417e8636310690031bc3875d1c83638f6..1ed4993ff62301f394b649c6f1ec3241c928480d 100755 --- a/src/UserInterface/Button/function_classify_button.cpp +++ b/src/UserInterface/Button/function_classify_button.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "function_classify_button.h" diff --git a/src/UserInterface/Button/function_classify_button.h b/src/UserInterface/Button/function_classify_button.h index 6160fb9ab3be9f7a2b426ba203e50dd5c35813c5..c2e1fae50e4d83df693c0f72b7e6d9a74f423387 100755 --- a/src/UserInterface/Button/function_classify_button.h +++ b/src/UserInterface/Button/function_classify_button.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef FUNCTIONCLASSIFYBUTTON_H diff --git a/src/UserInterface/Button/letter_classify_button.cpp b/src/UserInterface/Button/letter_classify_button.cpp index 11073a873fd60057470deb7a4ec9ba00c4a81178..6577384d17a4918535d51c7c3474ed959573c641 100755 --- a/src/UserInterface/Button/letter_classify_button.cpp +++ b/src/UserInterface/Button/letter_classify_button.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "letter_classify_button.h" @@ -167,9 +166,9 @@ void LetterClassifyButton::leaveEvent(QEvent *e) if (m_fullscreen) { QFont font; - font.setPixelSize(Style::LeftLetterFontSize); + font.setPixelSize(Style::m_leftLetterFontSize); this->setFont(font); - this->setFixedSize(Style::LeftLetterBtnHeight, Style::LeftLetterBtnHeight); + this->setFixedSize(Style::m_leftLetterBtnHeight, Style::m_leftLetterBtnHeight); tooltip->close(); delete tooltip; tooltip = nullptr; @@ -195,9 +194,9 @@ void LetterClassifyButton::focusInEvent(QEvent *e) if (m_fullscreen) { QFont font; - font.setPixelSize(Style::LeftLetterFontSize * 3); + font.setPixelSize(Style::m_leftLetterFontSize * 3); this->setFont(font); - this->setFixedSize(Style::LeftLetterBtnHeight * 2, Style::LeftLetterBtnHeight * 2); + this->setFixedSize(Style::m_leftLetterBtnHeight * 2, Style::m_leftLetterBtnHeight * 2); } } diff --git a/src/UserInterface/Button/letter_classify_button.h b/src/UserInterface/Button/letter_classify_button.h index 72359871d5a8bfba7415d76bc1620bcccf0042ea..fded3ebe917113a8762c3e0848c8a46e242aefba 100755 --- a/src/UserInterface/Button/letter_classify_button.h +++ b/src/UserInterface/Button/letter_classify_button.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef LETTERCLASSIFYBUTTON_H diff --git a/src/UserInterface/Button/tool_button.cpp b/src/UserInterface/Button/tool_button.cpp index 9e430e6654b4287465667d80688bef9f8f86632c..1d0fe09201de650fbdea12e9327e47f10c805d67 100755 --- a/src/UserInterface/Button/tool_button.cpp +++ b/src/UserInterface/Button/tool_button.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "tool_button.h" diff --git a/src/UserInterface/Button/tool_button.h b/src/UserInterface/Button/tool_button.h index 8634fb251b0b97b0320b74f913b448011c5d2a88..d1b18959e993ec354a4ee083f6f0ffe5242bfec6 100755 --- a/src/UserInterface/Button/tool_button.h +++ b/src/UserInterface/Button/tool_button.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef TOOLBUTTON_H diff --git a/src/UserInterface/ListView/fulllistview.cpp b/src/UserInterface/ListView/fulllistview.cpp index 17124b82048e55b9b69f5b3e2db351f4484f368a..5159e10728c50c1b6a37d411618763ea6218c924 100755 --- a/src/UserInterface/ListView/fulllistview.cpp +++ b/src/UserInterface/ListView/fulllistview.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "fulllistview.h" @@ -30,13 +29,25 @@ FullListView::FullListView(QWidget *parent, int module): initWidget(); m_delegate = new FullItemDelegate(this, module); this->setItemDelegate(m_delegate); - pUkuiMenuInterface = new UkuiMenuInterface; + m_ukuiMenuInterface = new UkuiMenuInterface; } FullListView::~FullListView() { - delete menu; - delete gsetting; + if (m_rightMenu) { + delete m_rightMenu; + m_rightMenu = nullptr; + } + + if (m_gsetting) { + delete m_gsetting; + m_gsetting = nullptr; + } + + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void FullListView::initWidget() @@ -84,7 +95,7 @@ void FullListView::keyPressEvent(QKeyEvent *e) case Qt::Key_Left: { this->clearFocus(); - if (mapToGlobal(center.topRight()).y() < Style::QueryLineEditHeight + Style::m_applistGridSizeWidth) { + if (mapToGlobal(center.topRight()).y() < Style::m_queryLineEditHeight + Style::m_applistGridSizeWidth) { Q_EMIT sendSetslidebar(-Style::m_applistGridSizeWidth); } @@ -107,7 +118,7 @@ void FullListView::keyPressEvent(QKeyEvent *e) case Qt::Key_Up: { if (module == 0) { - if (mapToGlobal(center.topRight()).y() < (Style::QueryLineEditHeight + Style::m_applistGridSizeWidth)) { + if (mapToGlobal(center.topRight()).y() < (Style::m_queryLineEditHeight + Style::m_applistGridSizeWidth)) { Q_EMIT sendSetslidebar(-Style::m_applistGridSizeWidth); } } diff --git a/src/UserInterface/ListView/fulllistview.h b/src/UserInterface/ListView/fulllistview.h index 93c06b20979b10cc8d9ec21c90598de3c1297b35..d51420ded9b3c4e40ca33b99891f58986bc9d05c 100755 --- a/src/UserInterface/ListView/fulllistview.h +++ b/src/UserInterface/ListView/fulllistview.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef FULLLISTVIEW_H @@ -42,9 +41,9 @@ protected: void keyPressEvent(QKeyEvent *e); private: - RightClickMenu *menu = nullptr;//右键菜单 - QStringList data; - QGSettings *gsetting = nullptr; + RightClickMenu *m_rightMenu = nullptr;//右键菜单 + QStringList m_data; + QGSettings *m_gsetting = nullptr; public Q_SLOTS: void selectFirstItem(); diff --git a/src/UserInterface/ListView/klistview.cpp b/src/UserInterface/ListView/klistview.cpp index 3954bc9b61276b6f013a1643ead648b8f57f0596..91fbe08ed1a76bd3c52cfae526a73fa762d7527a 100755 --- a/src/UserInterface/ListView/klistview.cpp +++ b/src/UserInterface/ListView/klistview.cpp @@ -1,7 +1,25 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include #include "klistview.h" #include "utility.h" #include +#include #include "rightclickmenu.h" KListView::KListView(QWidget *parent): @@ -11,42 +29,47 @@ KListView::KListView(QWidget *parent): KListView::~KListView() { - delete m_delegate; - delete listmodel; - delete pUkuiMenuInterface; + if (m_delegate) { + delete m_delegate; + m_delegate = nullptr; + } + + if (m_listmodel) { + delete m_listmodel; + m_listmodel = nullptr; + } } void KListView::addData(QStringList data) { - listmodel = new QStandardItemModel(this); - this->setModel(listmodel); + m_listmodel = new QStandardItemModel(this); + this->setModel(m_listmodel); - Q_FOREACH (QString desktopfp, data) { + Q_FOREACH(QString desktopfp, data) { QStandardItem *item = new QStandardItem; item->setData(QVariant::fromValue(desktopfp), Qt::DisplayRole); - listmodel->appendRow(item); + m_listmodel->appendRow(item); } } void KListView::updateData(QStringList data) { - listmodel->clear(); + m_listmodel->clear(); - Q_FOREACH (QString desktopfp, data) { + Q_FOREACH(QString desktopfp, data) { QStandardItem *item = new QStandardItem; item->setData(QVariant::fromValue(desktopfp), Qt::DisplayRole); - listmodel->appendRow(item); + m_listmodel->appendRow(item); } } void KListView::onClicked(QModelIndex index) { - QVariant var = listmodel->data(index, Qt::DisplayRole); - + QVariant var = m_listmodel->data(index, Qt::DisplayRole); if (var.isValid()) { QString desktopfp = var.value(); Q_EMIT sendHideMainWindowSignal(); - execApp(desktopfp); + QtConcurrent::run(execApp, QString(desktopfp)); } } @@ -69,12 +92,19 @@ void KListView::mouseMoveEvent(QMouseEvent *e) void KListView::mousePressEvent(QMouseEvent *event) { - if (!(this->indexAt(event->pos()).isValid()) && event->button() == Qt::LeftButton) { + if ((this->indexAt(event->pos()).isValid()) && event->button() == Qt::LeftButton) { + m_pressApp = m_listmodel->data(this->indexAt(event->pos()), Qt::DisplayRole); + } + return QListView::mousePressEvent(event); +} + +void KListView::mouseReleaseEvent(QMouseEvent *e) +{ + if (!(this->indexAt(e->pos()).isValid()) && e->button() == Qt::LeftButton) { Q_EMIT sendHideMainWindowSignal(); } else { - pressApp = listmodel->data(this->indexAt(event->pos()), Qt::DisplayRole); + return QListView::mouseReleaseEvent(e); } - return QListView::mousePressEvent(event); } void KListView::rightClickedSlot(const QPoint &pos) @@ -86,7 +116,7 @@ void KListView::rightClickedSlot(const QPoint &pos) return; } - QVariant var = listmodel->data(index, Qt::DisplayRole); + QVariant var = m_listmodel->data(index, Qt::DisplayRole); QStringList strlist = var.value(); if (strlist.count() == 1 || ((strlist.count() == 2) && (strlist.at(1).toInt() == 1))) { diff --git a/src/UserInterface/ListView/klistview.h b/src/UserInterface/ListView/klistview.h index e932fd2d5383ec3b8a8820ed9b56041ec63471de..503997bdfb77b6cfc6f4a46956e8160f71b0a4f6 100755 --- a/src/UserInterface/ListView/klistview.h +++ b/src/UserInterface/ListView/klistview.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef KLISTVIEW_H #define KLISTVIEW_H #include @@ -15,15 +32,16 @@ public: void initWidget(); KItemDelegate *m_delegate = nullptr; - QStandardItemModel *listmodel = nullptr; + QStandardItemModel *m_listmodel = nullptr; int module = 0; - double transparency; - QVariant pressApp; - UkuiMenuInterface *pUkuiMenuInterface = nullptr; + double m_transparency; + QVariant m_pressApp; + UkuiMenuInterface *m_ukuiMenuInterface = nullptr; protected: void paintEvent(QPaintEvent *e); void mousePressEvent(QMouseEvent *event); void mouseMoveEvent(QMouseEvent *e); + void mouseReleaseEvent(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 368f25a6e3367dc7a4900d66d949a87240da645d..89be87b294bcc81a0f2ffee579afc3ebd6a2f09b 100755 --- a/src/UserInterface/ListView/listview.cpp +++ b/src/UserInterface/ListView/listview.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "listview.h" @@ -21,6 +20,7 @@ #include "utility.h" #include #include +#include ListView::ListView(QWidget *parent/*, int width, int height, int module*/): KListView(parent) @@ -29,15 +29,19 @@ ListView::ListView(QWidget *parent/*, int width, int height, int module*/): this->h = 540; this->module = 1; initWidget(); - listmodel = new QStandardItemModel(this); - this->setModel(listmodel); - pUkuiMenuInterface = new UkuiMenuInterface; + setAttribute(Qt::WA_AcceptTouchEvents); + m_listmodel = new QStandardItemModel(this); + this->setModel(m_listmodel); + m_ukuiMenuInterface = new UkuiMenuInterface; this->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); } ListView::~ListView() { - delete pUkuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void ListView::initWidget() @@ -69,12 +73,12 @@ void ListView::initWidget() void ListView::addData(QVector data, int module) { this->module = module; - listmodel->clear(); + m_listmodel->clear(); - Q_FOREACH (QStringList desktopfp, data) { + Q_FOREACH(QStringList desktopfp, data) { QStandardItem *item = new QStandardItem; item->setData(QVariant::fromValue(desktopfp), Qt::DisplayRole); - listmodel->appendRow(item); + m_listmodel->appendRow(item); } m_delegate = new ItemDelegate(this, module); @@ -83,18 +87,33 @@ void ListView::addData(QVector data, int module) void ListView::updateData(QVector data) { - listmodel->clear(); + m_listmodel->clear(); - Q_FOREACH (QStringList desktopfp, data) { + Q_FOREACH(QStringList desktopfp, data) { QStandardItem *item = new QStandardItem; item->setData(QVariant::fromValue(desktopfp), Qt::DisplayRole); - listmodel->appendRow(item); + m_listmodel->appendRow(item); + } +} + +bool ListView::event(QEvent *e) +{ + switch (e->type()) { + case QEvent::TouchBegin: + m_scrollbarState = false; + break; + case QEvent::ChildRemoved: + m_scrollbarState = true; + break; + default: + break; } + return QListView::event(e); } void ListView::onClicked(QModelIndex index) { - QVariant var = listmodel->data(index, Qt::DisplayRole); + QVariant var = m_listmodel->data(index, Qt::DisplayRole); QString desktopfp = var.value().at(0); if (var.isValid()) { @@ -108,7 +127,7 @@ void ListView::onClicked(QModelIndex index) Q_EMIT sendAppClassificationBtnClicked(); } else { Q_EMIT sendHideMainWindowSignal(); - execApp(desktopfp); + QtConcurrent::run(execApp, QString(desktopfp)); } } } @@ -116,14 +135,18 @@ void ListView::onClicked(QModelIndex index) void ListView::enterEvent(QEvent *e) { Q_UNUSED(e); - this->selectionModel()->clear(); - this->verticalScrollBar()->setVisible(true); + if (m_scrollbarState) { + this->selectionModel()->clear(); + verticalScrollBar()->setVisible(true); + } } void ListView::leaveEvent(QEvent *e) { Q_UNUSED(e); - this->verticalScrollBar()->setVisible(false); + if (m_scrollbarState) { + verticalScrollBar()->setVisible(false); + } } void ListView::paintEvent(QPaintEvent *e) diff --git a/src/UserInterface/ListView/listview.h b/src/UserInterface/ListView/listview.h index 5b145505009ffd80bf45925334b767d49c7196be..f9125e80c3dcf52ae2b70c3d5895d5dd5f26def3 100755 --- a/src/UserInterface/ListView/listview.h +++ b/src/UserInterface/ListView/listview.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef LISTVIEW_H @@ -50,11 +49,12 @@ protected: void leaveEvent(QEvent *e) Q_DECL_OVERRIDE; void paintEvent(QPaintEvent *e) override; void keyPressEvent(QKeyEvent *e); - + bool event(QEvent *e); private: int w = 0; int h = 0; int m_preRowCount; + bool m_scrollbarState = true; private Q_SLOTS: diff --git a/src/UserInterface/ListView/rightlistview.cpp b/src/UserInterface/ListView/rightlistview.cpp index 7725222240cb5716c1bd91c9d481f02082c75b05..4d5b8d5a5ef5f791ceee6a263ab766219096a19c 100755 --- a/src/UserInterface/ListView/rightlistview.cpp +++ b/src/UserInterface/ListView/rightlistview.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "rightlistview.h" @@ -22,6 +21,7 @@ #include #include #include +#include RightListView::RightListView(QWidget *parent): KListView(parent) @@ -29,12 +29,16 @@ RightListView::RightListView(QWidget *parent): initWidget(); m_delegate = new RightItemDelegate(this); this->setItemDelegate(m_delegate); - pUkuiMenuInterface = new UkuiMenuInterface; + m_ukuiMenuInterface = new UkuiMenuInterface; } RightListView::~RightListView() { - delete pUkuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } + } void RightListView::initWidget() @@ -68,11 +72,11 @@ void RightListView::dropEvent(QDropEvent *event) m_dropPos = event->pos(); if (this->indexAt(m_dropPos).isValid()) { - QVariant var = listmodel->data(indexAt(m_dropPos), Qt::DisplayRole); + QVariant var = m_listmodel->data(indexAt(m_dropPos), Qt::DisplayRole); QString desktopfp = var.value(); QFileInfo fileInfo(desktopfp); QString desktopfn = fileInfo.fileName(); - QString dragDesktopfp = pressApp.value(); + QString dragDesktopfp = m_pressApp.value(); QFileInfo dragFileInfo(dragDesktopfp); QString dragDesktopfn = dragFileInfo.fileName(); changeCollectSort(dragDesktopfn, desktopfn); @@ -128,12 +132,12 @@ void RightListView::keyPressEvent(QKeyEvent *e) void RightListView::onClicked(QModelIndex index) { - Q_EMIT sendHideMainWindowSignal(); - QVariant var = listmodel->data(index, Qt::DisplayRole); + QVariant var = m_listmodel->data(index, Qt::DisplayRole); QString desktopfp = var.value().at(0); if (var.isValid()) { QString desktopfp = var.value(); - execApp(desktopfp); + Q_EMIT sendHideMainWindowSignal(); + QtConcurrent::run(execApp, QString(desktopfp)); } } diff --git a/src/UserInterface/ListView/rightlistview.h b/src/UserInterface/ListView/rightlistview.h index b09c3619d48dc7c6a9c7b07ba1814c8810b77393..0bf0af0e28c6b61459f2534349eb29285e5e1ff4 100755 --- a/src/UserInterface/ListView/rightlistview.h +++ b/src/UserInterface/ListView/rightlistview.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef RIGHTLISTVIEW_H #define RIGHTLISTVIEW_H #include diff --git a/src/UserInterface/ListView/tabletlistview.cpp b/src/UserInterface/ListView/tabletlistview.cpp index 6a957f42d91a445db32414acced66b0c0b2f55f0..30668908c7c6acc1bd9984beef32d1312e85e94f 100755 --- a/src/UserInterface/ListView/tabletlistview.cpp +++ b/src/UserInterface/ListView/tabletlistview.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "tabletlistview.h" @@ -150,7 +149,7 @@ void TabletListView::addData(QStringList data) listmodel = new QStandardItemModel(this); this->setModel(listmodel); - Q_FOREACH (QString desktopfp, data) { + Q_FOREACH(QString desktopfp, data) { QStandardItem *item = new QStandardItem; item->setData(QVariant::fromValue(desktopfp), Qt::DisplayRole); bool appDis = appDisable(desktopfp); @@ -166,7 +165,7 @@ void TabletListView::updateData(QStringList data) { listmodel->clear(); - Q_FOREACH (QString desktopfp, data) { + Q_FOREACH(QString desktopfp, data) { QStandardItem *p_item = new QStandardItem; p_item->setData(QVariant::fromValue(desktopfp), Qt::DisplayRole); bool appDis = appDisable(desktopfp); @@ -312,15 +311,15 @@ void TabletListView::mousePressEvent(QMouseEvent *event) //左键 myDebug() << "左键点击,当前点坐标" << event->pos(); - if (((this->indexAt(event->pos()).isValid()) && (m_pageNum == FIRSTPAGE) && (((pressedpos.x() % Style::TabletItemSizeWidthFirst) >= Style::FirstPageSpace) && - ((pressedpos.x() % Style::TabletItemSizeWidthFirst) <= (Style::FirstPageSpace + Style::AppListIconSize)) && - ((pressedpos.y() % Style::AppListItemSizeHeight) >= Style::AppTopSpace) && - ((pressedpos.y() % Style::AppListItemSizeHeight) <= (Style::AppTopSpace + Style::AppListIconSize)))) || + if (((this->indexAt(event->pos()).isValid()) && (m_pageNum == FIRSTPAGE) && (((pressedpos.x() % Style::m_tabletItemSizeWidthFirst) >= Style::m_firstPageSpace) && + ((pressedpos.x() % Style::m_tabletItemSizeWidthFirst) <= (Style::m_firstPageSpace + Style::m_appListIconSize)) && + ((pressedpos.y() % Style::m_appListItemSizeHeight) >= Style::m_appTopSpace) && + ((pressedpos.y() % Style::m_appListItemSizeHeight) <= (Style::m_appTopSpace + Style::m_appListIconSize)))) || ((this->indexAt(event->pos()).isValid()) && (m_pageNum == OTHERPAGE) && - (pressedpos.x() % Style::TabletItemSizeWidthOther >= Style::OtherPageSpace && - pressedpos.x() % Style::TabletItemSizeWidthOther <= Style::OtherPageSpace + Style::AppListIconSize && - pressedpos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && - pressedpos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize))) { + (pressedpos.x() % Style::m_tabletItemSizeWidthOther >= Style::m_otherPageSpace && + pressedpos.x() % Style::m_tabletItemSizeWidthOther <= Style::m_otherPageSpace + Style::m_appListIconSize && + pressedpos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace && + pressedpos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize))) { pressApp = listmodel->data(this->indexAt(pressedpos), Qt::DisplayRole); iconClick = true; startPos = event->pos(); @@ -337,15 +336,15 @@ void TabletListView::mousePressEvent(QMouseEvent *event) //右键 myDebug() << "右键点击,当前点坐标" << event->pos(); - if (((this->indexAt(event->pos()).isValid()) && (m_pageNum == FIRSTPAGE) && ((pressedpos.x()) % Style::TabletItemSizeWidthFirst >= Style::FirstPageSpace && - (pressedpos.x()) % Style::TabletItemSizeWidthFirst <= Style::FirstPageSpace + Style::AppListIconSize && - pressedpos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && - pressedpos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize)) || + if (((this->indexAt(event->pos()).isValid()) && (m_pageNum == FIRSTPAGE) && ((pressedpos.x()) % Style::m_tabletItemSizeWidthFirst >= Style::m_firstPageSpace && + (pressedpos.x()) % Style::m_tabletItemSizeWidthFirst <= Style::m_firstPageSpace + Style::m_appListIconSize && + pressedpos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace && + pressedpos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize)) || ((this->indexAt(event->pos()).isValid()) && (m_pageNum == OTHERPAGE) && - (pressedpos.x() % Style::TabletItemSizeWidthOther >= Style::OtherPageSpace && - pressedpos.x() % Style::TabletItemSizeWidthOther <= Style::OtherPageSpace + Style::AppListIconSize && - pressedpos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && - pressedpos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize))) { + (pressedpos.x() % Style::m_tabletItemSizeWidthOther >= Style::m_otherPageSpace && + pressedpos.x() % Style::m_tabletItemSizeWidthOther <= Style::m_otherPageSpace + Style::m_appListIconSize && + pressedpos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace && + pressedpos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize))) { pressApp = listmodel->data(this->indexAt(pressedpos), Qt::DisplayRole); right_iconClick = true; right_pressedpos = pressedpos; @@ -362,6 +361,7 @@ void TabletListView::mousePressEvent(QMouseEvent *event) void TabletListView::mouseMoveEvent(QMouseEvent *event) { + myDebug(); if (event->buttons() & Qt::LeftButton & this->indexAt(event->pos()).isValid()) { if (iconClick) { if ((event->pos() - startPos).manhattanLength() >= QApplication::startDragDistance()) { @@ -408,17 +408,17 @@ void TabletListView::dragMoveEvent(QDragMoveEvent *event) m_time->start(500); if (m_pageNum == OTHERPAGE) { - if (event->pos().x() >= (Style::OtherPageViewWidth - (Style::OtherPageSpace / 2)) || event->pos().x() <= (Style::OtherPageSpace / 2)) { - if (event->pos().x() <= (Style::OtherPageSpace / 2)) { + if (event->pos().x() >= (Style::m_otherPageViewWidth - (Style::m_otherPageSpace / 2)) || event->pos().x() <= (Style::m_otherPageSpace / 2)) { + if (event->pos().x() <= (Style::m_otherPageSpace / 2)) { Q_EMIT pagenumchanged(false); } - if (event->pos().x() >= (Style::OtherPageViewWidth - (Style::OtherPageSpace / 2))) { + if (event->pos().x() >= (Style::m_otherPageViewWidth - (Style::m_otherPageSpace / 2))) { Q_EMIT pagenumchanged(true); } } } else { - if (event->pos().x() >= (Style::FirsPageViewWidth - (Style::FirstPageSpace / 2))) { + if (event->pos().x() >= (Style::m_firsPageViewWidth - (Style::m_firstPageSpace / 2))) { Q_EMIT pagenumchanged(true); } } @@ -429,12 +429,14 @@ void TabletListView::dragMoveEvent(QDragMoveEvent *event) void TabletListView::dragEnterEvent(QDragEnterEvent *event) { + myDebug(); iconClick = true; event->accept(); } void TabletListView::dropEvent(QDropEvent *event) { + myDebug(); dropPos = event->pos(); pressDesktopfp = (QString)event->mimeData()->data("INFO"); insertApplication(startPos, dropPos); @@ -442,6 +444,7 @@ void TabletListView::dropEvent(QDropEvent *event) } void TabletListView::mouseReleaseEvent(QMouseEvent *e) { + myDebug(); releasepos = e->pos();//释放的位置坐标 if (iconClick) { @@ -503,9 +506,9 @@ void TabletListView::insertApplication(QPoint pressedpos, QPoint releasepos) QString desktopfn2 = fileInfo2.fileName(); if (m_pageNum == FIRSTPAGE) { - releasepos.setX(releasepos.x() + Style::OtherPageSpace); + releasepos.setX(releasepos.x() + Style::m_otherPageSpace); } else { - releasepos.setX(releasepos.x() + Style::FirstPageSpace); + releasepos.setX(releasepos.x() + Style::m_firstPageSpace); } QVariant var3 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//释放位置右侧有应用 @@ -514,9 +517,9 @@ void TabletListView::insertApplication(QPoint pressedpos, QPoint releasepos) QString desktopfn3 = fileInfo3.fileName(); if (m_pageNum == FIRSTPAGE) { - releasepos.setX(releasepos.x() - (Style::OtherPageSpace * 2)); + releasepos.setX(releasepos.x() - (Style::m_otherPageSpace * 2)); } else { - releasepos.setX(releasepos.x() - (Style::FirstPageSpace * 2)); + releasepos.setX(releasepos.x() - (Style::m_firstPageSpace * 2)); } QVariant var4 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//右侧没有左侧有 @@ -620,22 +623,22 @@ void TabletListView::insertApplication(QPoint pressedpos, QPoint releasepos) QFileInfo fileInfo2(pressDesktopfp); QString desktopfn2 = fileInfo2.fileName(); - if (((this->indexAt(releasepos).isValid()) && (m_pageNum == FIRSTPAGE) && ((releasepos.x()) % Style::TabletItemSizeWidthFirst >= Style::FirstPageSpace && - (releasepos.x()) % Style::TabletItemSizeWidthFirst <= Style::FirstPageSpace + Style::AppListIconSize && - releasepos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && - releasepos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize)) || + if (((this->indexAt(releasepos).isValid()) && (m_pageNum == FIRSTPAGE) && ((releasepos.x()) % Style::m_tabletItemSizeWidthFirst >= Style::m_firstPageSpace && + (releasepos.x()) % Style::m_tabletItemSizeWidthFirst <= Style::m_firstPageSpace + Style::m_appListIconSize && + releasepos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace && + releasepos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize)) || ((this->indexAt(releasepos).isValid()) && (m_pageNum == OTHERPAGE) && - (releasepos.x() % Style::TabletItemSizeWidthOther >= Style::OtherPageSpace && - releasepos.x() % Style::TabletItemSizeWidthOther <= Style::OtherPageSpace + Style::AppListIconSize && - releasepos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && - releasepos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize))) { + (releasepos.x() % Style::m_tabletItemSizeWidthOther >= Style::m_otherPageSpace && + releasepos.x() % Style::m_tabletItemSizeWidthOther <= Style::m_otherPageSpace + Style::m_appListIconSize && + releasepos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace && + releasepos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize))) { return; } if (m_pageNum == FIRSTPAGE) { - releasepos.setX(releasepos.x() + Style::FirstPageSpace); + releasepos.setX(releasepos.x() + Style::m_firstPageSpace); } else { - releasepos.setX(releasepos.x() + Style::OtherPageSpace); + releasepos.setX(releasepos.x() + Style::m_otherPageSpace); } QVariant var3 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//释放位置右侧有应用 @@ -644,9 +647,9 @@ void TabletListView::insertApplication(QPoint pressedpos, QPoint releasepos) QString desktopfn3 = fileInfo3.fileName(); if (m_pageNum == FIRSTPAGE) { - releasepos.setX(releasepos.x() - Style::FirstPageSpace * 2); + releasepos.setX(releasepos.x() - Style::m_firstPageSpace * 2); } else { - releasepos.setX(releasepos.x() - Style::OtherPageSpace * 2); + releasepos.setX(releasepos.x() - Style::m_otherPageSpace * 2); } QVariant var4 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//右侧没有左侧有 diff --git a/src/UserInterface/ListView/tabletlistview.h b/src/UserInterface/ListView/tabletlistview.h index 5980d2c909ac00a6464a81ed139da716d6cf7e35..5c2e83186cccfd72090218060ae8cc3a9a2db679 100755 --- a/src/UserInterface/ListView/tabletlistview.h +++ b/src/UserInterface/ListView/tabletlistview.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef TABLETLISTVIEW_H diff --git a/src/UserInterface/Other/classify_btn_scrollarea.cpp b/src/UserInterface/Other/classify_btn_scrollarea.cpp index 95c2619879cea56888387cc754895635910283d7..b8eaadb9e926ccbb68d1f6f586d3064421042d2b 100755 --- a/src/UserInterface/Other/classify_btn_scrollarea.cpp +++ b/src/UserInterface/Other/classify_btn_scrollarea.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "classify_btn_scrollarea.h" diff --git a/src/UserInterface/Other/classify_btn_scrollarea.h b/src/UserInterface/Other/classify_btn_scrollarea.h index 743c8d1d7400e7c22180b115486795a4aff45b7e..ecb4967533621daaaff6ab52fb6b905171063f72 100755 --- a/src/UserInterface/Other/classify_btn_scrollarea.h +++ b/src/UserInterface/Other/classify_btn_scrollarea.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef CLASSIFYSCROLLAREA_H diff --git a/src/UserInterface/Other/lettertooltip.cpp b/src/UserInterface/Other/lettertooltip.cpp index 176b48bec3604932492e4b58fae2c411463ed5a0..030e544618d6ed976cd09ada5740abac2fc40d0f 100755 --- a/src/UserInterface/Other/lettertooltip.cpp +++ b/src/UserInterface/Other/lettertooltip.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "lettertooltip.h" #include #include diff --git a/src/UserInterface/Other/lettertooltip.h b/src/UserInterface/Other/lettertooltip.h index 4f64e0a9a2505cda868905d6d8abc665731ac536..81c0411c69f2bef5397c9f58bf5969a0b9436ea6 100755 --- a/src/UserInterface/Other/lettertooltip.h +++ b/src/UserInterface/Other/lettertooltip.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef LETTERTOOLTIP_H #define LETTERTOOLTIP_H #include diff --git a/src/UserInterface/Other/rotationlabel.cpp b/src/UserInterface/Other/rotationlabel.cpp index 0c08e2eba084abae5b7f4edc39e647787e43f1c5..7badedb08ad3bc9a5d112d1cb2c3ab008d0d2ee1 100644 --- a/src/UserInterface/Other/rotationlabel.cpp +++ b/src/UserInterface/Other/rotationlabel.cpp @@ -1,6 +1,24 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "rotationlabel.h" #include #include +#include "utility.h" RotationLabel::RotationLabel(QWidget *parent) : QLabel(parent) @@ -32,6 +50,11 @@ void RotationLabel::paintEvent(QPaintEvent *event) return QLabel::paintEvent(event); } +void RotationLabel::mouseReleaseEvent(QMouseEvent *ev) +{ + Q_UNUSED(ev); +} + void RotationLabel::setIcon(const QPixmap &pixmap) { m_pixmap = pixmap; diff --git a/src/UserInterface/Other/rotationlabel.h b/src/UserInterface/Other/rotationlabel.h index f99cdbbf51c8357d88e9544ff60c3137e4bb6004..65a7c3b1c6d4623d9418dd14485d53509530784c 100644 --- a/src/UserInterface/Other/rotationlabel.h +++ b/src/UserInterface/Other/rotationlabel.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef ROTATIONLABEL_H #define ROTATIONLABEL_H #include @@ -13,6 +30,7 @@ protected: int rotation(); void setRotation(int rot); void paintEvent(QPaintEvent *event); + void mouseReleaseEvent(QMouseEvent *ev); private: int m_rotation = 0; QPixmap m_pixmap; diff --git a/src/UserInterface/Other/scrollarea.cpp b/src/UserInterface/Other/scrollarea.cpp index 65c26e5587e35b7f22a4d0d1199f32f721dd9b81..c8592ab7a450a0a38fac74a4962eeff286f3e331 100755 --- a/src/UserInterface/Other/scrollarea.cpp +++ b/src/UserInterface/Other/scrollarea.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "scrollarea.h" @@ -74,23 +73,13 @@ void ScrollAreaWid::paintEvent(QPaintEvent *event) ScrollArea::ScrollArea() { - // this->verticalScrollBar()->setVisible(false); - // this->setFocusPolicy(Qt::NoFocus); - //// this->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); - this->setFixedWidth(1330); - // this->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu); + this->setFocusPolicy(Qt::NoFocus); + this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn); + this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn); this->setFrameShape(QFrame::NoFrame); - // this->verticalScrollBar()->setProperty("drawScrollBarGroove",false); - // this->verticalScrollBar()->setAttribute(Qt::WA_TranslucentBackground, false); - this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff); - this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); this->verticalScrollBar()->setVisible(false); - //滚动条设置 - QPalette p = this->verticalScrollBar()->palette(); - QColor color(255, 255, 255); - color.setAlphaF(0.25); - p.setColor(QPalette::Active, QPalette::Button, color); - this->verticalScrollBar()->setPalette(p); + this->horizontalScrollBar()->setVisible(false); + this->setStyleSheet("QWidget{background:transparent;}"); } void ScrollArea::setFocusToNextChild() diff --git a/src/UserInterface/Other/scrollarea.h b/src/UserInterface/Other/scrollarea.h index 96a5f57460307ac4fa47f748554eed4061ed303f..c8d8d80f149dc552f61b764484a430c58a2d7153 100755 --- a/src/UserInterface/Other/scrollarea.h +++ b/src/UserInterface/Other/scrollarea.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef SCROLLAREA_H diff --git a/src/UserInterface/RightClickMenu/menubox.cpp b/src/UserInterface/RightClickMenu/menubox.cpp index c6f972917c448c7f199e1b459a4e8a143caa9aeb..ef40c1de7f0e2bcf86400cb09e0227199eb40dc9 100755 --- a/src/UserInterface/RightClickMenu/menubox.cpp +++ b/src/UserInterface/RightClickMenu/menubox.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "menubox.h" #include #include diff --git a/src/UserInterface/RightClickMenu/menubox.h b/src/UserInterface/RightClickMenu/menubox.h index ea48961396c13b7a8f100eb7fab971a4caee2eb2..b6184ec9fd082b19746429d51f5fc865a380d9db 100755 --- a/src/UserInterface/RightClickMenu/menubox.h +++ b/src/UserInterface/RightClickMenu/menubox.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef MENUBOX_H #define MENUBOX_H #include diff --git a/src/UserInterface/RightClickMenu/rightclickmenu.cpp b/src/UserInterface/RightClickMenu/rightclickmenu.cpp index f27460756ab64ea8f653e1b7d016990b726713d6..de3cc8540ed063cc505902ca08bed23450cec3e8 100755 --- a/src/UserInterface/RightClickMenu/rightclickmenu.cpp +++ b/src/UserInterface/RightClickMenu/rightclickmenu.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "rightclickmenu.h" @@ -47,8 +46,15 @@ RightClickMenu::RightClickMenu(QWidget *parent): RightClickMenu::~RightClickMenu() { - delete m_cmdProc; - delete m_ukuiMenuInterface; + if (m_cmdProc) { + delete m_cmdProc; + m_cmdProc = nullptr; + } + + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } QPixmap RightClickMenu::getIconPixmap(QString iconstr, int type) @@ -101,6 +107,36 @@ void RightClickMenu::removeFromCollectionActionTriggerSlot() m_actionNumber = 18; } +bool RightClickMenu::hasMultipleUsers() +{ + QDBusInterface interface("org.freedesktop.Accounts", + "/org/freedesktop/Accounts", + "org.freedesktop.DBus.Properties", + QDBusConnection::systemBus()); + if (!interface.isValid()) { + qCritical() << QDBusConnection::systemBus().lastError().message(); + return false; + } + + QDBusReply reply = interface.call("Get","org.freedesktop.Accounts","HasMultipleUsers"); + return reply.value().toBool(); +} + +bool RightClickMenu::canSwitch() +{ + QDBusInterface interface("org.freedesktop.DisplayManager", + "/org/freedesktop/DisplayManager/Seat0", + "org.freedesktop.DBus.Properties", + QDBusConnection::systemBus()); + if (!interface.isValid()) { + qCritical() << QDBusConnection::systemBus().lastError().message(); + return false; + } else { + QDBusReply reply = interface.call("Get","org.freedesktop.DisplayManager.Seat","CanSwitch"); + return reply.value().toBool(); + } +} + void RightClickMenu::fixToTaskbarActionTriggerSlot() { QDBusInterface iface("com.ukui.panel.desktop", @@ -265,26 +301,26 @@ int RightClickMenu::showShutdownMenu(const QPoint &pos, const bool &isFullWind) { m_actionNumber = 0; MenuBox m_showShutMenu; + QDBusReply reply; connect(&m_showShutMenu, &MenuBox::sendMainWinActiveSignal, this, &RightClickMenu::sendMainWinActiveSignal); QDBusInterface iface(DBUS_SESSION_NAME, DBUS_SESSION_PATH, DBUS_SESSION_INTERFACE, QDBusConnection::sessionBus()); - QDBusReply reply = iface.call("canSwitch"); - if (reply.isValid() && reply.value() == true) { + if (canSwitch() && hasMultipleUsers()) { m_showShutMenu.addAction(QIcon(getIconPixmap("stock-people-symbolic", 1)), tr("Switch user"), this, SLOT(switchUserActionTriggerSlot())); } reply = iface.call("canHibernate"); - if (reply.isValid() && reply.value() == true) { + if (reply.isValid() && reply.value()) { m_showShutMenu.addAction(QIcon(getIconPixmap("kylin-sleep-symbolic", 1)), tr("Hibernate"), this, SLOT(hibernateActionTriggerSlot())); } reply = iface.call("canSuspend"); - if (reply.isValid() && reply.value() == true) { + if (reply.isValid() && reply.value()) { m_showShutMenu.addAction(QIcon(getIconPixmap("kylin-hebernate-symbolic", 1)), tr("Sleep"), this, SLOT(sleepActionTriggerSlot())); } @@ -293,21 +329,21 @@ int RightClickMenu::showShutdownMenu(const QPoint &pos, const bool &isFullWind) this, SLOT(lockScreenActionTriggerSlot())); reply = iface.call("canLogout"); - if (reply.isValid() && reply.value() == true) { + if (reply.isValid() && reply.value()) { m_showShutMenu.addAction(QIcon(getIconPixmap("system-logout-symbolic", 1)), tr("Log Out"), this, SLOT(logoutActionTriggerSlot())); } reply = iface.call("canReboot"); - if (reply.isValid() && reply.value() == true) { + if (reply.isValid() && reply.value()) { m_showShutMenu.addAction(QIcon(getIconPixmap("system-restart-symbolic", 1)), tr("Restart"), this, SLOT(rebootActionTriggerSlot())); } reply = iface.call("canPowerOff"); - if (reply.isValid() && reply.value() == true) { + if (reply.isValid() && reply.value()) { m_showShutMenu.addAction(QIcon(getIconPixmap("exit-symbolic", 1)), tr("Power Off"), this, SLOT(shutdownActionTriggerSlot())); } diff --git a/src/UserInterface/RightClickMenu/rightclickmenu.h b/src/UserInterface/RightClickMenu/rightclickmenu.h index 407529438c6d5d5c5c7db516ac0d6da8d765348e..573b08ede6a96bcbf65a85fdfa38a93929b83a4e 100755 --- a/src/UserInterface/RightClickMenu/rightclickmenu.h +++ b/src/UserInterface/RightClickMenu/rightclickmenu.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef RIGHTCLICKMENU_H @@ -78,7 +77,6 @@ private: int m_actionNumber; QProcess *m_cmdProc = nullptr; UkuiMenuInterface *m_ukuiMenuInterface = nullptr; - QStringList m_whiteList; protected: @@ -92,6 +90,10 @@ protected: */ QPixmap getIconPixmap(QString iconstr, int type); + bool hasMultipleUsers(); + + bool canSwitch(); + private Q_SLOTS: /** * @brief Fixed to all software diff --git a/src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp b/src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp index 0143c32c2defec0f9620a384304acdf264cc9f57..d559941d86a58c7d17730b312862b1724472ba0e 100755 --- a/src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp +++ b/src/UserInterface/RightClickMenu/tabletrightclickmenu.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "tabletrightclickmenu.h" @@ -119,7 +118,7 @@ void TabletRightClickMenu::unfixedFromAllActionTriggerSlot() QString desktopfn = fileInfo.fileName(); m_setting->beginGroup("lockapplication"); - Q_FOREACH (QString desktop, m_setting->allKeys()) { + Q_FOREACH(QString desktop, m_setting->allKeys()) { if (m_setting->value(desktop).toInt() > m_setting->value(desktopfn).toInt()) { m_setting->setValue(desktop, m_setting->value(desktop).toInt() - 1); } diff --git a/src/UserInterface/RightClickMenu/tabletrightclickmenu.h b/src/UserInterface/RightClickMenu/tabletrightclickmenu.h index a91451ca915f12535119d68b15d83f18fee47012..a4a8c8e4ddc3eb47be8bc59f6d5599bcc1950140 100755 --- a/src/UserInterface/RightClickMenu/tabletrightclickmenu.h +++ b/src/UserInterface/RightClickMenu/tabletrightclickmenu.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef TABLETRIGHTCLICKMENU_H diff --git a/src/UserInterface/ViewItem/full_item_delegate.cpp b/src/UserInterface/ViewItem/full_item_delegate.cpp index 5e5c358c86d1623318708fb0a0c826f468cfafec..a09c72a8e16f31eae59360e72a5c4e32808a8aa5 100755 --- a/src/UserInterface/ViewItem/full_item_delegate.cpp +++ b/src/UserInterface/ViewItem/full_item_delegate.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "full_item_delegate.h" @@ -24,12 +23,15 @@ FullItemDelegate::FullItemDelegate(QObject *parent, int module): KItemDelegate(parent) { this->module = module; - pUkuiMenuInterface = new UkuiMenuInterface; + m_ukuiMenuInterface = new UkuiMenuInterface; } FullItemDelegate::~FullItemDelegate() { - delete pUkuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const @@ -69,7 +71,7 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti painter->save(); painter->setOpacity(1); QString desktopfp = index.data(Qt::DisplayRole).value(); - QString iconstr = pUkuiMenuInterface->getAppIcon(desktopfp); + QString iconstr = m_ukuiMenuInterface->getAppIcon(desktopfp); QIcon icon; QFileInfo iconFileInfo(iconstr); @@ -115,13 +117,13 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti } } - QString appname = pUkuiMenuInterface->getAppName(desktopfp); + QString appname = m_ukuiMenuInterface->getAppName(desktopfp); QRect iconRect; QRect textRect; - iconRect = QRect(rect.x() + (rect.width() - Style::AppListIconSize) / 2, - rect.y() + 20, - Style::AppListIconSize, - Style::AppListIconSize); + iconRect = QRect(rect.x() + (rect.width() - Style::m_appListIconSize) / 2, + rect.y() + Style::m_appTopSpace, + Style::m_appListIconSize, + Style::m_appListIconSize); icon.paint(painter, iconRect); painter->restore(); painter->save(); @@ -140,9 +142,9 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti painter->restore(); textRect = QRect(rect.x() + 5, - iconRect.bottom() + Style::AppSpaceBetweenIconText, + iconRect.bottom() + Style::m_appSpaceBetweenIconText, rect.width() - 10, - rect.height() - iconRect.height() - Style::AppSpaceBetweenIconText); + Style::m_appTextRectHeight); painter->save(); //添加最近安装蓝色标签 bool is_recentapp = false; @@ -153,9 +155,9 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti is_recentapp = true; appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 23, Qt::TextShowMnemonic); textRect = QRect(rect.x() + 18, - iconRect.bottom() + Style::AppSpaceBetweenIconText, + iconRect.bottom() + Style::m_appSpaceBetweenIconText, rect.width() - 23, - rect.height() - iconRect.height() - Style::AppSpaceBetweenIconText); + Style::m_appTextRectHeight); painter->setPen(QPen(Qt::NoPen)); painter->setBrush(QColor("#4d94ff")); int x = 0; @@ -217,5 +219,5 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti QSize FullItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { - return QSize(Style::AppListItemSizeWidth, Style::AppListItemSizeWidth); + return QSize(Style::m_appListItemSizeWidth, Style::m_appListItemSizeWidth); } diff --git a/src/UserInterface/ViewItem/full_item_delegate.h b/src/UserInterface/ViewItem/full_item_delegate.h index 601939e9e9ce7adcb048423b4024c61165a8e6a8..acc384d6259b215fa7eecacd06f1b0f0efe22e9a 100755 --- a/src/UserInterface/ViewItem/full_item_delegate.h +++ b/src/UserInterface/ViewItem/full_item_delegate.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef FULLITEMDELEGATE_H diff --git a/src/UserInterface/ViewItem/itemdelegate.cpp b/src/UserInterface/ViewItem/itemdelegate.cpp index 7effecd0a314c546798f22223c2a35a6e64604ad..ba41cc725c373bfae8518276ad3aa9166e9246c7 100755 --- a/src/UserInterface/ViewItem/itemdelegate.cpp +++ b/src/UserInterface/ViewItem/itemdelegate.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "itemdelegate.h" @@ -26,12 +25,15 @@ ItemDelegate::ItemDelegate(QObject *parent, int module): KItemDelegate(parent) { this->module = module; - pUkuiMenuInterface = new UkuiMenuInterface; + m_ukuiMenuInterface = new UkuiMenuInterface; } ItemDelegate::~ItemDelegate() { - delete pUkuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const @@ -86,7 +88,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, if (module > 0) { if (strlist.at(1).toInt() == 1) { QRect iconRect = QRect(rect.x() + 11, rect.y() + (rect.height() - 32) / 2, 32, 32); - QString iconstr = pUkuiMenuInterface->getAppIcon(strlist.at(0)); + QString iconstr = m_ukuiMenuInterface->getAppIcon(strlist.at(0)); QIcon icon; QFileInfo iconFileInfo(iconstr); @@ -130,7 +132,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, painter->save(); icon.paint(painter, iconRect, Qt::AlignCenter); - QString appname = pUkuiMenuInterface->getAppName(strlist.at(0)); + QString appname = m_ukuiMenuInterface->getAppName(strlist.at(0)); QFontMetrics fm = painter->fontMetrics(); QString appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 62, Qt::TextShowMnemonic); painter->drawText(QRect(iconRect.right() + 15, rect.y(), @@ -155,7 +157,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, if (option.state & QStyle::State_MouseOver) { QToolTip::showText(QCursor::pos(), appname); } else { - QToolTip::showText(option.widget->mapToGlobal(QPoint(rect.bottomRight().x(), rect.center().y())), appname); + QToolTip::showText(option.widget->mapToGlobal(QPoint(rect.bottomRight().x(), rect.bottom())), appname); } } else { QToolTip::hideText(); @@ -227,6 +229,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, icon.paint(painter, iconRect, Qt::AlignCenter); QString appname = strlist.at(1); + QString url = QUrl(strlist.at(0)).path().remove(appname); painter->setOpacity(1); painter->save(); painter->setPen(QPen(option.palette.text().color())); @@ -239,21 +242,21 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, painter->restore(); if ((option.state & QStyle::State_MouseOver) || (option.state & QStyle::State_HasFocus)) { + QToolTip::showText(QCursor::pos(), "为了刷新"); int len = fm.boundingRect(appname).width(); - + //富文本,tooltip可自动换行 + QString tipString = QString(""); if (len > rect.width() - 64) { - if (option.state & QStyle::State_MouseOver) { - QToolTip::showText(QCursor::pos(), appname); - } else { - QToolTip::showText(option.widget->mapToGlobal(QPoint(rect.bottomRight().x(), rect.center().y())), appname); - } + tipString += appname +"
"+ tr("path:") + url; } else { - QToolTip::hideText(); + tipString += tr("path:") + url; } + tipString += QString("
"); + QToolTip::showText(option.widget->mapToGlobal(QPoint(rect.right() + 20, rect.center().y())), tipString); } } else { QRect iconRect = QRect(rect.left() + 11, rect.y() + (rect.height() - 32) / 2, 32, 32); - QString iconstr = pUkuiMenuInterface->getAppIcon(strlist.at(0)); + QString iconstr = m_ukuiMenuInterface->getAppIcon(strlist.at(0)); QIcon icon; QFileInfo iconFileInfo(iconstr); @@ -296,7 +299,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, } icon.paint(painter, iconRect, Qt::AlignCenter); - QString appname = pUkuiMenuInterface->getAppName(strlist.at(0)); + QString appname = m_ukuiMenuInterface->getAppName(strlist.at(0)); QFileInfo fileInfo(strlist.at(0)); QString desktopfn = fileInfo.fileName(); diff --git a/src/UserInterface/ViewItem/itemdelegate.h b/src/UserInterface/ViewItem/itemdelegate.h index a57708eb4e8b006e467caca5ba4fc5ec09882373..a364527046759637618cb7eb679de13ef9be98e0 100755 --- a/src/UserInterface/ViewItem/itemdelegate.h +++ b/src/UserInterface/ViewItem/itemdelegate.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef ITEMDELEGATE_H diff --git a/src/UserInterface/ViewItem/kitemdelegate.cpp b/src/UserInterface/ViewItem/kitemdelegate.cpp index 540536e252f342bec60a85b763690dc15acd9619..ab3edb7a1f476719b4ff9ba6841a407c16f5e8ac 100755 --- a/src/UserInterface/ViewItem/kitemdelegate.cpp +++ b/src/UserInterface/ViewItem/kitemdelegate.cpp @@ -1,6 +1,27 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "kitemdelegate.h" KItemDelegate::KItemDelegate(QObject *parent): QStyledItemDelegate(parent) { } + +KItemDelegate::~KItemDelegate() +{ +} diff --git a/src/UserInterface/ViewItem/kitemdelegate.h b/src/UserInterface/ViewItem/kitemdelegate.h index 5145b78ed5145c93c29ad60c90a1728dfed58f7c..e85e2772038a7da1d51e2549646b7cf48d968d3a 100755 --- a/src/UserInterface/ViewItem/kitemdelegate.h +++ b/src/UserInterface/ViewItem/kitemdelegate.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef KITEMDELEGATE_H #define KITEMDELEGATE_H #include @@ -8,9 +25,10 @@ class KItemDelegate : public QStyledItemDelegate Q_OBJECT public: KItemDelegate(QObject *parent); + ~KItemDelegate(); int module = 0; - UkuiMenuInterface *pUkuiMenuInterface = nullptr; + UkuiMenuInterface *m_ukuiMenuInterface = nullptr; }; #endif // KITEMDELEGATE_H diff --git a/src/UserInterface/ViewItem/recent_item_delegate.cpp b/src/UserInterface/ViewItem/recent_item_delegate.cpp index db471cf966f0c08294c06310a22375c0530bcad1..fb38efd2dc08968f0f851f78b16eac20beccad63 100755 --- a/src/UserInterface/ViewItem/recent_item_delegate.cpp +++ b/src/UserInterface/ViewItem/recent_item_delegate.cpp @@ -1,18 +1,38 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "recent_item_delegate.h" -recentitemdelegate::recentitemdelegate(QObject *parent, int module): +RecentItemDelegate::RecentItemDelegate(QObject *parent, int module): KItemDelegate(parent) { this->module = module; - pUkuiMenuInterface = new UkuiMenuInterface; + m_ukuiMenuInterface = new UkuiMenuInterface; } -recentitemdelegate::~recentitemdelegate() +RecentItemDelegate::~RecentItemDelegate() { - delete pUkuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } -void recentitemdelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const +void RecentItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const { if (index.isValid()) { // QStyleOptionViewItem viewOption(option);//用来在视图中画一个item @@ -130,7 +150,7 @@ void recentitemdelegate::paint(QPainter *painter, const QStyleOptionViewItem &op } } else { QRect iconRect = QRect(rect.left() + 11, rect.y() + (rect.height() - 32) / 2, 32, 32); - QString iconstr = pUkuiMenuInterface->getAppIcon(strlist.at(0)); + QString iconstr = m_ukuiMenuInterface->getAppIcon(strlist.at(0)); QIcon icon; QFileInfo iconFileInfo(iconstr); @@ -173,7 +193,7 @@ void recentitemdelegate::paint(QPainter *painter, const QStyleOptionViewItem &op } icon.paint(painter, iconRect, Qt::AlignCenter); - QString appname = pUkuiMenuInterface->getAppName(strlist.at(0)); + QString appname = m_ukuiMenuInterface->getAppName(strlist.at(0)); QFileInfo fileInfo(strlist.at(0)); QString desktopfn = fileInfo.fileName(); @@ -219,7 +239,7 @@ void recentitemdelegate::paint(QPainter *painter, const QStyleOptionViewItem &op } } -QSize recentitemdelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const +QSize RecentItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const { // QStringList strlist=index.model()->data(index,Qt::DisplayRole).toStringList(); // if(strlist.at(1).toInt()==1) diff --git a/src/UserInterface/ViewItem/recent_item_delegate.h b/src/UserInterface/ViewItem/recent_item_delegate.h index a613d901cceb7ca7bc21b53a40c7db1f2980ecdb..e30fd848ceaad34cc98f368191002c3b6846c467 100755 --- a/src/UserInterface/ViewItem/recent_item_delegate.h +++ b/src/UserInterface/ViewItem/recent_item_delegate.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef RECENTITEMDELEGATE_H #define RECENTITEMDELEGATE_H #include "itemdelegate.h" @@ -8,15 +25,15 @@ #include "src/UtilityFunction/utility.h" #include "kitemdelegate.h" -class recentitemdelegate : public KItemDelegate +class RecentItemDelegate : public KItemDelegate { Q_OBJECT public: /** * @param module为0时为常用模块,1为字母模块、2为功能模块、3为搜索模块 */ - recentitemdelegate(QObject *parent, int module); - ~recentitemdelegate(); + RecentItemDelegate(QObject *parent, int module); + ~RecentItemDelegate(); void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; }; diff --git a/src/UserInterface/ViewItem/right_item_delegate.cpp b/src/UserInterface/ViewItem/right_item_delegate.cpp index b50de3d44ba0f3286166dc4ed5aefc0b376041df..f3ec2efd8a59692944d2df584a2a11927134d2a2 100755 --- a/src/UserInterface/ViewItem/right_item_delegate.cpp +++ b/src/UserInterface/ViewItem/right_item_delegate.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "right_item_delegate.h" #include "utility.h" #include @@ -5,12 +22,15 @@ RightItemDelegate::RightItemDelegate(QObject *parent): KItemDelegate(parent) { - pUkuiMenuInterface = new UkuiMenuInterface; + m_ukuiMenuInterface = new UkuiMenuInterface; } RightItemDelegate::~RightItemDelegate() { - delete pUkuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void RightItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const @@ -65,7 +85,7 @@ void RightItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt painter->save(); painter->setOpacity(1); QString desktopfp = index.data(Qt::DisplayRole).value(); - QString iconstr = pUkuiMenuInterface->getAppIcon(desktopfp); + QString iconstr = m_ukuiMenuInterface->getAppIcon(desktopfp); QIcon icon; QFileInfo iconFileInfo(iconstr); @@ -111,7 +131,7 @@ void RightItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt } } - QString appname = pUkuiMenuInterface->getAppName(desktopfp); + QString appname = m_ukuiMenuInterface->getAppName(desktopfp); QRect iconRect; QRect textRect; iconRect = QRect(rect.x() + 28, @@ -139,9 +159,9 @@ void RightItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt is_recentapp = true; appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 23, Qt::TextShowMnemonic); textRect = QRect(rect.x() + 18, - iconRect.bottom() + Style::AppSpaceBetweenIconText, + iconRect.bottom() + Style::m_appSpaceBetweenIconText, rect.width() - 23, - rect.height() - iconRect.height() - Style::AppSpaceBetweenIconText); + rect.height() - iconRect.height() - Style::m_appSpaceBetweenIconText); painter->setPen(QPen(Qt::NoPen)); painter->setBrush(QColor("#4d94ff")); int x = 0; diff --git a/src/UserInterface/ViewItem/right_item_delegate.h b/src/UserInterface/ViewItem/right_item_delegate.h index ee62ed642d9032df35391b651782c0a8acd7daf2..0d70f027f18c6853082ec9def0cca1bdc9a15656 100755 --- a/src/UserInterface/ViewItem/right_item_delegate.h +++ b/src/UserInterface/ViewItem/right_item_delegate.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef RIGHTITEMDELEGATE_H #define RIGHTITEMDELEGATE_H #include diff --git a/src/UserInterface/ViewItem/tablet_full_itemdelegate.cpp b/src/UserInterface/ViewItem/tablet_full_itemdelegate.cpp index 58e487a7fdaf49179f6c2141f7e7ab50c4726587..05e52ddb8a2d6f9db6989639ebfdc147e3474a92 100755 --- a/src/UserInterface/ViewItem/tablet_full_itemdelegate.cpp +++ b/src/UserInterface/ViewItem/tablet_full_itemdelegate.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "tablet_full_itemdelegate.h" @@ -112,14 +111,14 @@ void TabletFullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem } bool bigIcon = index.data(Qt::UserRole + 2).toBool(); - int iconTopSpace = (rect.height() - Style::AppListIconSize) / 2; - int iconLeftSpace = (rect.width() - Style::AppListIconSize) / 2; + int iconTopSpace = (rect.height() - Style::m_appListIconSize) / 2; + int iconLeftSpace = (rect.width() - Style::m_appListIconSize) / 2; if (bigIcon) { iconRect = QRect(rect.x() + iconLeftSpace - 6, rect.y() + iconTopSpace - 6, - Style::AppListIconSize + 12, - Style::AppListIconSize + 12); + Style::m_appListIconSize + 12, + Style::m_appListIconSize + 12); textRect = QRect(rect.x(), rect.bottom() - iconTopSpace, rect.width(), @@ -127,8 +126,8 @@ void TabletFullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem } else { iconRect = QRect(rect.x() + iconLeftSpace, rect.y() + iconTopSpace, - Style::AppListIconSize, - Style::AppListIconSize); + Style::m_appListIconSize, + Style::m_appListIconSize); textRect = QRect(rect.x(), rect.bottom() - iconTopSpace, rect.width(), @@ -165,10 +164,10 @@ void TabletFullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem QPixmap pixmap; if (bigIcon) { - pixmap = icon.pixmap((Style::AppListBigIconSize, Style::AppListBigIconSize), QIcon::Disabled, QIcon::Off); //wgx - pixmap = pixmap.scaled(Style::AppListBigIconSize, Style::AppListBigIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + pixmap = icon.pixmap((Style::m_appListBigIconSize, Style::m_appListBigIconSize), QIcon::Disabled, QIcon::Off); //wgx + pixmap = pixmap.scaled(Style::m_appListBigIconSize, Style::m_appListBigIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); } else { - pixmap = icon.pixmap((Style::AppListIconSize, Style::AppListIconSize), QIcon::Disabled, QIcon::Off); //wgx + pixmap = icon.pixmap((Style::m_appListIconSize, Style::m_appListIconSize), QIcon::Disabled, QIcon::Off); //wgx } icon = QIcon(pixmap); @@ -176,10 +175,10 @@ void TabletFullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem QPixmap mPixmap; if (bigIcon) { - mPixmap = icon.pixmap((Style::AppListBigIconSize, Style::AppListBigIconSize)); //wgx - mPixmap = mPixmap.scaled(Style::AppListBigIconSize, Style::AppListBigIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); + mPixmap = icon.pixmap((Style::m_appListBigIconSize, Style::m_appListBigIconSize)); //wgx + mPixmap = mPixmap.scaled(Style::m_appListBigIconSize, Style::m_appListBigIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); } else { - mPixmap = icon.pixmap((Style::AppListIconSize, Style::AppListIconSize)); //wgx + mPixmap = icon.pixmap((Style::m_appListIconSize, Style::m_appListIconSize)); //wgx } icon = QIcon(mPixmap); @@ -209,6 +208,6 @@ QSize TabletFullItemDelegate::sizeHint(const QStyleOptionViewItem &option, const // { // return QSize(0,0); // } - return QSize(Style::TabletItemSizeWidthFirst, Style::AppListItemSizeHeight); + return QSize(Style::m_tabletItemSizeWidthFirst, Style::m_appListItemSizeHeight); } diff --git a/src/UserInterface/ViewItem/tablet_full_itemdelegate.h b/src/UserInterface/ViewItem/tablet_full_itemdelegate.h index 8407557e8f0b102b38b7b26460956560f665ab9a..a21803bd8bfa175e23a01febc83decab5357a893 100755 --- a/src/UserInterface/ViewItem/tablet_full_itemdelegate.h +++ b/src/UserInterface/ViewItem/tablet_full_itemdelegate.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef TABLETITEMDELEGATE_H diff --git a/src/UserInterface/Widget/animationpage.cpp b/src/UserInterface/Widget/animationpage.cpp index 2676f294dc42cd63ae2e038095f58ceeb7f83fa8..a756da3cf495e5af8cc88b20bcd51c5ad0a4ab57 100755 --- a/src/UserInterface/Widget/animationpage.cpp +++ b/src/UserInterface/Widget/animationpage.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "animationpage.h" #include "utility.h" #include diff --git a/src/UserInterface/Widget/animationpage.h b/src/UserInterface/Widget/animationpage.h index 9cefa24dbeca80b4adbfde82841ee7c7cbf0e517..c0cd67d06f4ba90becd3c6876180758bed12db12 100755 --- a/src/UserInterface/Widget/animationpage.h +++ b/src/UserInterface/Widget/animationpage.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef ANIMATIONPAGE_H #define ANIMATIONPAGE_H #include diff --git a/src/UserInterface/Widget/full_commonuse_widget.cpp b/src/UserInterface/Widget/full_commonuse_widget.cpp index 26d86b589e38b485818c18742ffe37fc79914abf..6adab1a9874dda193e911b00126d5ba8ab4782fd 100755 --- a/src/UserInterface/Widget/full_commonuse_widget.cpp +++ b/src/UserInterface/Widget/full_commonuse_widget.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "full_commonuse_widget.h" @@ -31,7 +30,10 @@ FullCommonUseWidget::FullCommonUseWidget(QWidget *parent) : FullCommonUseWidget::~FullCommonUseWidget() { - delete m_ukuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void FullCommonUseWidget::initUi() @@ -48,11 +50,11 @@ void FullCommonUseWidget::initUi() m_scrollArea = new ScrollArea(); m_scrollAreaWid = new ScrollAreaWid(this); m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground); - m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); + m_scrollArea->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight); m_scrollArea->setWidget(m_scrollAreaWid); + m_scrollArea->setAlignment(Qt::AlignCenter); m_scrollArea->setStyleSheet("QWidget{background:transparent;}"); m_scrollArea->setWidgetResizable(true); - m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_scrollAreaWidLayout = new QVBoxLayout(m_scrollAreaWid); m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0); m_scrollAreaWidLayout->setSpacing(10); @@ -146,9 +148,9 @@ void FullCommonUseWidget::initAppListWidget() m_listView = new FullListView(this, 0); m_listView->installEventFilter(this); m_scrollAreaWidLayout->addWidget(m_listView); - m_listView->setFixedWidth(m_scrollArea->width()); - connect(m_listView, &FullListView::sendItemClickedSignal, this, &FullCommonUseWidget::execApplication); + m_listView->setFixedWidth(m_scrollAreaWid->width()); connect(m_listView, &FullListView::sendUpdateAppListSignal, this, &FullCommonUseWidget::updateListViewSlot); + connect(m_listView, &FullListView::sendCollectViewUpdate, this, &FullCommonUseWidget::sendCollectViewUpdate); connect(m_listView, &FullListView::sendHideMainWindowSignal, this, &FullCommonUseWidget::sendHideMainWindowSignal); connect(m_listView, &FullListView::sendSetslidebar, this, &FullCommonUseWidget::onSetSlider); } @@ -176,7 +178,7 @@ void FullCommonUseWidget::fillAppList() { m_data.clear(); - Q_FOREACH (QString desktopfp, UkuiMenuInterface::allAppVector) { + Q_FOREACH(QString desktopfp, UkuiMenuInterface::allAppVector) { m_data.append(desktopfp); } @@ -184,15 +186,6 @@ void FullCommonUseWidget::fillAppList() resizeScrollAreaControls(); } -/** - * 执行应用程序 - */ -void FullCommonUseWidget::execApplication(QString desktopfp) -{ - Q_EMIT sendHideMainWindowSignal(); - execApp(desktopfp); -} - void FullCommonUseWidget::selectFirstItem() { m_listView->setCurrentIndex(m_listView->model()->index(0, 0)); @@ -268,7 +261,7 @@ void FullCommonUseWidget::updateListView() { m_data.clear(); - Q_FOREACH (QString desktopfp, m_ukuiMenuInterface->getAllClassification()) { + Q_FOREACH(QString desktopfp, m_ukuiMenuInterface->getAllClassification()) { m_data.append(desktopfp); } @@ -281,7 +274,7 @@ void FullCommonUseWidget::updateListView() void FullCommonUseWidget::repaintWidget() { - m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); + m_scrollArea->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight); m_scrollAreaWidLayout->removeWidget(m_listView); m_listView->setParent(nullptr); delete m_listView; diff --git a/src/UserInterface/Widget/full_commonuse_widget.h b/src/UserInterface/Widget/full_commonuse_widget.h index 9f605384c9ec6592b9c7784c895ea972757ef655..dfea5b59b03b4123a08981a4232d2d281bcb654f 100755 --- a/src/UserInterface/Widget/full_commonuse_widget.h +++ b/src/UserInterface/Widget/full_commonuse_widget.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef FULLCOMMONUSEWIDGET_H @@ -102,11 +101,6 @@ protected: bool eventFilter(QObject *watched, QEvent *event); public Q_SLOTS: - /** - * @brief Open the application - * @param arg: Desktop file path - */ - void execApplication(QString desktopfp); /** * @brief Update the application list slot function */ @@ -134,6 +128,7 @@ Q_SIGNALS: void changeScrollValue(int value, int maximumValue); void setFocusToSideWin(); void sendUpdateOtherView(); + void sendCollectViewUpdate(); }; #endif // FULLCOMMONUSEWIDGET_H diff --git a/src/UserInterface/Widget/full_function_widget.cpp b/src/UserInterface/Widget/full_function_widget.cpp index 7cc84645cf4d3d83f1d1eba0b51aee3112d4d672..6e95e131466e0f41b0b5ce01a699c277580619e7 100755 --- a/src/UserInterface/Widget/full_function_widget.cpp +++ b/src/UserInterface/Widget/full_function_widget.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "full_function_widget.h" @@ -32,7 +31,10 @@ FullFunctionWidget::FullFunctionWidget(QWidget *parent) : FullFunctionWidget::~FullFunctionWidget() { - delete m_ukuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void FullFunctionWidget::initUi() @@ -45,7 +47,7 @@ void FullFunctionWidget::initUi() m_iconListWid = new QWidget(this); m_iconListWid->setAttribute(Qt::WA_TranslucentBackground); m_iconListWid->setAutoFillBackground(false); - m_applistWid->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); + m_applistWid->setFixedWidth(Style::m_applistAreaWidth); m_iconListWid->setFixedSize(Style::m_leftWidWidth, Style::m_applistWidHeight); m_verticalScrollBar = new QScrollBar(m_scrollArea); m_verticalScrollBar->installEventFilter(this); @@ -111,15 +113,15 @@ void FullFunctionWidget::initAppListWidget() layout->setContentsMargins(0, 0, 0, 0); m_applistWid->setLayout(layout); m_scrollArea = new ScrollArea; - m_scrollArea->setStyleSheet("background:transparent"); m_scrollAreaWid = new ScrollAreaWid(this); m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground); m_scrollArea->setFixedSize(m_applistWid->width(), m_applistWid->height()); + m_scrollAreaWid->adjustSize(); m_scrollArea->setWidget(m_scrollAreaWid); m_scrollArea->setWidgetResizable(true); m_scrollAreaWidLayout = new QVBoxLayout(m_scrollAreaWid); m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0); - m_scrollAreaWidLayout->setSpacing(10); + m_scrollAreaWidLayout->setSpacing(0); layout->addWidget(m_scrollArea); connect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged, this, &FullFunctionWidget::valueChangedSlot); @@ -183,7 +185,7 @@ void FullFunctionWidget::fillAppList() void FullFunctionWidget::insertClassificationBtn(QString category) { - SplitBarFrame *classificationbtn = new SplitBarFrame(this, category, m_scrollArea->width() - 12, 30, 2); + SplitBarFrame *classificationbtn = new SplitBarFrame(this, category, m_scrollArea->width() - 12, 50, 2); classificationbtn->setAttribute(Qt::WA_TranslucentBackground); classificationbtn->setAutoFillBackground(false); m_scrollAreaWidLayout->addWidget(classificationbtn); @@ -208,18 +210,9 @@ void FullFunctionWidget::insertAppList(QStringList desktopfplist) } listview->addData(m_data); - connect(listview, &FullListView::sendItemClickedSignal, this, &FullFunctionWidget::execApplication); connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullFunctionWidget::sendHideMainWindowSignal); connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullFunctionWidget::sendUpdateCommonView); -} - -/** - * 执行应用程序 - */ -void FullFunctionWidget::execApplication(QString desktopfp) -{ - Q_EMIT sendHideMainWindowSignal(); - execApp(desktopfp); + connect(listview, &FullListView::sendCollectViewUpdate, this, &FullFunctionWidget::sendCollectViewUpdate); } void FullFunctionWidget::on_setAreaScrollBarValue(int value) @@ -249,7 +242,7 @@ void FullFunctionWidget::updateAppListView() fillAppList(); //刷新图标列表界面 - Q_FOREACH (QAbstractButton *button, m_buttonList) { + Q_FOREACH(QAbstractButton *button, m_buttonList) { m_btnGroup->removeButton(button); } @@ -293,12 +286,12 @@ void FullFunctionWidget::resizeScrollAreaControls() rowcount = listview->model()->rowCount() / dividend; } - listview->setFixedSize(m_scrollArea->width(), listview->gridSize().height()*rowcount); + listview->setFixedSize(m_scrollArea->width(), listview->gridSize().height() * rowcount); areaHeight += listview->height() + 50; row++; } - m_scrollArea->widget()->setFixedSize(m_scrollArea->width(), areaHeight - 10); + m_scrollArea->widget()->setFixedSize(m_scrollArea->width(), areaHeight); } /** @@ -307,7 +300,7 @@ void FullFunctionWidget::resizeScrollAreaControls() void FullFunctionWidget::initIconListWidget() { m_iconListWidLayout = new QVBoxLayout(m_iconListWid); - m_iconListWidLayout->setSpacing(Style::LeftSpaceBetweenItem); + m_iconListWidLayout->setSpacing(Style::m_leftSpaceBetweenItem); m_iconListWidLayout->setContentsMargins(45, 0, 0, 0); m_topSpacerItem = new QSpacerItem(20, 40, QSizePolicy::Fixed, QSizePolicy::Expanding); m_bottomSpacerItem = new QSpacerItem(20, 40, QSizePolicy::Fixed, QSizePolicy::Expanding); @@ -322,7 +315,7 @@ void FullFunctionWidget::initIconListWidget() void FullFunctionWidget::on_setScrollBarValue(int value) { - m_verticalScrollBar->setMaximum(m_scrollAreaWidHeight - Style::m_applistWidHeight); + m_verticalScrollBar->setMaximum(m_scrollAreaWidHeight - Style::m_applistWidHeight + Style::m_scrollBarHeight); m_verticalScrollBar->setValue(value); } @@ -335,9 +328,9 @@ void FullFunctionWidget::initIconListScrollArea() for (int i = 0; i < m_classificationList.size(); i++) { FunctionClassifyButton *iconbtn = new FunctionClassifyButton( - Style::LeftBtnWidth, - Style::LeftBtnHeight, - Style::LeftIconSize, + Style::m_leftBtnWidth, + Style::m_leftBtnHeight, + Style::m_leftIconSize, m_classificationList.at(i), true, true); @@ -350,7 +343,7 @@ void FullFunctionWidget::initIconListScrollArea() m_iconListWidLayout->addItem(m_bottomSpacerItem); int id = 0; - Q_FOREACH (QAbstractButton *btn, m_buttonList) { + Q_FOREACH(QAbstractButton *btn, m_buttonList) { m_btnGroup->addButton(btn, id++); } @@ -367,7 +360,7 @@ void FullFunctionWidget::btnGroupClickedSlot(QAbstractButton *btn) disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged, this, &FullFunctionWidget::valueChangedSlot); - Q_FOREACH (QAbstractButton *button, m_buttonList) { + Q_FOREACH(QAbstractButton *button, m_buttonList) { if (m_btnGroup->id(btn) == m_buttonList.indexOf(button)) { m_beginPos = m_scrollArea->verticalScrollBar()->sliderPosition(); m_endPos = m_scrollAreaWidLayout->itemAt(m_btnGroup->id(btn) * 2)->widget()->y(); @@ -414,17 +407,22 @@ void FullFunctionWidget::valueChangedSlot(int value) int index = 0; while (index <= m_classificationList.count() - 1) { - int min = m_scrollAreaWidLayout->itemAt(2 * index)->widget()->y(); + int min = 0; int max = 0; if (index == m_classificationList.count() - 1) { + min = m_scrollAreaWidLayout->itemAt(2 * index - 1)->widget()->geometry().bottom() - Style::m_boundaryOffset; max = m_scrollAreaWid->height(); + } else if (index == 0) { + min = 0; + max = m_scrollAreaWidLayout->itemAt(2 * index + 1)->widget()->geometry().bottom() - Style::m_boundaryOffset; } else { - max = m_scrollAreaWidLayout->itemAt(2 * (index + 1))->widget()->y(); + min = m_scrollAreaWidLayout->itemAt(2 * index - 1)->widget()->geometry().bottom() - Style::m_boundaryOffset; + max = m_scrollAreaWidLayout->itemAt(2 * index + 1)->widget()->geometry().bottom() - Style::m_boundaryOffset; } if (value >= min && value < max) { - Q_FOREACH (QAbstractButton *button, m_buttonList) { + Q_FOREACH(QAbstractButton *button, m_buttonList) { FunctionClassifyButton *fcbutton = qobject_cast(button); if (index == m_buttonList.indexOf(button)) { @@ -452,9 +450,9 @@ void FullFunctionWidget::enterAnimation() m_animation->setDuration(200);//动画总时间 m_animation->setStartValue(QRect(0, 0, 0, m_iconListWid->height())); - m_animation->setEndValue(QRect(Style::LeftMargin, + m_animation->setEndValue(QRect(Style::m_leftMargin, 0, - Style::LeftBtnWidth, + Style::m_leftBtnWidth, m_iconListWid->height())); m_animation->setEasingCurve(QEasingCurve::InQuart); m_animation->start(); @@ -464,16 +462,16 @@ void FullFunctionWidget::enterAnimation() void FullFunctionWidget::setFunctionBtnGeometry() { // int height=m_classificationList.size()*Style::LeftBtnHeight+(m_classificationList.size()-1)*Style::LeftSpaceBetweenItem; - m_iconListScrollAreaWid->setGeometry(QRect(Style::LeftMargin, + m_iconListScrollAreaWid->setGeometry(QRect(Style::m_leftMargin, 0, - Style::LeftBtnWidth, + Style::m_leftBtnWidth, m_iconListWid->height())); m_iconListScrollAreaWid->show(); } void FullFunctionWidget::repaintWidget() { - m_applistWid->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); + m_applistWid->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight + Style::m_scrollBarHeight); m_iconListWid->setFixedSize(Style::m_leftWidWidth, Style::m_applistWidHeight); m_scrollArea->setFixedSize(m_applistWid->width(), m_applistWid->height()); updateAppListView(); diff --git a/src/UserInterface/Widget/full_function_widget.h b/src/UserInterface/Widget/full_function_widget.h index 931104c233b79984877f2dff096522bb21e25fa6..743a00512bf872411c40b74f8380496e98805b47 100755 --- a/src/UserInterface/Widget/full_function_widget.h +++ b/src/UserInterface/Widget/full_function_widget.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef FULLFUNCTIONWIDGET_H @@ -142,11 +141,6 @@ protected: bool eventFilter(QObject *watched, QEvent *event); public Q_SLOTS: - /** - * @brief Open the application - * @param arg: Desktop file path - */ - void execApplication(QString desktopfp); /** * @brief Respond to button click * @param btn: QButtonGroup button @@ -197,6 +191,7 @@ Q_SIGNALS: void sendUpdateCommonView(); + void sendCollectViewUpdate(); }; #endif // FULLFUNCTIONWIDGET_H diff --git a/src/UserInterface/Widget/full_letter_widget.cpp b/src/UserInterface/Widget/full_letter_widget.cpp index 1ebc2c5d52d2bb8417f7a44b2a619436fdd0c0c9..6bf48bbd6602f9f28848f06e1eb6dbe824881323 100755 --- a/src/UserInterface/Widget/full_letter_widget.cpp +++ b/src/UserInterface/Widget/full_letter_widget.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "full_letter_widget.h" @@ -28,8 +27,14 @@ FullLetterWidget::FullLetterWidget(QWidget *parent) : FullLetterWidget::~FullLetterWidget() { - delete m_ukuiMenuInterface; - delete m_letterListBottomSpacer; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } + if (m_letterListBottomSpacer) { + delete m_letterListBottomSpacer; + m_letterListBottomSpacer = nullptr; + } } /** @@ -41,7 +46,7 @@ void FullLetterWidget::initUi() this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); this->setAttribute(Qt::WA_TranslucentBackground); m_letterListWid = new QWidget(this); - m_letterListWid->setFixedSize(Style::m_leftWidWidth, Style::m_applistWidHeight); + m_letterListWid->setFixedWidth(Style::m_leftWidWidth); m_verticalScrollBar = new QScrollBar(m_scrollArea); m_verticalScrollBar->installEventFilter(this); m_verticalScrollBar->setOrientation(Qt::Vertical); @@ -77,15 +82,13 @@ void FullLetterWidget::initAppListWidget() // layout->setContentsMargins(0,0,0,0); // m_applistWid->setLayout(layout); m_scrollArea = new ScrollArea(); - m_scrollArea->setStyleSheet("background:transparent"); m_scrollAreaWid = new ScrollAreaWid(this); m_scrollArea->setWidget(m_scrollAreaWid); - m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); - m_scrollArea->setWidgetResizable(true); - // m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); + m_scrollAreaWid->setFixedWidth(Style::m_applistWidWidth); + m_scrollArea->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight); m_scrollAreaWidLayout = new QVBoxLayout; m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0); - m_scrollAreaWidLayout->setSpacing(10); + m_scrollAreaWidLayout->setSpacing(0); m_scrollAreaWid->setLayout(m_scrollAreaWidLayout); m_mainLayout->addWidget(m_scrollArea); QSpacerItem *m_spaceItem1 = nullptr; @@ -189,7 +192,7 @@ void FullLetterWidget::fillAppList() m_letterList.append(letterstr);//存储分类字符 //插入字母分类按钮 - SplitBarFrame *letterbtn = new SplitBarFrame(this, letterstr, m_scrollArea->width() - 12, 30, 1); + SplitBarFrame *letterbtn = new SplitBarFrame(this, letterstr, m_scrollArea->width() - 12, 50, 1); m_scrollAreaWidLayout->addWidget(letterbtn); //插入应用列表 FullListView *listview = new FullListView(this, 1); @@ -208,24 +211,15 @@ void FullLetterWidget::fillAppList() } listview->addData(m_data); - connect(listview, &FullListView::sendItemClickedSignal, this, &FullLetterWidget::execApplication); connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullLetterWidget::sendHideMainWindowSignal); connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullLetterWidget::sendUpdateCommonView); + connect(listview, &FullListView::sendCollectViewUpdate, this, &FullLetterWidget::sendCollectViewUpdate); } } resizeScrollAreaControls(); } -/** - * 执行应用程序 - */ -void FullLetterWidget::execApplication(QString desktopfp) -{ - Q_EMIT sendHideMainWindowSignal(); - execApp(desktopfp); -} - void FullLetterWidget::on_setAreaScrollBarValue(int value) { // m_scrollArea->verticalScrollBar()->setMaximum(maxmumValue); @@ -253,7 +247,7 @@ void FullLetterWidget::updateAppListView() fillAppList(); //刷新字母列表界面 - Q_FOREACH (QAbstractButton *button, m_buttonList) { + Q_FOREACH(QAbstractButton *button, m_buttonList) { m_btnGroup->removeButton(button); } @@ -277,7 +271,7 @@ void FullLetterWidget::updateAppListView() void FullLetterWidget::on_setScrollBarValue(int value) { - m_verticalScrollBar->setMaximum(m_scrollAreaWidHeight - Style::m_applistWidHeight); + m_verticalScrollBar->setMaximum(m_scrollAreaWidHeight - Style::m_applistWidHeight + Style::m_scrollBarHeight); m_verticalScrollBar->setValue(value); } @@ -304,12 +298,13 @@ void FullLetterWidget::resizeScrollAreaControls() rowcount = listview->model()->rowCount() / dividend; } - listview->setFixedSize(m_scrollArea->width(), listview->gridSize().height()*rowcount); - areaHeight += listview->height() + 50; + listview->setFixedSize(m_scrollArea->width(), listview->gridSize().height() * rowcount); + areaHeight += (listview->height() + 50); + row++; } - m_scrollArea->widget()->setFixedSize(m_scrollArea->width(), areaHeight - 10); + m_scrollArea->widget()->setFixedSize(m_scrollArea->width(), areaHeight); } /** @@ -346,7 +341,7 @@ void FullLetterWidget::initLetterListScrollArea() LetterClassifyButton *letterbtn = new LetterClassifyButton(m_letterListWid, true, m_letterList.at(i)); - letterbtn->setFixedSize(Style::LeftLetterBtnHeight, Style::LeftLetterBtnHeight); + letterbtn->setFixedSize(Style::m_leftLetterBtnHeight, Style::m_leftLetterBtnHeight); m_buttonList.append(letterbtn); m_letterListWidLayout->addWidget(letterbtn); m_letterListWidLayout->setAlignment(letterbtn, Qt::AlignLeft); @@ -356,7 +351,7 @@ void FullLetterWidget::initLetterListScrollArea() m_letterListWidLayout->addItem(m_letterListBottomSpacer); int id = 0; - Q_FOREACH (QAbstractButton *btn, m_buttonList) { + Q_FOREACH(QAbstractButton *btn, m_buttonList) { m_btnGroup->addButton(btn, id++); } @@ -373,7 +368,7 @@ void FullLetterWidget::btnGroupClickedSlot(QAbstractButton *btn) disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged, this, &FullLetterWidget::valueChangedSlot); - Q_FOREACH (QAbstractButton *button, m_buttonList) { + Q_FOREACH(QAbstractButton *button, m_buttonList) { LetterClassifyButton *letterbtn = qobject_cast(button); if (m_btnGroup->id(btn) == m_buttonList.indexOf(button)) { @@ -427,17 +422,23 @@ void FullLetterWidget::valueChangedSlot(int value) int index = 0; while (index <= m_letterList.count() - 1) { - int min = m_scrollAreaWidLayout->itemAt(2 * index)->widget()->y(); + + int min = 0; int max = 0; if (index == m_letterList.count() - 1) { + min = m_scrollAreaWidLayout->itemAt(2 * index - 1)->widget()->geometry().bottom() - Style::m_boundaryOffset; max = m_scrollAreaWid->height(); + } else if (index == 0) { + min = 0; + max = m_scrollAreaWidLayout->itemAt(2 * index + 1)->widget()->geometry().bottom() - Style::m_boundaryOffset; } else { - max = m_scrollAreaWidLayout->itemAt(2 * (index + 1))->widget()->y(); + min = m_scrollAreaWidLayout->itemAt(2 * index - 1)->widget()->geometry().bottom() - Style::m_boundaryOffset; + max = m_scrollAreaWidLayout->itemAt(2 * index + 1)->widget()->geometry().bottom() - Style::m_boundaryOffset; } if (value >= min && value < max) { - Q_FOREACH (QAbstractButton *button, m_buttonList) { + Q_FOREACH(QAbstractButton *button, m_buttonList) { LetterClassifyButton *letterbtn = qobject_cast(button); if (index == m_buttonList.indexOf(button)) { @@ -457,12 +458,12 @@ void FullLetterWidget::valueChangedSlot(int value) void FullLetterWidget::enterAnimation() { m_animation->setDuration(200);//动画总时间 - m_animation->setStartValue(QRect(0, (m_letterListWid->height() - (m_letterList.size() + 1)*Style::LeftLetterBtnHeight) / 2, - 0, (m_letterList.size() + 1)*Style::LeftLetterBtnHeight)); - m_animation->setEndValue(QRect(Style::LeftMargin, - (m_letterListWid->height() - (m_letterList.size() + 1)*Style::LeftLetterBtnHeight) / 2, - Style::LeftLetterBtnHeight * 2, - (m_letterList.size() + 1)*Style::LeftLetterBtnHeight)); + m_animation->setStartValue(QRect(0, (m_letterListWid->height() - (m_letterList.size() + 1)*Style::m_leftLetterBtnHeight) / 2, + 0, (m_letterList.size() + 1)*Style::m_leftLetterBtnHeight)); + m_animation->setEndValue(QRect(Style::m_leftMargin, + (m_letterListWid->height() - (m_letterList.size() + 1)*Style::m_leftLetterBtnHeight) / 2, + Style::m_leftLetterBtnHeight * 2, + (m_letterList.size() + 1)*Style::m_leftLetterBtnHeight)); m_animation->setEasingCurve(QEasingCurve::InQuart); m_animation->start(); // m_letterListScrollArea->show(); @@ -480,13 +481,14 @@ void FullLetterWidget::setLetterBtnGeometry() void FullLetterWidget::repaintWidget() { m_letterListWid->setFixedSize(Style::m_leftWidWidth, Style::m_applistWidHeight); - m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); + m_scrollArea->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight + Style::m_scrollBarHeight); + m_scrollAreaWid->setFixedWidth(Style::m_applistWidWidth); updateAppListView(); } void FullLetterWidget::widgetMakeZero() { - Q_FOREACH (QAbstractButton *button, m_buttonList) { + Q_FOREACH(QAbstractButton *button, m_buttonList) { QString letterstr = button->text().at(0); int num = m_letterList.indexOf(letterstr); diff --git a/src/UserInterface/Widget/full_letter_widget.h b/src/UserInterface/Widget/full_letter_widget.h index 662408b9d5efdc125c4d2229e0563ad117948425..addc2a8d91acb909a1cac8fb026e41d625beeac4 100755 --- a/src/UserInterface/Widget/full_letter_widget.h +++ b/src/UserInterface/Widget/full_letter_widget.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef FULLLETTERWIDGET_H @@ -147,11 +146,6 @@ public Q_SLOTS: * @param btn: QButtonGroup button */ void btnGroupClickedSlot(QAbstractButton *btn); - /** - * @brief Open the application - * @param arg: Desktop file path - */ - void execApplication(QString desktopfp); /** * @brief Update application list slot function */ @@ -199,6 +193,8 @@ Q_SIGNALS: void changeScrollValue(int value, int maximumValue); void sendUpdateCommonView(); + + void sendCollectViewUpdate(); }; #endif // FULLLETTERWIDGET_H diff --git a/src/UserInterface/Widget/full_searchresult_widget.cpp b/src/UserInterface/Widget/full_searchresult_widget.cpp index efdee496d0e4078a9120560df7ccb0f92a595aac..344add3eb36626c3e01832e24944af23e1e74757 100755 --- a/src/UserInterface/Widget/full_searchresult_widget.cpp +++ b/src/UserInterface/Widget/full_searchresult_widget.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "full_searchresult_widget.h" #include @@ -29,7 +28,10 @@ FullSearchResultWidget::FullSearchResultWidget(QWidget *parent) : FullSearchResultWidget::~FullSearchResultWidget() { - delete m_ukuiMenuInterface; + if (m_ukuiMenuInterface) { + delete m_ukuiMenuInterface; + m_ukuiMenuInterface = nullptr; + } } void FullSearchResultWidget::initUi() @@ -47,7 +49,7 @@ void FullSearchResultWidget::initUi() m_scrollArea->setStyleSheet("background:transparent"); m_scrollAreaWid = new ScrollAreaWid(this); m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground); - m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); + m_scrollArea->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight); m_scrollArea->setWidget(m_scrollAreaWid); m_scrollArea->setWidgetResizable(true); m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); @@ -136,9 +138,9 @@ void FullSearchResultWidget::initAppListWidget() m_listView->installEventFilter(this); m_scrollAreaWidLayout->addWidget(m_listView); m_listView->setFixedWidth(m_scrollArea->width()); - connect(m_listView, &FullListView::sendItemClickedSignal, this, &FullSearchResultWidget::execApplication); connect(m_listView, &FullListView::sendHideMainWindowSignal, this, &FullSearchResultWidget::sendHideMainWindowSignal); connect(m_listView, &FullListView::sendSetslidebar, this, &FullSearchResultWidget::onSetSlider); + connect(m_listView, &FullListView::sendCollectViewUpdate, this, &FullSearchResultWidget::sendCollectViewUpdate); } void FullSearchResultWidget::fillAppList() @@ -147,20 +149,12 @@ void FullSearchResultWidget::fillAppList() m_listView->addData(m_data); resizeScrollAreaControls(); } -/** - * 执行应用程序 - */ -void FullSearchResultWidget::execApplication(QString desktopfp) -{ - Q_EMIT sendHideMainWindowSignal(); - execApp(desktopfp); -} void FullSearchResultWidget::updateAppListView(QVector arg) { m_data.clear(); - Q_FOREACH (QStringList appinfo, arg) { + Q_FOREACH(QStringList appinfo, arg) { m_data.append(appinfo.at(0)); } @@ -228,7 +222,7 @@ void FullSearchResultWidget::selectFirstItemTab() void FullSearchResultWidget::repaintWidget() { - m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); + m_scrollArea->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight); resizeScrollAreaControls(); m_scrollAreaWidHeight = m_scrollAreaWid->height() + 1; initVerticalScrollBar(); diff --git a/src/UserInterface/Widget/full_searchresult_widget.h b/src/UserInterface/Widget/full_searchresult_widget.h index 43c19555bfb63c60d35430b1623809f914a4abd6..d5a47e193bbb63de1d51d300a36f69e6f1df52ef 100755 --- a/src/UserInterface/Widget/full_searchresult_widget.h +++ b/src/UserInterface/Widget/full_searchresult_widget.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef FULLSEARCHRESULTWIDGET_H @@ -90,11 +89,6 @@ protected: bool eventFilter(QObject *watched, QEvent *event); public Q_SLOTS: - /** - * @brief Open the application - * @param arg: Desktop file path - */ - void execApplication(QString desktopfp); void selectFirstItemTab(); @@ -114,6 +108,7 @@ Q_SIGNALS: */ void sendHideMainWindowSignal(); void setFocusToSideWin(); + void sendCollectViewUpdate(); }; #endif // FULLSEARCHRESULTWIDGET_H diff --git a/src/UserInterface/Widget/function_Widget.cpp b/src/UserInterface/Widget/function_Widget.cpp index 5cf1f5e4441b9e11b769cc14126e697c6f39ebca..cc0eee7854a9da6a8578ef2bac4be3337df7e6c6 100755 --- a/src/UserInterface/Widget/function_Widget.cpp +++ b/src/UserInterface/Widget/function_Widget.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "function_Widget.h" #include "style.h" #include @@ -6,7 +23,6 @@ #include #include #include -#include #include #include "currenttime_interface.h" #include "style.h" @@ -210,7 +226,7 @@ void FunctionWidget::initUi() } mainLayout->addWidget(searchEditBtn); - focusPlug = new pluginwidget(this); + focusPlug = new PluginWidget(this); mainLayout->addWidget(focusPlug); focusPlug->setFixedSize(400, 638); mainLayout->addStretch(); diff --git a/src/UserInterface/Widget/function_Widget.h b/src/UserInterface/Widget/function_Widget.h index 3681c7829e2ea818442daf0bb319d83a85067475..9fe81d934884b5f89246f3c6393c6626da110d59 100755 --- a/src/UserInterface/Widget/function_Widget.h +++ b/src/UserInterface/Widget/function_Widget.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef FUNCTIONWIDGET_H #define FUNCTIONWIDGET_H @@ -11,7 +28,6 @@ #include #include #include -#include "AbstractInterface.h" #include #include "plugin_widget.h" #include "currenttime_interface.h" @@ -23,7 +39,7 @@ public: FunctionWidget(QWidget *parent); ~FunctionWidget(); //QWidget* focusPlug=nullptr; - pluginwidget *focusPlug = nullptr; + PluginWidget *focusPlug = nullptr; void setDownOpacityEffect(const qreal &num); protected: diff --git a/src/UserInterface/Widget/function_button_widget.cpp b/src/UserInterface/Widget/function_button_widget.cpp index dbb116cd8d35039160ed21474017cb0a4f09cd97..22d355378c966b2cb96cd3c8f58886a77768b914 100755 --- a/src/UserInterface/Widget/function_button_widget.cpp +++ b/src/UserInterface/Widget/function_button_widget.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "function_button_widget.h" @@ -55,9 +54,9 @@ void FunctionButtonWidget::initUi() for (int row = 0; row < 6; row++) for (int col = 0; col < 2; col++) { - FunctionClassifyButton *iconbtn = new FunctionClassifyButton(Style::LeftBtnWidth, - Style::LeftBtnHeight, - Style::LeftIconSize, + FunctionClassifyButton *iconbtn = new FunctionClassifyButton(Style::m_leftBtnWidth, + Style::m_leftBtnHeight, + Style::m_leftIconSize, m_categoryList.at(row * 2 + col), false, false); @@ -73,7 +72,7 @@ void FunctionButtonWidget::initUi() if (QGSettings::isSchemaInstalled(QString("org.ukui.style").toLocal8Bit())) { QGSettings *gsetting = new QGSettings(QString("org.ukui.style").toLocal8Bit()); connect(gsetting, &QGSettings::changed, this, [ = ] { - Q_FOREACH (QAbstractButton *btn, m_buttonList) + Q_FOREACH(QAbstractButton *btn, m_buttonList) { FunctionClassifyButton *fbtn = qobject_cast(btn); fbtn->updateBtnState(); diff --git a/src/UserInterface/Widget/function_button_widget.h b/src/UserInterface/Widget/function_button_widget.h index 3faed62c51e622da453cea79527f77a05350a18e..419a0e80dcb24d88cc930c02130c24a6a5e3ef24 100755 --- a/src/UserInterface/Widget/function_button_widget.h +++ b/src/UserInterface/Widget/function_button_widget.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef FUNCTIONBUTTONWIDGET_H diff --git a/src/UserInterface/Widget/letter_button_widget.cpp b/src/UserInterface/Widget/letter_button_widget.cpp index f1103406ba7a7d90a055523a209e08cf924fe58d..667dfec427e9ecc750b5f13670c23e5181b81594 100755 --- a/src/UserInterface/Widget/letter_button_widget.cpp +++ b/src/UserInterface/Widget/letter_button_widget.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "letter_button_widget.h" diff --git a/src/UserInterface/Widget/letter_button_widget.h b/src/UserInterface/Widget/letter_button_widget.h index bf505985f054b11a3396436df122eeb222d8485e..ee13f27439623276e88b6f6c2cde6be541d2f746 100755 --- a/src/UserInterface/Widget/letter_button_widget.h +++ b/src/UserInterface/Widget/letter_button_widget.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef LETTERBUTTONWIDGET_H diff --git a/src/UserInterface/Widget/main_view_widget.cpp b/src/UserInterface/Widget/main_view_widget.cpp index 8a883d8ca825df40561c6784afbe2274a270511b..c53fc5391e2fc89fe80170379037674bbe223d1e 100755 --- a/src/UserInterface/Widget/main_view_widget.cpp +++ b/src/UserInterface/Widget/main_view_widget.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "main_view_widget.h" @@ -55,23 +54,12 @@ void MainViewWidget::styleChangeSlot(const QString &style) void MainViewWidget::paintEvent(QPaintEvent *event) { -// double transparency = getTransparency(); - QRect rect = this->rect(); + QRect rect = this->rect().adjusted(5, 5, 0, -5); QPainterPath path; QPainter painter(this); + path.addRoundedRect(rect, 10, 10); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; painter.setPen(Qt::transparent); - qreal radius = 10; - path.moveTo(rect.topRight() - QPointF(radius, 0)); - path.lineTo(rect.topLeft() + QPointF(radius, 0)); - path.quadTo(rect.topLeft(), rect.topLeft() + QPointF(0, radius)); - path.lineTo(rect.bottomLeft() + QPointF(0, -radius)); - path.quadTo(rect.bottomLeft(), rect.bottomLeft() + QPointF(radius, 0)); - path.lineTo(rect.bottomRight() - QPointF(radius, 0)); - 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.setPen(Qt::transparent); painter.setOpacity(0.58); painter.fillPath(path, m_backColor); QWidget::paintEvent(event); diff --git a/src/UserInterface/Widget/main_view_widget.h b/src/UserInterface/Widget/main_view_widget.h index ebebf5a54b25c7d944b2745102e3c6f238edd6da..2466398c71d9a7e9f57a31227adfceed18883e02 100755 --- a/src/UserInterface/Widget/main_view_widget.h +++ b/src/UserInterface/Widget/main_view_widget.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef MAINVIEWWIDGET_H diff --git a/src/UserInterface/Widget/plugin_widget.cpp b/src/UserInterface/Widget/plugin_widget.cpp index 2881e055dba29ab40ade8647d510c3ddf42db775..b97520312ed6bce974d2e3a87b3d4cdf86547311 100755 --- a/src/UserInterface/Widget/plugin_widget.cpp +++ b/src/UserInterface/Widget/plugin_widget.cpp @@ -1,14 +1,31 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "plugin_widget.h" #include "KySmallPluginInterface.h" #include -pluginwidget::pluginwidget(QWidget *parent) : QWidget(parent) +PluginWidget::PluginWidget(QWidget *parent) : QWidget(parent) { this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); this->setAttribute(Qt::WA_StyledBackground, true); this->setFocusPolicy(Qt::NoFocus); init(); } -void pluginwidget::init() +void PluginWidget::init() { QPluginLoader loader("/opt/small-plugin/bin/libsmall-plugin-manage.so"); QObject *plugin = loader.instance(); diff --git a/src/UserInterface/Widget/plugin_widget.h b/src/UserInterface/Widget/plugin_widget.h index af41deb9669a19c112136cf39a2bfb45785d175f..8541ce9bf26f42a1d4100ab40e3bf9ef02201b60 100755 --- a/src/UserInterface/Widget/plugin_widget.h +++ b/src/UserInterface/Widget/plugin_widget.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef PLUGINWIDGET_H #define PLUGINWIDGET_H @@ -8,8 +25,6 @@ #include #include #include -#include -#include #include #include #include @@ -17,11 +32,11 @@ #include #include #include -class pluginwidget : public QWidget +class PluginWidget : public QWidget { Q_OBJECT public: - explicit pluginwidget(QWidget *parent = nullptr); + explicit PluginWidget(QWidget *parent = nullptr); void init(); }; diff --git a/src/UserInterface/Widget/splitbar_frame.cpp b/src/UserInterface/Widget/splitbar_frame.cpp index 00b9d4af61c64d5479a44079a5ac921bff3eefeb..83cfbaa2e375d541f12976d1ce927de58709b8b0 100755 --- a/src/UserInterface/Widget/splitbar_frame.cpp +++ b/src/UserInterface/Widget/splitbar_frame.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "splitbar_frame.h" @@ -45,7 +44,7 @@ void SplitBarFrame::initAppBtn() layout->setContentsMargins(15, 0, 0, 0); layout->setSpacing(6); m_textLabel->setAutoFillBackground(false); - m_textLabel->setAlignment(Qt::AlignCenter); + m_textLabel->setAlignment(Qt::AlignTop); m_textLabel->setText(m_category); m_textLabel->adjustSize(); QPalette pe = m_textLabel->palette(); diff --git a/src/UserInterface/Widget/splitbar_frame.h b/src/UserInterface/Widget/splitbar_frame.h index cafd1e0f996b0835f0dc61594895e96a9f3866dc..079d75750633421a801793869a570e4bf14b9e6c 100755 --- a/src/UserInterface/Widget/splitbar_frame.h +++ b/src/UserInterface/Widget/splitbar_frame.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef PUSHBUTTON_H diff --git a/src/UserInterface/Widget/tabview_widget.cpp b/src/UserInterface/Widget/tabview_widget.cpp deleted file mode 100755 index c07987b010a27cbb237c36fa41dde9b2ecb246f9..0000000000000000000000000000000000000000 --- a/src/UserInterface/Widget/tabview_widget.cpp +++ /dev/null @@ -1,36 +0,0 @@ -#include "tabview_widget.h" -#include - -TabViewWidget::TabViewWidget() -{ - setStyleSheet("background:transparent"); - collectionTab = new QWidget(); - recentTab = new QWidget(); - collectionTab->setObjectName(QString::fromUtf8("collectionTab")); - recentTab->setObjectName(QString::fromUtf8("recentTab")); - this->addTab(collectionTab, QString()); - this->addTab(recentTab, QString()); - this->tabBar()->hide(); - this->setCurrentIndex(0); - initAppListWidget(); - updateListView(); -} - -void TabViewWidget::initAppListWidget() -{ - m_collectListView = new RightListView(collectionTab); - m_collectListView->setFixedSize(352, 428); - m_collectListView->show(); -} - -void TabViewWidget::updateListView() -{ - m_data.clear(); - - Q_FOREACH (QString desktopfp, m_ukuiMenuInterface->getAllClassification()) { - m_data.append(desktopfp); - } - - m_collectListView->addData(m_data); -} - diff --git a/src/UserInterface/Widget/tabview_widget.h b/src/UserInterface/Widget/tabview_widget.h deleted file mode 100755 index ca9e99932367fee0c3b6f98c3187dc2a2278b38b..0000000000000000000000000000000000000000 --- a/src/UserInterface/Widget/tabview_widget.h +++ /dev/null @@ -1,25 +0,0 @@ -#ifndef TABVIEWWIDGET_H -#define TABVIEWWIDGET_H -#include -#include "rightlistview.h" - -class TabViewWidget: public QTabWidget -{ -public: - TabViewWidget(); - -protected: - - void initAppListWidget(); - void updateListView(); - -private: - - UkuiMenuInterface *m_ukuiMenuInterface = nullptr; - QWidget *collectionTab = nullptr; - QWidget *recentTab = nullptr; - RightListView *m_collectListView = nullptr; - QStringList m_data; -}; - -#endif // TABVIEWWIDGET_H diff --git a/src/UserInterface/full_mainwindow.cpp b/src/UserInterface/full_mainwindow.cpp index dfd692faaf643dd59ba6e5d09ad2800a32fa604d..d614bb910ce2662d46473cd0ab3f64e84b3d4798 100755 --- a/src/UserInterface/full_mainwindow.cpp +++ b/src/UserInterface/full_mainwindow.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "full_mainwindow.h" #include #include @@ -216,11 +233,15 @@ void FullMainWindow::initConnect() connect(this, &FullMainWindow::sendSetFocusToResult, m_fullResultPage, &FullSearchResultWidget::selectFirstItemTab); // connect(m_fullSelectMenuButton, &QToolButton::clicked, this, &FullMainWindow::on_fullSelectMenuButton_clicked); connect(m_fullCommonPage, &FullCommonUseWidget::sendUpdateOtherView, this, &FullMainWindow::sendUpdateOtherView); + connect(m_fullCommonPage, &FullCommonUseWidget::sendCollectViewUpdate, this, &FullMainWindow::sendCollectViewUpdate); connect(m_fullFunctionPage, &FullFunctionWidget::sendUpdateCommonView, m_fullCommonPage, &FullCommonUseWidget::updateListViewSlot); + connect(m_fullFunctionPage, &FullFunctionWidget::sendCollectViewUpdate, this, &FullMainWindow::sendCollectViewUpdate); connect(m_fullLetterPage, &FullLetterWidget::sendUpdateCommonView, m_fullCommonPage, &FullCommonUseWidget::updateListViewSlot); + connect(m_fullLetterPage, &FullLetterWidget::sendCollectViewUpdate, this, &FullMainWindow::sendCollectViewUpdate); 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_fullResultPage, &FullSearchResultWidget::sendCollectViewUpdate, this, &FullMainWindow::sendCollectViewUpdate); connect(m_fullResultPage, &FullSearchResultWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide); connect(m_dropDownMenu, &MenuBox::triggered, this, &FullMainWindow::on_fullSelectMenuButton_triggered); connect(m_dropDownMenu, &MenuBox::sendMainWinActiveSignal, [ = ]() { @@ -315,7 +336,7 @@ bool FullMainWindow::eventFilter(QObject *watched, QEvent *event) m_queryText->setParent(nullptr); } - m_queryWid->setGeometry(6, 2, m_queryIcon->width() + 5, Style::QueryLineEditHeight); + m_queryWid->setGeometry(6, 2, m_queryIcon->width() + 5, Style::m_queryLineEditHeight); m_queryWid->layout()->setAlignment(Qt::AlignVCenter); m_lineEdit->setTextMargins(26, 0, 0, 0); } @@ -511,10 +532,15 @@ void FullMainWindow::searchAppSlot(QString arg) void FullMainWindow::mousePressEvent(QMouseEvent *event) { resetEditline(); + return QMainWindow::mousePressEvent(event); +} + +void FullMainWindow::mouseReleaseEvent(QMouseEvent *event) +{ if (event->button() == Qt::LeftButton) { this->hide(); } - return QMainWindow::mousePressEvent(event); + return QMainWindow::mouseReleaseEvent(event); } void FullMainWindow::recvSearchResult(QVector arg) diff --git a/src/UserInterface/full_mainwindow.h b/src/UserInterface/full_mainwindow.h index 95921697c2b00820306ee27bb56c280bbbc293e3..09a7c01803207470d6893ae2931ea8de4f2d7e6d 100755 --- a/src/UserInterface/full_mainwindow.h +++ b/src/UserInterface/full_mainwindow.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef FULLMAINWINDOW_H #define FULLMAINWINDOW_H @@ -35,6 +52,7 @@ Q_SIGNALS: void sendSetFocusToLet(); void sendSetFocusToResult(); void sendUpdateOtherView(); + void sendCollectViewUpdate(); private Q_SLOTS: @@ -53,6 +71,7 @@ protected: bool event(QEvent *event); bool eventFilter(QObject *watched, QEvent *event); void mousePressEvent(QMouseEvent *event); + void mouseReleaseEvent(QMouseEvent *event); void changeStyle(); void initConnect(); void initTabOrder(); diff --git a/src/UserInterface/mainwindow.cpp b/src/UserInterface/mainwindow.cpp index 8427b341bcd2a2f015c3539b0fe31fe32e369102..0c07b154d4db918715863ced4d58991dfa82b381 100755 --- a/src/UserInterface/mainwindow.cpp +++ b/src/UserInterface/mainwindow.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "mainwindow.h" @@ -41,7 +40,7 @@ MainWindow::MainWindow(QWidget *parent) : Style::initWidStyle(); openDataBase("MainThreadDataBase"); initDatabase(); - this->resize(Style::minw, Style::minh); + this->resize(Style::m_minw, Style::m_minh); this->setAutoFillBackground(false); m_centralwidget = new QWidget(this); m_centerLayout = new QHBoxLayout(m_centralwidget); @@ -62,8 +61,6 @@ MainWindow::MainWindow(QWidget *parent) : 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(); @@ -209,13 +206,12 @@ void MainWindow::initSignalConnect() 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_fullWindow, &FullMainWindow::sendCollectViewUpdate, this, &MainWindow::updateCollectView); 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, [ = ]() { @@ -322,7 +318,7 @@ void MainWindow::initSearchUi() m_selectMenuButton->setAcceptDrops(true); m_selectMenuButton->setFocusPolicy(Qt::StrongFocus); m_selectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/downarrow.svg", true) - .pixmap(QSize(Style::miniIconSize, Style::miniIconSize))); + .pixmap(QSize(Style::m_minIconSize, Style::m_minIconSize))); //搜索框展开页 m_minSearchPage = new QWidget(); m_leftTopSearchHorizontalLayout = new QHBoxLayout(m_minSearchPage); @@ -349,32 +345,32 @@ void MainWindow::initLeftWidget() { //左侧列表区 m_leftStackedWidget = new QStackedWidget(m_viewWidget); - m_leftStackedWidget->setFixedSize(QSize(300, Style::leftPageHeight)); + m_leftStackedWidget->setFixedSize(QSize(300, Style::m_leftPageHeight)); m_minAllPage = new QWidget(); - m_minAllPage->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight)); + m_minAllPage->setFixedSize(QSize(Style::m_leftPageWidth, Style::m_leftPageHeight)); m_minAllListView = new ListView(m_minAllPage); - m_minAllListView->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight)); + m_minAllListView->setFixedSize(QSize(Style::m_leftPageWidth, Style::m_leftPageHeight)); m_minAllListView->setFrameShape(QFrame::NoFrame); m_leftStackedWidget->addWidget(m_minAllPage); m_minAllListView->installEventFilter(this); m_minLetterPage = new QWidget(); - m_minLetterPage->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight)); + m_minLetterPage->setFixedSize(QSize(Style::m_leftPageWidth, Style::m_leftPageHeight)); m_minLetterListView = new ListView(m_minLetterPage); - m_minLetterListView->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight)); + m_minLetterListView->setFixedSize(QSize(Style::m_leftPageWidth, Style::m_leftPageHeight)); m_minLetterListView->setFrameShape(QFrame::NoFrame); m_leftStackedWidget->addWidget(m_minLetterPage); m_minLetterListView->installEventFilter(this); m_minFuncPage = new QWidget(); - m_minFuncPage->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight)); + m_minFuncPage->setFixedSize(QSize(Style::m_leftPageWidth, Style::m_leftPageHeight)); m_minFuncListView = new ListView(m_minFuncPage); - m_minFuncListView->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight)); + m_minFuncListView->setFixedSize(QSize(Style::m_leftPageWidth, Style::m_leftPageHeight)); m_minFuncListView->setFrameShape(QFrame::NoFrame); m_leftStackedWidget->addWidget(m_minFuncPage); m_minFuncListView->installEventFilter(this); m_minSearchResultPage = new QWidget(); - m_minSearchResultPage->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight)); + m_minSearchResultPage->setFixedSize(QSize(Style::m_leftPageWidth, Style::m_leftPageHeight)); m_minSearchResultListView = new ListView(m_minSearchResultPage); - m_minSearchResultListView->setFixedSize(QSize(Style::leftPageWidth, Style::leftPageHeight)); + m_minSearchResultListView->setFixedSize(QSize(Style::m_leftPageWidth, Style::m_leftPageHeight)); m_minSearchResultListView->installEventFilter(this); m_leftStackedWidget->addWidget(m_minSearchResultPage); } @@ -449,9 +445,9 @@ void MainWindow::initRecentWidget() //最近视图 m_recentListView = new ListView(m_recentPage); m_recentListView->installEventFilter(this); - m_recentListView->setFixedSize(QSize(Style::rightViewWidth, Style::rightViewHeight)); + m_recentListView->setFixedSize(QSize(Style::m_rightViewWidth, Style::m_rightViewHeight)); m_recentTextlabel = new QLabel(m_recentPage); - m_recentTextlabel->setFixedSize(QSize(Style::rightViewWidth, Style::rightViewHeight)); + m_recentTextlabel->setFixedSize(QSize(Style::m_rightViewWidth, Style::m_rightViewHeight)); m_recentTextlabel->setAlignment(Qt::AlignCenter); m_recentTextlabel->setText(QApplication::translate("MainWindow", "No recent files")); @@ -678,27 +674,29 @@ void MainWindow::paintEvent(QPaintEvent *event) if ( transparency == 1) { curColor.setAlpha(255); } - QRect rect = this->rect(); + QRect rect = this->rect().adjusted(5, 5, -5, -5); QPainterPath path; - // rect.setTopLeft(QPoint(rect.x()+320,rect.y())); QPainter painter(this); painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; + painter.save(); painter.setPen(Qt::transparent); - qreal radius = 10; - path.moveTo(rect.topRight() - QPointF(radius, 0)); - path.lineTo(rect.topLeft() + QPointF(radius, 0)); - path.quadTo(rect.topLeft(), rect.topLeft() + QPointF(0, radius)); - path.lineTo(rect.bottomLeft() + QPointF(0, -radius)); - path.quadTo(rect.bottomLeft(), rect.bottomLeft() + QPointF(radius, 0)); - path.lineTo(rect.bottomRight() - QPointF(radius, 0)); - 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)); + path.addRoundedRect(rect, 10, 10); painter.setBrush(curColor); painter.setPen(Qt::transparent); painter.setOpacity(transparency); painter.drawPath(path); + painter.restore(); KWindowEffects::enableBlurBehind(this->winId(), true, QRegion(path.toFillPolygon().toPolygon())); + QColor color = Qt::black; + painter.save(); + for (int i = 0; i < 7; i++) { + rect = this->rect().adjusted(i, i, - i, - i); + color.setAlpha(i * 6); + painter.setBrush(Qt::NoBrush); + painter.setPen(QPen(color, 1)); + painter.drawRoundedRect(rect, 10, 10); + } + painter.restore(); QMainWindow::paintEvent(event); } /** @@ -772,12 +770,13 @@ void MainWindow::minAnimationFinished() m_viewWidget->setFocus(); // m_collectPushButton->clicked(true); on_collectPushButton_clicked(); - QEventLoop loop; - QTimer::singleShot(100, &loop, SLOT(quit())); - loop.exec(); - m_animationPage->hide(); + + QTimer::singleShot(200, [ = ]() { + m_animationPage->hide(); + }); } + void MainWindow::iconAnimationFinished() { m_dropDownMenu->raise(); @@ -791,11 +790,12 @@ void MainWindow::maxAnimationFinished() m_fullWindow->showNormal(); setMaxWindowPos(); m_fullWindow->activateWindow(); - QEventLoop loop; - QTimer::singleShot(100, &loop, SLOT(quit())); - loop.exec(); - m_animationPage->hide(); + + QTimer::singleShot(200, [ = ]() { + m_animationPage->hide(); + }); } + void MainWindow::resetLetterPage() { m_minLetterListView->show(); @@ -845,12 +845,13 @@ void MainWindow::primaryScreenChangeSlot() { repaintWidget(); } + void MainWindow::appClassificationBtnClickedSlot() { - m_leaveAnimation->setStartValue(QRect(0, 0, Style::leftPageWidth, Style::leftPageHeight)); + m_leaveAnimation->setStartValue(QRect(0, 0, Style::m_leftPageWidth, Style::m_leftPageHeight)); m_leaveAnimation->setEndValue(QRect(0, 0, 0, 0)); - m_enterAnimation->setStartValue(QRect(-40, -40, Style::leftPageWidth + 80, Style::leftPageHeight + 80)); - m_enterAnimation->setEndValue(QRect(10, 0, Style::leftPageWidth - 20, Style::leftPageHeight - 60)); + m_enterAnimation->setStartValue(QRect(-40, -40, Style::m_leftPageWidth + 80, Style::m_leftPageHeight + 80)); + m_enterAnimation->setEndValue(QRect(10, 0, Style::m_leftPageWidth - 20, Style::m_leftPageHeight - 60)); m_leaveAnimation->setDuration(10); m_enterAnimation->setDuration(100); @@ -948,7 +949,7 @@ bool MainWindow::eventFilter(QObject *target, QEvent *event) if (target == m_selectMenuButton) { m_selectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/downarrow.svg", true) - .pixmap(QSize(Style::miniIconSize, Style::miniIconSize))); + .pixmap(QSize(Style::m_minIconSize, Style::m_minIconSize))); selectIconAnimation(true); } } @@ -1134,7 +1135,7 @@ void MainWindow::recvSearchResult(QVector arg) m_minSearchResultListView->verticalScrollBar()->setSliderPosition(0); m_minSearchResultListView->addData(m_data, 3); - Q_FOREACH (QStringList appinfo, arg) { + Q_FOREACH(QStringList appinfo, arg) { m_data.append(QStringList() << appinfo.at(0) << "1"); } @@ -1152,7 +1153,7 @@ void MainWindow::searchAppSlot(QString arg) } void MainWindow::on_selectMenuButton_triggered(QAction *arg1) { - m_selectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/downarrow.svg", true).pixmap(QSize(Style::miniIconSize, Style::miniIconSize))); + m_selectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/downarrow.svg", true).pixmap(QSize(Style::m_minIconSize, Style::m_minIconSize))); selectIconAnimation(false); if (arg1 == m_allAction) { @@ -1270,12 +1271,14 @@ void MainWindow::on_minMaxChangeButton_clicked() { m_canHide = true; m_isFullScreen = true; + QPropertyAnimation *m_maxAnimation = new QPropertyAnimation(m_animationPage, "geometry", this); + connect(m_maxAnimation, &QPropertyAnimation::finished, this, &MainWindow::maxAnimationFinished); if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { m_maxAnimation->setDuration(1); } else { m_animationPage->show(); - m_animationPage->setGeometry(this->x(), this->y(), Style::minw, Style::minh); + m_animationPage->setGeometry(this->x() + 5, this->y() + 5, Style::m_minw - 10, Style::m_minh - 10); m_animationPage->raise(); m_animationPage->repaint(); m_maxAnimation->setDuration(260); @@ -1286,12 +1289,13 @@ void MainWindow::on_minMaxChangeButton_clicked() loop.exec(); m_maxAnimation->setEasingCurve(QEasingCurve::OutExpo); // m_maxAnimation->setStartValue(QRect(Style::m_primaryScreenX, Style::m_primaryScreenY + Style::m_availableScreenHeight - Style::minh, Style::minw, Style::minh)); - m_maxAnimation->setStartValue(QRect(this->x(), this->y(), Style::minw, Style::minh)); + m_maxAnimation->setStartValue(QRect(this->x() + 5, this->y() + 5, Style::m_minw - 10, Style::m_minh - 10)); m_maxAnimation->setEndValue(QRect(0, 0, Style::m_availableScreenWidth, Style::m_availableScreenHeight)); - m_maxAnimation->start(); + m_maxAnimation->start(QAbstractAnimation::DeleteWhenStopped); this->hide(); } + void MainWindow::showWindow() { Style::initWidStyle(); @@ -1338,27 +1342,27 @@ void MainWindow::setMinWindowPos() if (position == 0) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { - kdk::WindowManager::setGeometry(this->windowHandle(), QRect(x + 4, y + height - Style::minh - 3, Style::minw, Style::minh)); + kdk::WindowManager::setGeometry(this->windowHandle(), QRect(x + 4, y + height - Style::m_minh - 3, Style::m_minw, Style::m_minh)); } else { - this->setGeometry(QRect(x + 4, y + height - Style::minh - 3, Style::minw, Style::minh)); + this->setGeometry(QRect(x + 4, y + height - Style::m_minh - 3, Style::m_minw, Style::m_minh)); } } else if (position == 1) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { - kdk::WindowManager::setGeometry(this->windowHandle(), QRect(x + 4, y + 4, Style::minw, Style::minh)); + kdk::WindowManager::setGeometry(this->windowHandle(), QRect(x + 4, y + 4, Style::m_minw, Style::m_minh)); } else { - this->setGeometry(QRect(x + 4, y + 4, Style::minw, Style::minh)); + this->setGeometry(QRect(x + 4, y + 4, Style::m_minw, Style::m_minh)); } } else if (position == 2) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { - kdk::WindowManager::setGeometry(this->windowHandle(), QRect(x + 4, y + 4, Style::minw, Style::minh)); + kdk::WindowManager::setGeometry(this->windowHandle(), QRect(x + 4, y + 4, Style::m_minw, Style::m_minh)); } else { - this->setGeometry(QRect(x + 4, y + 4, Style::minw, Style::minh)); + this->setGeometry(QRect(x + 4, y + 4, Style::m_minw, Style::m_minh)); } } else { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { - kdk::WindowManager::setGeometry(this->windowHandle(), QRect(x + width - Style::minw - 4, y + 4, Style::minw, Style::minh)); + kdk::WindowManager::setGeometry(this->windowHandle(), QRect(x + width - Style::m_minw - 4, y + 4, Style::m_minw, Style::m_minh)); } else { - this->setGeometry(QRect(x + width - Style::minw - 4, y + 4, Style::minw, Style::minh)); + this->setGeometry(QRect(x + width - Style::m_minw - 4, y + 4, Style::m_minw, Style::m_minh)); } } } @@ -1373,7 +1377,7 @@ void MainWindow::setMaxWindowPos() void MainWindow::repaintWidget() { Style::initWidStyle(); - this->setMinimumSize(Style::minw, Style::minh); + this->setMinimumSize(Style::m_minw, Style::m_minh); int x = Style::m_primaryScreenX; int y = Style::m_primaryScreenY; int width = Style::m_availableScreenWidth; @@ -1388,6 +1392,9 @@ void MainWindow::showNormalWindowSlot() { myDebug() << "Style::m_availableScreenWidth" << Style::m_availableScreenWidth << "Style::m_availableScreenHeight" << Style::m_availableScreenHeight; + QPropertyAnimation *m_minAnimation = new QPropertyAnimation(m_animationPage, "geometry", this); + connect(m_minAnimation, &QPropertyAnimation::finished, this, &MainWindow::minAnimationFinished); + if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { m_minAnimation->setDuration(1); } else { @@ -1405,9 +1412,9 @@ void MainWindow::showNormalWindowSlot() m_isFullScreen = false; m_minAnimation->setEasingCurve(QEasingCurve::OutExpo); m_minAnimation->setStartValue(QRect(0, 0, Style::m_availableScreenWidth, Style::m_availableScreenHeight)); - m_minAnimation->setEndValue(QRect(this->x(), this->y(), Style::minw, Style::minh)); + m_minAnimation->setEndValue(QRect(this->x() + 5, this->y() + 5, Style::m_minw - 10, Style::m_minh - 10)); - m_minAnimation->start(); + m_minAnimation->start(QAbstractAnimation::DeleteWhenStopped); m_fullWindow->hide(); } void MainWindow::on_powerOffButton_clicked() diff --git a/src/UserInterface/mainwindow.h b/src/UserInterface/mainwindow.h index 1b5363d5469a6ff7f199f410419aebd4981f663b..2afcb93da4eaf944ef773ee7955ea04472276d89 100755 --- a/src/UserInterface/mainwindow.h +++ b/src/UserInterface/mainwindow.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef MAINWINDOW_H @@ -38,7 +37,6 @@ #include "convert_winid_to_desktop.h" #include "style.h" #include "main_view_widget.h" -#include "tabview_widget.h" #include "dbus.h" #include "dbus-adaptor.h" #include "software_database_update_thread.h" @@ -54,6 +52,7 @@ #include "letter_button_widget.h" #include "animationpage.h" #include "rotationlabel.h" +#include "rightlistview.h" #include "ukuistylehelper/ukuistylehelper.h" #include "windowmanager/windowmanager.h" @@ -144,6 +143,7 @@ public Q_SLOTS: void iconAnimationFinished(); void changeStyle(); void tabletModeChangeSlot(bool flag); + private Q_SLOTS: void on_selectMenuButton_triggered(QAction *arg1); @@ -236,8 +236,6 @@ private: DesktopWatcher *m_desktopWatcher = nullptr; QPropertyAnimation *m_enterAnimation = nullptr; QPropertyAnimation *m_leaveAnimation = nullptr; - QPropertyAnimation *m_minAnimation = nullptr; - QPropertyAnimation *m_maxAnimation = nullptr; QPropertyAnimation *iconAnimation = nullptr; int m_widgetState = -1; FunctionButtonWidget *m_functionBtnWid = nullptr; diff --git a/src/UserInterface/tabletwindow.cpp b/src/UserInterface/tabletwindow.cpp index 378ad1f407b6c19497ccff8e23832cff8c610132..4d7d945dd189bf2529791af03892bd921cca5fae 100755 --- a/src/UserInterface/tabletwindow.cpp +++ b/src/UserInterface/tabletwindow.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "tabletwindow.h" @@ -69,12 +68,12 @@ void TabletWindow::initSize() { Style::initWidStyle(); this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); - this->setFixedSize(Style::ScreenWidth, Style::ScreenHeight); - m_leftWidget->setFixedSize(Style::m_leftWidWidth, Style::CenterWindHeight); - m_leftWidget->layout()->setContentsMargins(Style::TimeWidgetLeft, Style::TimeWidgetTop, 0, 0); - m_scrollAreaWid->setFixedHeight(Style::CenterWindHeight); - m_scrollArea->setFixedSize(Style::ScreenWidth, Style::CenterWindHeight); - m_buttonWidget->setFixedSize(Style::OtherPageViewWidth, 30); + this->setFixedSize(Style::m_screenWidth, Style::m_screenHeight); + m_leftWidget->setFixedSize(Style::m_leftWidWidth, Style::m_centerWindHeight); + m_leftWidget->layout()->setContentsMargins(Style::m_timeWidgetLeft, Style::m_timeWidgetTop, 0, 0); + m_scrollAreaWid->setFixedHeight(Style::m_centerWindHeight); + m_scrollArea->setFixedSize(Style::m_screenWidth, Style::m_centerWindHeight); + m_buttonWidget->setFixedSize(Style::m_otherPageViewWidth, 30); } void TabletWindow::initUi() @@ -557,15 +556,15 @@ void TabletWindow::insertAppList(QStringList desktopfplist) m_firstPageLayout->setContentsMargins(0, 0, 0, 0); m_firstPageWidget->setLayout(m_firstPageLayout); m_firstPageLayout->addWidget(m_leftWidget); - listview->setFixedSize(Style::FirsPageViewWidth, Style::CenterWindHeight); + listview->setFixedSize(Style::m_firsPageViewWidth, Style::m_centerWindHeight); m_firstPageLayout->addWidget(listview); m_scrollAreaWidLayout->addWidget(m_firstPageWidget); - listview->setGridSize(QSize(Style::TabletItemSizeWidthFirst, Style::AppListItemSizeHeight)); + listview->setGridSize(QSize(Style::m_tabletItemSizeWidthFirst, Style::m_appListItemSizeHeight)); m_isFirstPage = false; } else { listview = new TabletListView(this, 1); - listview->setFixedSize(Style::OtherPageViewWidth, Style::CenterWindHeight); - listview->setGridSize(QSize(Style::TabletItemSizeWidthOther, Style::AppListItemSizeHeight)); + listview->setFixedSize(Style::m_otherPageViewWidth, Style::m_centerWindHeight); + listview->setGridSize(QSize(Style::m_tabletItemSizeWidthOther, Style::m_appListItemSizeHeight)); m_scrollAreaWidLayout->addWidget(listview); } @@ -936,7 +935,7 @@ void TabletWindow::buttonClicked(QAbstractButton *button) if (!(m_scrollAnimation->state() == QPropertyAnimation::Running)) { int idd = m_buttonGroup->id(button); int preNum = m_curPageNum; - Style::nowpagenum = idd; + Style::m_nowpagenum = idd; // QDBusReply res = usrInterface->call("get_current_tabletmode"); for (int page = 1; page <= m_pagemanager->getAppPageVector().size(); page++) { diff --git a/src/UserInterface/tabletwindow.h b/src/UserInterface/tabletwindow.h index 7b6a03ddf0edc49a978d96534bc053e98677f387..6d05c27d2e953752d43c3e60b670b0135914202f 100755 --- a/src/UserInterface/tabletwindow.h +++ b/src/UserInterface/tabletwindow.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef TABLETWINDOW_H diff --git a/src/UserInterface/userinterface.pri b/src/UserInterface/userinterface.pri index 56b58f8a8a9ca85ebeda5f2e68f8c21c708289d7..00b893b3646576a812d18ba690b591f57802bed0 100755 --- a/src/UserInterface/userinterface.pri +++ b/src/UserInterface/userinterface.pri @@ -40,7 +40,6 @@ HEADERS += \ $$PWD/Widget/main_view_widget.h \ $$PWD/Widget/plugin_widget.h \ $$PWD/Widget/splitbar_frame.h \ - $$PWD/Widget/tabview_widget.h \ $$PWD/full_mainwindow.h \ $$PWD/mainwindow.h \ $$PWD/tabletwindow.h @@ -78,7 +77,6 @@ SOURCES += \ $$PWD/Widget/main_view_widget.cpp \ $$PWD/Widget/plugin_widget.cpp \ $$PWD/Widget/splitbar_frame.cpp \ - $$PWD/Widget/tabview_widget.cpp \ $$PWD/full_mainwindow.cpp \ $$PWD/mainwindow.cpp \ $$PWD/tabletwindow.cpp diff --git a/src/UtilityFunction/AbstractInterface.h b/src/UtilityFunction/AbstractInterface.h deleted file mode 100755 index 90ed8ffadb99ca4e44d00281cfa281be68c414d4..0000000000000000000000000000000000000000 --- a/src/UtilityFunction/AbstractInterface.h +++ /dev/null @@ -1,13 +0,0 @@ -#ifndef ABSTRACTINTERFACE_H -#define ABSTRACTINTERFACE_H -#include -class QWidget; -class AbstractInterface -{ -public: - virtual ~AbstractInterface() {} - virtual QWidget *createPluginWidget(QWidget *parent, bool type) = 0; -}; -#define AbstractInterface_iid "Welcome to use focusmode" -Q_DECLARE_INTERFACE(AbstractInterface, AbstractInterface_iid) -#endif // ABSTRACTINTERFACE_H diff --git a/src/UtilityFunction/KySmallPluginInterface.h b/src/UtilityFunction/KySmallPluginInterface.h index cf9ad2163489fe7b5e585001827388e305d17693..44ef75ef93600a6ac66ce9d001544a9b7507657e 100755 --- a/src/UtilityFunction/KySmallPluginInterface.h +++ b/src/UtilityFunction/KySmallPluginInterface.h @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #ifndef KYSMALLPLUGININTERFACE_H #define KYSMALLPLUGININTERFACE_H diff --git a/src/UtilityFunction/Style/style.cpp b/src/UtilityFunction/Style/style.cpp index 53378bdbc9633a752144515f9a7a0c96c28b68d3..84d71aa89475dc1e2fa7c65a952d0fcd90aeb447 100755 --- a/src/UtilityFunction/Style/style.cpp +++ b/src/UtilityFunction/Style/style.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "style.h" @@ -31,11 +30,11 @@ int Style::m_primaryScreenX = 0; int Style::m_primaryScreenY = 0; int Style::m_panelPosition = 0; //默认窗口 -int Style::minw = 0; -int Style::minh = 0; -int Style::leftPageWidth = 0; -int Style::leftPageHeight = 0; -int Style::defaultQueryLineEditIconSize = 0; +int Style::m_minw = 0; +int Style::m_minh = 0; +int Style::m_leftPageWidth = 0; +int Style::m_leftPageHeight = 0; +int Style::m_defaultQueryLineEditIconSize = 0; /** * 全屏窗口 */ @@ -43,71 +42,62 @@ int Style::defaultQueryLineEditIconSize = 0; int Style::m_availableScreenWidth = 0; int Style::m_availableScreenHeight = 0; //搜索栏 -int Style::QueryLineEditHeight = 0; +int Style::m_queryLineEditHeight = 0; //左侧栏 int Style::m_leftWidWidth = 0; -int Style::LeftMargin = 0; -int Style::LeftBtnWidth = 0; -int Style::LeftBtnHeight = 0; -int Style::LeftLetterBtnHeight = 0; -int Style::LeftLetterFontSize = 0; -int Style::LeftIconSize = 0; -int Style::LeftSpaceIconText = 0; -int Style::LeftSpaceBetweenItem = 0; +int Style::m_leftMargin = 0; +int Style::m_leftBtnWidth = 0; +int Style::m_leftBtnHeight = 0; +int Style::m_leftLetterBtnHeight = 0; +int Style::m_leftLetterFontSize = 0; +int Style::m_leftIconSize = 0; +int Style::m_leftSpaceIconText = 0; +int Style::m_leftSpaceBetweenItem = 0; //应用列表栏 int Style::m_applistWidWidth = 0; +int Style::m_applistAreaWidth = 0; int Style::m_applistWidHeight = 0; -int Style::AppListIconSize = 0; -int Style::AppListBigIconSize = 0; -int Style::AppListItemSizeWidth = 0; -int Style::TabletItemSizeWidthOther = 0; -int Style::TabletItemSizeWidthFirst = 0; -int Style::FirsPageViewWidth = 0; -int Style::OtherPageViewWidth = 0; +int Style::m_scrollBarHeight = 0; +int Style::m_appListIconSize = 0; +int Style::m_appListBigIconSize = 0; +int Style::m_appTextRectHeight = 0; +int Style::m_boundaryOffset = 0; +int Style::m_appListItemSizeWidth = 0; +int Style::m_tabletItemSizeWidthOther = 0; +int Style::m_tabletItemSizeWidthFirst = 0; +int Style::m_firsPageViewWidth = 0; +int Style::m_otherPageViewWidth = 0; int Style::m_applistGridSizeWidth = 0; -int Style::AppLeftSpace = 0; -int Style::AppTopSpace = 0; -int Style::AppSpaceBetweenIconText = 0; -int Style::FirstPageSpace = 0; -int Style::OtherPageSpace = 0; +int Style::m_appLeftSpace = 0; +int Style::m_appTopSpace = 0; +int Style::m_appSpaceBetweenIconText = 0; +int Style::m_firstPageSpace = 0; +int Style::m_otherPageSpace = 0; //侧边栏primaryScreen -int Style::SideBarWidWidth = 0; - -int Style::appLine = 0; -int Style::appColumn = 0; -int Style::appLineFirst = 0; -int Style::appColumnFirst = 0; -int Style::appPage = 1; -int Style::appNum = 0; -int Style::nowpagenum = 1; -int Style::appRows = 0; -bool Style::ScreenRotation = false; -int Style::AppListItemSizeHeight = 270; -int Style::AppListViewTopMargin = 0; -int Style::ScreenWidth = 0; -int Style::ScreenHeight = 0; -int Style::AppListViewLeftMargin = 52; -int Style::AppListViewBottomMargin = 20; -int Style::AppListViewRightMargin = 0; -int Style::TimeWidgetTop = 81; -int Style::TimeWidgetLeft = 112; -int Style::CenterWindHeight = 0; - -int Style::GroupAppColumn = 1; -int Style::GroupAppRow = 1; +int Style::m_sideBarWidWidth = 0; -int Style::ButtonWidgetWidth = 56; +int Style::m_appLine = 0; +int Style::m_appColumn = 0; +int Style::m_appLineFirst = 0; +int Style::m_appColumnFirst = 0; +int Style::m_appPage = 1; +int Style::m_appNum = 0; +int Style::m_nowpagenum = 1; +int Style::m_appRows = 0; +bool Style::m_screenRotation = false; +int Style::m_appListItemSizeHeight = 270; +int Style::m_appListViewTopMargin = 0; +int Style::m_screenWidth = 0; +int Style::m_screenHeight = 0; +int Style::m_appListViewBottomMargin = 20; +int Style::m_timeWidgetTop = 81; +int Style::m_timeWidgetLeft = 112; +int Style::m_centerWindHeight = 0; -int Style::ToolWidgetLeft = 24; -bool Style::IsWideScreen = false; - -int Style::DropMenuWidth = 0; -int Style::DropMenuHeight = 0; -int Style::miniIconSize = 0; - -int Style::rightViewWidth = 0; -int Style::rightViewHeight = 0; +int Style::m_minIconSize = 0; +int Style::m_rightViewWidth = 0; +int Style::m_rightViewHeight = 0; void Style::initWidStyle() { @@ -128,128 +118,130 @@ void Style::initWidStyle() } if (m_availableScreenWidth == 800 && m_availableScreenHeight == 600) { - minw = 320; - minh = 500; - leftPageWidth = 300; - leftPageHeight = 517; + m_minw = 320; + m_minh = 500; + m_leftPageWidth = 300; + m_leftPageHeight = 517; } else { - minw = 652; - minh = 590; - leftPageWidth = 300; - leftPageHeight = 517; + m_minw = 652; + m_minh = 590; + m_leftPageWidth = 300; + m_leftPageHeight = 517; } if (m_availableScreenWidth >= 2000 && m_availableScreenWidth <= 4000) { - LeftMargin = 20; - LeftLetterFontSize = 14; - LeftSpaceBetweenItem = 15; - AppListIconSize = 96; - AppListItemSizeWidth = 168; + m_leftMargin = 20; + m_leftLetterFontSize = 14; + m_leftSpaceBetweenItem = 15; + m_appListIconSize = 96; + m_appListItemSizeWidth = 168; m_applistGridSizeWidth = 240; - AppSpaceBetweenIconText = 20; + m_appSpaceBetweenIconText = 20; } else if (m_availableScreenWidth >= 1920 && m_availableScreenWidth < 2000) { - LeftMargin = 20; - LeftLetterFontSize = 14; - LeftSpaceBetweenItem = 15; - AppListIconSize = 86; - AppListItemSizeWidth = 168; + m_leftMargin = 20; + m_leftLetterFontSize = 14; + m_leftSpaceBetweenItem = 15; + m_appListIconSize = 86; + m_appListItemSizeWidth = 168; m_applistGridSizeWidth = 220; - AppSpaceBetweenIconText = 18; + m_appSpaceBetweenIconText = 18; } else if (m_availableScreenWidth >= 1600 && m_availableScreenWidth < 1920) { - LeftMargin = 10; - LeftLetterFontSize = 11; - LeftSpaceBetweenItem = 10; - AppListIconSize = 86; - AppListItemSizeWidth = 150; + m_leftMargin = 10; + m_leftLetterFontSize = 11; + m_leftSpaceBetweenItem = 10; + m_appListIconSize = 86; + m_appListItemSizeWidth = 150; m_applistGridSizeWidth = 180; - AppSpaceBetweenIconText = 14; + m_appSpaceBetweenIconText = 14; } else if (m_availableScreenWidth >= 1366 && m_availableScreenWidth < 1600) { - LeftMargin = 10; - LeftLetterFontSize = 11; - LeftSpaceBetweenItem = 10; - AppListIconSize = 64; - AppListItemSizeWidth = 112; + m_leftMargin = 10; + m_leftLetterFontSize = 11; + m_leftSpaceBetweenItem = 10; + m_appListIconSize = 64; + m_appListItemSizeWidth = 112; m_applistGridSizeWidth = 140; - AppSpaceBetweenIconText = 0; + m_appSpaceBetweenIconText = 0; } else if (m_availableScreenWidth >= 1280 && m_availableScreenWidth < 1366) { - LeftMargin = 10; - LeftLetterFontSize = 11; - LeftSpaceBetweenItem = 10; - AppListIconSize = 64; - AppListItemSizeWidth = 112; + m_leftMargin = 10; + m_leftLetterFontSize = 11; + m_leftSpaceBetweenItem = 10; + m_appListIconSize = 64; + m_appListItemSizeWidth = 112; m_applistGridSizeWidth = 142; - AppSpaceBetweenIconText = 14; + m_appSpaceBetweenIconText = 14; } else if (m_availableScreenWidth >= 1152 && m_availableScreenWidth < 1280) { - LeftMargin = 10; - LeftLetterFontSize = 11; - LeftSpaceBetweenItem = 10; - AppListIconSize = 64; - AppListItemSizeWidth = 112; + m_leftMargin = 10; + m_leftLetterFontSize = 11; + m_leftSpaceBetweenItem = 10; + m_appListIconSize = 64; + m_appListItemSizeWidth = 112; m_applistGridSizeWidth = 142; - AppSpaceBetweenIconText = 14; + m_appSpaceBetweenIconText = 14; } else if (m_availableScreenWidth > 800 && m_availableScreenWidth < 1152) { - LeftMargin = 10; - LeftLetterFontSize = 11; - LeftSpaceBetweenItem = 10; - AppListIconSize = 64; - AppListItemSizeWidth = 112; + m_leftMargin = 10; + m_leftLetterFontSize = 11; + m_leftSpaceBetweenItem = 10; + m_appListIconSize = 64; + m_appListItemSizeWidth = 112; m_applistGridSizeWidth = 141; - AppSpaceBetweenIconText = 14; + m_appSpaceBetweenIconText = 14; } else { - LeftMargin = 10; - LeftLetterFontSize = 11; - LeftSpaceBetweenItem = 10; - AppListIconSize = 64; - AppListItemSizeWidth = 112; + m_leftMargin = 10; + m_leftLetterFontSize = 11; + m_leftSpaceBetweenItem = 10; + m_appListIconSize = 64; + m_appListItemSizeWidth = 112; m_applistGridSizeWidth = 138; - AppSpaceBetweenIconText = 14; + m_appSpaceBetweenIconText = 14; } - LeftBtnWidth = 68 + 5 * len; - LeftBtnHeight = 34; - QueryLineEditHeight = 30; - LeftLetterBtnHeight = 25; - LeftIconSize = 19; - DropMenuWidth = 170; - DropMenuHeight = 112; - miniIconSize = 8; - rightViewWidth = 324; - rightViewHeight = 470; - LeftSpaceIconText = 14; + m_leftBtnWidth = 68 + 5 * len; + m_leftBtnHeight = 34; + m_queryLineEditHeight = 30; + m_leftLetterBtnHeight = 25; + m_leftIconSize = 19; + m_rightViewWidth = 324; + m_rightViewHeight = 470; + m_leftSpaceIconText = 14; + m_appTextRectHeight = 30; + m_minIconSize = 8; + + m_appTopSpace = (m_appListItemSizeWidth - m_appSpaceBetweenIconText - m_appListIconSize - m_appTextRectHeight) / 2; + m_boundaryOffset = (m_applistGridSizeWidth - m_appListItemSizeWidth) + m_appTopSpace + 10; m_applistWidWidth = m_availableScreenWidth / 1.25; - m_applistWidWidth = m_applistWidWidth - (m_applistWidWidth % m_applistGridSizeWidth) + 1; + m_applistWidWidth = m_applistWidWidth - (m_applistWidWidth % m_applistGridSizeWidth) + 2; m_applistWidHeight = m_availableScreenHeight - 120; - m_applistWidHeight = m_applistWidHeight - (m_applistWidHeight % m_applistGridSizeWidth) + 1; + m_applistWidHeight = m_applistWidHeight - (m_applistWidHeight % m_applistGridSizeWidth); m_leftWidWidth = (m_availableScreenWidth - m_applistWidWidth) / 2 + 1; + m_applistAreaWidth = m_applistWidWidth + 20; + m_scrollBarHeight = 10; } else { - ScreenWidth = QApplication::primaryScreen()->geometry().width(); - ScreenHeight = QApplication::primaryScreen()->geometry().height(); + m_screenWidth = QApplication::primaryScreen()->geometry().width(); + m_screenHeight = QApplication::primaryScreen()->geometry().height(); myDebug() << "Winches" << qApp->desktop()->widthMM(); myDebug() << "Hinches" << qApp->desktop()->heightMM(); - myDebug() << "ScreenWidth" << ScreenWidth; - myDebug() << "ScreenHeight" << ScreenHeight; - appColumn = 6; - appLine = 4; - appLineFirst = 4; - AppListViewTopMargin = 70; - AppListViewLeftMargin = 52; - AppListViewBottomMargin = AppListViewTopMargin - 30; - AppListViewRightMargin = 0; - m_leftWidWidth = ScreenWidth * 0.3; - FirsPageViewWidth = ScreenWidth - m_leftWidWidth - 5; - appColumnFirst = FirsPageViewWidth / 220; - OtherPageViewWidth = ScreenWidth; - TabletItemSizeWidthFirst = FirsPageViewWidth / appColumnFirst; - TabletItemSizeWidthOther = (ScreenWidth - 5) / appColumn; - CenterWindHeight = ScreenHeight - AppListViewBottomMargin - AppListViewTopMargin; - AppListItemSizeHeight = CenterWindHeight / appLine; - AppListIconSize = 96; - AppListBigIconSize = 108; - AppTopSpace = (AppListItemSizeHeight - AppListIconSize) / 2; - AppLeftSpace = (TabletItemSizeWidthFirst - AppListIconSize) / 2; - TimeWidgetTop = (CenterWindHeight - 870) / 2; - TimeWidgetLeft = (m_leftWidWidth - 400) / 2; - FirstPageSpace = AppLeftSpace; - OtherPageSpace = (TabletItemSizeWidthOther - AppListIconSize) / 2; + myDebug() << "ScreenWidth" << m_screenWidth; + myDebug() << "ScreenHeight" << m_screenHeight; + m_appColumn = 6; + m_appLine = 4; + m_appLineFirst = 4; + m_appListViewTopMargin = 70; + m_appListViewBottomMargin = m_appListViewTopMargin - 30; + m_leftWidWidth = m_screenWidth * 0.3; + m_firsPageViewWidth = m_screenWidth - m_leftWidWidth - 5; + m_appColumnFirst = m_firsPageViewWidth / 220; + m_otherPageViewWidth = m_screenWidth; + m_tabletItemSizeWidthFirst = m_firsPageViewWidth / m_appColumnFirst; + m_tabletItemSizeWidthOther = (m_screenWidth - 5) / m_appColumn; + m_centerWindHeight = m_screenHeight - m_appListViewBottomMargin - m_appListViewTopMargin; + m_appListItemSizeHeight = m_centerWindHeight / m_appLine; + m_appListIconSize = 96; + m_appListBigIconSize = 108; + m_appTopSpace = (m_appListItemSizeHeight - m_appListIconSize) / 2; + m_appLeftSpace = (m_tabletItemSizeWidthFirst - m_appListIconSize) / 2; + m_timeWidgetTop = (m_centerWindHeight - 870) / 2; + m_timeWidgetLeft = (m_leftWidWidth - 400) / 2; + m_firstPageSpace = m_appLeftSpace; + m_otherPageSpace = (m_tabletItemSizeWidthOther - m_appListIconSize) / 2; } } diff --git a/src/UtilityFunction/Style/style.h b/src/UtilityFunction/Style/style.h index a74e0da755e2e193ac2e473b4eab9fe5feacc741..6ca2f800407e6cb34234af9de92ef95964df58f9 100755 --- a/src/UtilityFunction/Style/style.h +++ b/src/UtilityFunction/Style/style.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef STYLE_H @@ -85,11 +84,11 @@ public: static int m_primaryScreenY; static int m_panelPosition; //默认窗口 - static int minw; - static int minh; - static int leftPageWidth; - static int leftPageHeight; - static int defaultQueryLineEditIconSize; + static int m_minw; + static int m_minh; + static int m_leftPageWidth; + static int m_leftPageHeight; + static int m_defaultQueryLineEditIconSize; /** * 全屏 @@ -98,85 +97,71 @@ public: static int m_availableScreenWidth; static int m_availableScreenHeight; //搜索栏 - static int QueryLineEditHeight;//搜索框高度 + static int m_queryLineEditHeight;//搜索框高度 //左侧栏 static int m_leftWidWidth; //宽度 - static int LeftMargin; //内左侧边距 - static int LeftBtnWidth;//按钮宽度 - static int LeftBtnHeight;//按钮高度 - static int LeftLetterBtnHeight;//按钮高度 - static int LeftLetterFontSize; //字体大小 - static int LeftIconSize; //图标大小 - static int LeftSpaceIconText; //按钮图标与文字内边距 - static int LeftSpaceBetweenItem; //item间距 + static int m_leftMargin; //内左侧边距 + static int m_leftBtnWidth;//按钮宽度 + static int m_leftBtnHeight;//按钮高度 + static int m_leftLetterBtnHeight;//按钮高度 + static int m_leftLetterFontSize; //字体大小 + static int m_leftIconSize; //图标大小 + static int m_leftSpaceIconText; //按钮图标与文字内边距 + static int m_leftSpaceBetweenItem; //item间距 //应用列表栏 static int m_applistWidWidth; //宽度 + static int m_applistAreaWidth; static int m_applistWidHeight; //高度 - static int AppListIconSize; //图标大小 - static int AppListBigIconSize; - static int AppListItemSizeWidth; //item大小 - static int TabletItemSizeWidthFirst; - static int TabletItemSizeWidthOther; - static int FirsPageViewWidth; - static int OtherPageViewWidth; + static int m_scrollBarHeight; + static int m_appListIconSize; //图标大小 + static int m_appListBigIconSize; + static int m_appTextRectHeight; + static int m_boundaryOffset; + static int m_appListItemSizeWidth; //item大小 + static int m_tabletItemSizeWidthFirst; + static int m_tabletItemSizeWidthOther; + static int m_firsPageViewWidth; + static int m_otherPageViewWidth; static int m_applistGridSizeWidth; //网格大小 - static int AppLeftSpace;//左侧边距 - static int AppTopSpace;//上侧边距 - static int AppSpaceBetweenIconText;//图标与文字边距 - static int FirstPageSpace; - static int OtherPageSpace; + static int m_appLeftSpace;//左侧边距 + static int m_appTopSpace;//上侧边距 + static int m_appSpaceBetweenIconText;//图标与文字边距 + static int m_firstPageSpace; + static int m_otherPageSpace; /** * 侧边栏 */ - static int SideBarWidWidth; //宽度 + static int m_sideBarWidWidth; //宽度 - static int appLine; - static int appColumn; - static int appLineFirst; - static int appColumnFirst; - static int appNum; - static int appPage; - static int nowpagenum; - static int appRows; //app的总行数 - static bool ScreenRotation; + static int m_appLine; + static int m_appColumn; + static int m_appLineFirst; + static int m_appColumnFirst; + static int m_appNum; + static int m_appPage; + static int m_nowpagenum; + static int m_appRows; //app的总行数 + static bool m_screenRotation; - static int AppListItemSizeHeight; + static int m_appListItemSizeHeight; // static int ScreenWidth; // static int ScreenHeight; + static int m_screenWidth; + static int m_screenHeight; + static int m_appListViewTopMargin; + static int m_appListViewBottomMargin; + static int m_centerWindHeight; - static int LeftWidgetWidth; - - static int ScreenWidth; - static int ScreenHeight; - static int AppListViewTopMargin; - static int AppListViewLeftMargin; - static int AppListViewBottomMargin; - static int AppListViewRightMargin; - static int CenterWindHeight; - - static int GroupAppRow; - static int GroupAppColumn; - - static int TimeWidgetTop; - static int TimeWidgetLeft; - - static int ButtonWidgetWidth; + static int m_timeWidgetTop; + static int m_timeWidgetLeft; - //扩展的开始菜单应用列表 - static int ToolWidgetLeft; - static int WideAppListItemSizeWidth; - static int WideAppListItemSizeHeight; - static int WideAppViewLeftMargin; - static bool IsWideScreen; - static int DropMenuWidth; - static int DropMenuHeight; - static int miniIconSize; + static int m_minIconSize; - static int rightViewWidth; - static int rightViewHeight; + static int m_rightViewWidth; + static int m_rightViewHeight; }; diff --git a/src/UtilityFunction/abstractInterface.h b/src/UtilityFunction/abstractInterface.h deleted file mode 100755 index f484d73e1586c17e0951524c45621b024c7734ca..0000000000000000000000000000000000000000 --- a/src/UtilityFunction/abstractInterface.h +++ /dev/null @@ -1,20 +0,0 @@ -#ifndef OOBE_PLUGIN_INFACE_H -#define OOBE_PLUGIN_INFACE_H - -#include -#include -#include -#include - -class QWidget; -class kyMenuPluginInterface -{ - -public: - virtual ~kyMenuPluginInterface() {} - virtual const QString name() = 0; - virtual const QString description() = 0; - virtual QWidget *createWidget(QWidget *parent) = 0; -}; -Q_DECLARE_INTERFACE(kyMenuPluginInterface, "org.kyMenuPlugin.AbstractInterface") -#endif \ No newline at end of file diff --git a/src/UtilityFunction/thumbnail.cpp b/src/UtilityFunction/thumbnail.cpp index 55a1f79176faecfaee8ce87ef03879d33fe4fa0b..eda65628c47d4794893990b9fe155027a009586d 100755 --- a/src/UtilityFunction/thumbnail.cpp +++ b/src/UtilityFunction/thumbnail.cpp @@ -1,3 +1,20 @@ +/* + * Copyright (C) 2022, KylinSoft Co., Ltd. + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + #include "thumbnail.h" #include #include "style.h" @@ -22,11 +39,11 @@ void ThumbNail::initUi() setWindowFlags(Qt::FramelessWindowHint); setAttribute(Qt::WA_TranslucentBackground); this->setStyleSheet("border:0px;background:transparent;"); - this->setFixedSize(Style::AppListIconSize, Style::AppListIconSize); + this->setFixedSize(Style::m_appListIconSize, Style::m_appListIconSize); iconLabel = new QLabel(this); iconLabel->setStyleSheet("border:0px;background-color:transparent;"); iconLabel->setFocusPolicy(Qt::NoFocus); - iconLabel->setFixedSize(Style::AppListIconSize, Style::AppListIconSize); + iconLabel->setFixedSize(Style::m_appListIconSize, Style::m_appListIconSize); layout = new QVBoxLayout(this); layout->setContentsMargins(0, 0, 0, 0); layout->setSpacing(0); @@ -116,11 +133,11 @@ void ThumbNail::setupthumbnail(QString desktopfp) QPixmap pixmap ; if (appDisable(desktopfp) == 1) { - pixmap = icon.pixmap((Style::AppListIconSize, Style::AppListIconSize), QIcon::Disabled, QIcon::Off); + pixmap = icon.pixmap((Style::m_appListIconSize, Style::m_appListIconSize), QIcon::Disabled, QIcon::Off); //qDebug()<<"appDisable(desktopfp)"<setPixmap(pixmap); @@ -219,19 +236,13 @@ bool ThumbNail::appDisable(QString desktopfp)//判断是否是禁用应用(这 char *name = g_key_file_get_locale_string(keyfile, "Desktop Entry", "Exec", nullptr, nullptr); //取出value值 QString execnamestr = QString::fromLocal8Bit(name); - //处理value值 - str = execnamestr; - // str = execnamestr.section(' ', 0, 0); - // QStringList list = str.split('/'); - // str = list[list.size()-1]; - //关闭文件 + g_key_file_free(keyfile); - QString desktopfp1 =/*"application/"+*/str; //QString group=desktopfp.split('/').last(); disableSetting->beginGroup("application"); //判断 - bool bo = disableSetting->contains(desktopfp1.toLocal8Bit().data()); // iskey - bool bo1 = disableSetting->QSettings::value(desktopfp1.toLocal8Bit().data()).toBool(); //isvalue + bool bo = disableSetting->contains(execnamestr.toLocal8Bit().data()); // iskey + bool bo1 = disableSetting->QSettings::value(execnamestr.toLocal8Bit().data()).toBool(); //isvalue disableSetting->endGroup(); //qDebug()<. + */ + #ifndef THUMBNAIL_H #define THUMBNAIL_H diff --git a/src/UtilityFunction/utility.cpp b/src/UtilityFunction/utility.cpp index 40c6f083b559086fe33c94d2faceb8b2b48114e2..c7b63e7ac4fb57e559f22a5b356bf18b208d44b7 100755 --- a/src/UtilityFunction/utility.cpp +++ b/src/UtilityFunction/utility.cpp @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #include "utility.h" @@ -28,6 +27,7 @@ #include #include #include +#include #include "ukuimenuinterface.h" #define DATABASENAME QDir::homePath()+"/.config/ukui/"+"UkuiMenu.db" @@ -233,7 +233,7 @@ QString getEnvOverriddenDesktopFile(int pid) if (file.open(QIODevice::ReadOnly)) { QList list = file.readLine().split('\x00'); - Q_FOREACH (QByteArray array, list) { + Q_FOREACH(QByteArray array, list) { if (array.contains("GIO_LAUNCHED_DESKTOP_FILE=")) { ret = QString(array.split('=').at(1)); break; @@ -278,7 +278,7 @@ void initDatabase() setting->beginGroup("application"); QString desktopfp; - Q_FOREACH (QString desktopfn, setting->allKeys()) { + Q_FOREACH(QString desktopfn, setting->allKeys()) { if (setting->value(desktopfn).toInt() == 1) { desktopfp.clear(); @@ -305,7 +305,7 @@ void initDatabase() bool b = sql.exec("create table if not exists appInfo(desktop char primary key, times int, time int, type int, recent int, num int, collect int)"); - Q_FOREACH (QString desktopfn, desktopfnList) { + Q_FOREACH(QString desktopfn, desktopfnList) { myDebug() << "void initDatabase()" << desktopfn; QDateTime dt = QDateTime::currentDateTime(); int datetime = dt.toTime_t(); @@ -690,7 +690,7 @@ void cleanTimeoutApp() } } - Q_FOREACH (QString desktopfn, list) { + Q_FOREACH(QString desktopfn, list) { cmd = QString("delete from appInfo where desktop=\"%1\"") .arg(desktopfn); sql.exec(cmd); @@ -710,14 +710,16 @@ bool deleteAppRecord(QString desktopfn) void execApp(QString desktopfp) { + QDBusReply result; + if (QDBusConnection::connectToBus(QDBusConnection::SessionBus, QString("com.kylin.AppManager")).isConnected()) { + QDBusInterface iface("com.kylin.AppManager", "/com/kylin/AppManager", "com.kylin.AppManager"); + if (iface.isValid()) { + result = iface.call("LaunchApp", desktopfp); + myDebug() << "LaunchApp desktopFile:" << desktopfp; + } + } - QDBusInterface iface("com.kylin.AppManager", - "/com/kylin/AppManager", - "com.kylin.AppManager", - QDBusConnection::sessionBus()); - QDBusReply res = iface.call("LaunchApp", desktopfp); - - if (!res.isValid() || !res) { + if (!result.isValid() || !result) { UkuiMenuInterface interface; diff --git a/src/UtilityFunction/utility.h b/src/UtilityFunction/utility.h index 44916736f72831e3178eacb69c5582b50ecfb06a..66a047ce057dad38dd966a3dc32dfbd56d6c9a56 100755 --- a/src/UtilityFunction/utility.h +++ b/src/UtilityFunction/utility.h @@ -1,10 +1,10 @@ /* - * Copyright (C) 2019 Tianjin KYLIN Information Technology Co., Ltd. + * Copyright (C) 2022, KylinSoft Co., Ltd. * - * This program is free software; you can redistribute it and/or modify + * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 3, or (at your option) - * any later version. + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of @@ -12,8 +12,7 @@ * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License - * along with this program; if not, see . */ #ifndef UTILITY_H diff --git a/src/UtilityFunction/utilityfunction.pri b/src/UtilityFunction/utilityfunction.pri index 3cc89d4cdd0a7bc23d796195b111f4f52cc277e8..f153ab3458481228d51cb546538af1caadd04c8f 100755 --- a/src/UtilityFunction/utilityfunction.pri +++ b/src/UtilityFunction/utilityfunction.pri @@ -3,10 +3,8 @@ INCLUDEPATH += \ $$PWD/Style HEADERS += \ - $$PWD/AbstractInterface.h \ $$PWD/KySmallPluginInterface.h \ $$PWD/Style/style.h \ - $$PWD/abstractInterface.h \ $$PWD/thumbnail.h \ $$PWD/utility.h diff --git a/translations/ukui-menu_bo_CN.ts b/translations/ukui-menu_bo_CN.ts index d92f15348476087eed3ae0b7d8177783678b9801..6677791401e9ff82e566825e53cdc8649c13c4db 100644 --- a/translations/ukui-menu_bo_CN.ts +++ b/translations/ukui-menu_bo_CN.ts @@ -4,22 +4,22 @@ FullMainWindow - + Search འཚོལ་ཞིབ། - + All ཚང་མ། - + Letter འཕྲིན་ཡིག - + Function བྱེད་ནུས། @@ -27,7 +27,7 @@ FunctionWidget - + Search འཚོལ་ཞིབ། @@ -43,55 +43,65 @@ 打开字母排序菜单 - + Open the function sort menu བྱེད་ལས་རིགས་ཀྱི་ཟས་ཐོའི་ཁ་ཕྱེ་བ། - + Open the alphabetical menu དབྱངས་གསལ་ཡི་གེའི་ཟས་ཐོའི་ཁ་ཕྱེ་བ། + + + + path: + འགྲོ་ལམ་: + + + path + འགྲོ་ལམ་ + MainWindow - - + + Search འཚོལ་ཞིབ། - + No recent files ཉེ་དུས་ཀྱི་ཡིག་ཆ་མེད། - - - - - + + + + + All ཚང་མ། - + collection བསྡུ་ཉར། - + recent ཉེ་ཆར། - + Max མའེ་ཁེ་སི། - + PowerOff སྒུལ་ཤུགས་ཀྱི་ནུས་པ། @@ -100,16 +110,16 @@ 搜索应用 - - - + + + Letter འཕྲིན་ཡིག - - - + + + Function བྱེད་ནུས། @@ -117,68 +127,68 @@ QObject - - + + Office གཞུང་ལས་ཁང་། - - + + Development འཕེལ་རྒྱས་ - - + + Image པར་རིས། - - + + Video བརྙན་ཕབ། - - + + Internet དྲ་སྦྲེལ། - - + + Game རོལ་རྩེད། - - + + Education སློབ་གསོ། - - + + Social སྤྱི་ཚོགས། - - + + System ལམ་ལུགས། - - + + Safe བདེ་འཇགས། - - + + Others དེ་མིན་ད་དུང་ @@ -186,82 +196,82 @@ RightClickMenu - + Pin to all མི་ཚང་མར་ཁབ་རྒྱག་པ། - + Unpin from all མི་ཚང་མའི་ཁྲོད་ནས་བཀག་འགོག་བྱེད་ - + Pin to taskbar ལས་འགན་སྒྲུབ་པར་ཁབ་རྒྱག་པ། - + Unpin from taskbar ལས་འགན་སྒྲུབ་ས་ནས་ཁ་པར་གཏོང་བ། - + Add to desktop shortcuts ཅོག་ཙེའི་སྟེང་གི་མགྱོགས་ལམ་ཁ་སྣོན་བྱས་ཡོད། - + Pin to collection འཚོལ་སྡུད་བྱེད་པའི་ཁབ་སྐུད། - + Remove from collection བསྡུ་ཉར་དངོས་རྫས་ཁྲོད་ནས་ཕྱིར་ - + Uninstall སྒྲིག་སྦྱོར་བྱས་མེད་པ། - + Switch user གློག་སྒོ་འབྱེད་པའི་སྤྱོད་མཁན - + Hibernate ཧིན་རྡུ་ཉི་ཞི་ཡ། - + Sleep གཉིད་ཁུག་པ། - + Lock Screen སྒོ་ལྕགས་ཀྱི་བརྙན་ཤེལ། - + Log Out ཕྱིར་འཐེན་བྱ་དགོས། - + Restart ཡང་བསྐྱར་འགོ་འཛུགས་ - + Power Off གློག་ཆད་པ། - + Personalize this list མིང་ཐོ་འདི་རང་གཤིས་ཅན་དུ་བསྒྱུར @@ -269,22 +279,22 @@ TabletRightClickMenu - + Pin to taskbar ལས་འགན་སྒྲུབ་པར་ཁབ་རྒྱག་པ། - + Unpin from taskbar ལས་འགན་སྒྲུབ་ས་ནས་ཁ་པར་གཏོང་བ། - + Add to desktop shortcuts ཅོག་ཙེའི་སྟེང་གི་མགྱོགས་ལམ་ཁ་སྣོན་བྱས་ཡོད། - + Uninstall སྒྲིག་སྦྱོར་བྱས་མེད་པ། diff --git a/translations/ukui-menu_tr.ts b/translations/ukui-menu_tr.ts index 756c8b10899d20d246691b1c87cc29cbc14392a5..c453759478d745d4ad504816156badc12da82963 100755 --- a/translations/ukui-menu_tr.ts +++ b/translations/ukui-menu_tr.ts @@ -4,22 +4,22 @@ FullMainWindow - + Search Ara - + All Tümü - + Letter Alfabetik - + Function Kategori @@ -118,7 +118,7 @@ Diğer - + Search Ara @@ -173,15 +173,21 @@ ItemDelegate - + Open the function sort menu - + Open the alphabetical menu + + + + path: + + MainViewWidget @@ -205,56 +211,56 @@ MainWindow - + collection - - - - - + + + + + All Tümü - - + + Search Ara - + No recent files - + recent - + Max - + PowerOff - - - + + + Letter Alfabetik - - - + + + Function Kategori @@ -309,68 +315,68 @@ QObject - - + + Office Ofis Uygulamaları - - + + Development Programlama - - + + Image Grafik - - + + Video Video - - + + Internet İnternet - - + + Game Oyunlar - - + + Education Eğitim - - + + Social Sosyal - - + + System Sistem - - + + Safe - - + + Others Diğer @@ -378,62 +384,62 @@ RightClickMenu - + Pin to all Tümünü sabitle - + Unpin from all Tüm sabitlemeleri kaldır - + Pin to taskbar Görev çubuğuna sabitle - + Unpin from taskbar Görev çubuğundan sabitlemeyi kaldır - + Add to desktop shortcuts Masaüstü kısayollarına ekle - + Pin to collection - + Remove from collection - + Uninstall Kaldır - + Switch user - + Hibernate Beklemeye Al - + Sleep Uyku Modu - + Lock Screen Ekranı Kilitle @@ -442,22 +448,22 @@ Kullanıcı Değiştir - + Log Out Çıkış - + Restart Yeniden Başlat - + Power Off Kapat - + Personalize this list Bu listeyi özelleştirin @@ -551,22 +557,22 @@ TabletRightClickMenu - + Pin to taskbar Görev çubuğuna sabitle - + Unpin from taskbar Görev çubuğundan sabitlemeyi kaldır - + Add to desktop shortcuts Masaüstü kısayollarına ekle - + Uninstall Kaldır diff --git a/translations/ukui-menu_zh_CN.ts b/translations/ukui-menu_zh_CN.ts index 4d04dbf977a288618a873d1ef9d71fc55b517ec3..59aa5fdd9533bf09afea50552a985040d428e54f 100755 --- a/translations/ukui-menu_zh_CN.ts +++ b/translations/ukui-menu_zh_CN.ts @@ -4,22 +4,22 @@ FullMainWindow - + Search 搜索应用 - + All 全部 - + Letter 字母排序 - + Function 功能分类 @@ -27,7 +27,7 @@ FunctionWidget - + Search 全局搜索 @@ -43,55 +43,65 @@ 打开字母排序菜单 - + Open the function sort menu 打开功能排序菜单 - + Open the alphabetical menu 打开字母排序菜单 + + + + path: + 路径: + + + path + 路径 + MainWindow - - + + Search 搜索应用 - + No recent files 暂无最近文件 - - - - - + + + + + All 全部 - + collection 收藏 - + recent 最近 - + Max 放大 - + PowerOff 电源 @@ -100,16 +110,16 @@ 搜索应用 - - - + + + Letter 字母排序 - - - + + + Function 功能分类 @@ -117,68 +127,68 @@ QObject - - + + Office 办公 - - + + Development 开发 - - + + Image 图像 - - + + Video 影音 - - + + Internet 网络 - - + + Game 游戏 - - + + Education 教育 - - + + Social 社交 - - + + System 系统 - - + + Safe 安全 - - + + Others 其他 @@ -186,82 +196,82 @@ RightClickMenu - + Pin to all 固定到“所有软件” - + Unpin from all 从“所有软件”取消固定 - + Pin to taskbar 固定到任务栏 - + Unpin from taskbar 从任务栏取消固定 - + Add to desktop shortcuts 添加到桌面快捷方式 - + Pin to collection 固定到收藏 - + Remove from collection 从收藏移除 - + Uninstall 卸载 - + Switch user 切换用户 - + Hibernate 休眠 - + Sleep 睡眠 - + Lock Screen 锁屏 - + Log Out 注销 - + Restart 重启 - + Power Off 关机 - + Personalize this list @@ -269,22 +279,22 @@ TabletRightClickMenu - + Pin to taskbar 固定到任务栏 - + Unpin from taskbar 从任务栏取消固定 - + Add to desktop shortcuts 固定到桌面快捷方式 - + Uninstall 卸载 diff --git a/ukui-menu.desktop b/ukui-menu.desktop old mode 100755 new mode 100644 diff --git a/ukui-menu.pro b/ukui-menu.pro index 1ca97974669379d68bcdbcda1d6ca7fbca3719b9..e7e52839158049e88401b122ab0e895f5ea6aec7 100755 --- a/ukui-menu.pro +++ b/ukui-menu.pro @@ -48,11 +48,11 @@ INSTALLS += qm_files # So we can access it from main.cpp DEFINES += QM_FILES_INSTALL_PATH='\\"$${QM_FILES_INSTALL_PATH}\\"' -PKGCONFIG+=glib-2.0 gio-unix-2.0 gsettings-qt libbamf3 x11 xtst kysdk-waylandhelper +PKGCONFIG+=glib-2.0 gio-unix-2.0 gsettings-qt libbamf3 x11 kysdk-waylandhelper CONFIG += no_keywords link_pkgconfig -LIBS+=-pthread -luchardet -lukui-log4qt -lukui-com4c -lukui-com4cxx -lpeony +LIBS+=-pthread -luchardet -lukui-log4qt -lukui-com4c -lukui-com4cxx -lpeony -lXtst desktop_file.files = ukui-menu.desktop desktop_file.path = /etc/xdg/autostart