!23 改动同步

Merge pull request !23 from lixueman/upstream
This commit is contained in:
lixueman 2022-10-21 07:58:10 +00:00 committed by Gitee
commit 641845bff6
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F
114 changed files with 1996 additions and 1426 deletions

View File

@ -46,7 +46,7 @@ bugfixes for this package.
## Preparation ## Preparation
You can build pre-depends with such command: 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. Note: build-depends references the paragraph in debian/control.

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "mainwindow.h" #include "mainwindow.h"
@ -81,17 +80,17 @@ int main(int argc, char *argv[])
if (Style::m_panelPosition == 0) { if (Style::m_panelPosition == 0) {
if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) {
kdk::WindowManager::setGeometry(w.windowHandle(),QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + 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 { } else {
w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + Style::m_availableScreenHeight - Style::minh - 3, w.setGeometry(QRect(Style::m_primaryScreenX + 4, Style::m_primaryScreenY + Style::m_availableScreenHeight - Style::m_minh - 3,
Style::minw, Style::minh)); Style::m_minw, Style::m_minh));
} }
} else if (Style::m_panelPosition == 1) { } else if (Style::m_panelPosition == 1) {
if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) {
kdk::WindowManager::setGeometry(w.windowHandle(),QRect(Style::m_primaryScreenX + 4, 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 { } 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) { } else if (Style::m_panelPosition == 2) {
@ -99,17 +98,17 @@ int main(int argc, char *argv[])
if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) {
kdk::WindowManager::setGeometry(w.windowHandle(), QRect(Style::m_primaryScreenX + 4, 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 { } 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 { } else {
if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) {
kdk::WindowManager::setGeometry(w.windowHandle(), QRect(Style::m_primaryScreenX + Style::m_availableScreenWidth - 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 { } else {
w.setGeometry(QRect(Style::m_primaryScreenX + Style::m_availableScreenWidth - Style::minw - 4, Style::m_primaryScreenY + 4, w.setGeometry(QRect(Style::m_primaryScreenX + Style::m_availableScreenWidth - Style::m_minw - 4, Style::m_primaryScreenY + 4,
Style::minw, Style::minh)); Style::m_minw, Style::m_minh));
} }
} }

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "dbus.h" #include "dbus.h"
#include <QFileInfo> #include <QFileInfo>
#include <QDir> #include <QDir>

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef DBUS_H #ifndef DBUS_H
#define DBUS_H #define DBUS_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,13 +12,11 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "convert_winid_to_desktop.h" #include "convert_winid_to_desktop.h"
#include "utility.h" #include "utility.h"
#include <KWindowSystem>
#include <QFile> #include <QFile>
#include <QDebug> #include <QDebug>
#include <QDir> #include <QDir>

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef CONVERTDESKTOPTOWINID_H #ifndef CONVERTDESKTOPTOWINID_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "desktop_watcher.h" #include "desktop_watcher.h"
#include <QDir> #include <QDir>
#include <QEventLoop> #include <QEventLoop>
@ -20,6 +37,10 @@ DesktopWatcher::DesktopWatcher()
connect(m_directoryChangedThread, &DirectoryChangedThread::requestUpdateSignal, this, &DesktopWatcher::requestUpdateSlot); connect(m_directoryChangedThread, &DirectoryChangedThread::requestUpdateSignal, this, &DesktopWatcher::requestUpdateSlot);
} }
DesktopWatcher::~DesktopWatcher()
{
}
/** /**
* desktop文件目录改变信号槽 * desktop文件目录改变信号槽
*/ */

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef DESKTOPWATCHER_H #ifndef DESKTOPWATCHER_H
#define DESKTOPWATCHER_H #define DESKTOPWATCHER_H
#include <QFileSystemWatcher> #include <QFileSystemWatcher>
@ -9,6 +26,7 @@ class DesktopWatcher : public QObject
Q_OBJECT Q_OBJECT
public: public:
DesktopWatcher(); DesktopWatcher();
~DesktopWatcher();
public: public:
Q_SIGNALS: Q_SIGNALS:

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "directory_changed_thread.h" #include "directory_changed_thread.h"
@ -28,7 +27,10 @@ DirectoryChangedThread::DirectoryChangedThread()
DirectoryChangedThread::~DirectoryChangedThread() DirectoryChangedThread::~DirectoryChangedThread()
{ {
if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface; delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
} }
void DirectoryChangedThread::run() void DirectoryChangedThread::run()

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef DIRECTORYCHANGEDTHREAD_H #ifndef DIRECTORYCHANGEDTHREAD_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "software_database_update_thread.h" #include "software_database_update_thread.h"

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef SOFTWAREDATABASEUPDATETHREAD_H #ifndef SOFTWAREDATABASEUPDATETHREAD_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "tablet_directorychanged_thread.h" #include "tablet_directorychanged_thread.h"
@ -28,21 +27,20 @@ TabletDirectoryChangedThread::TabletDirectoryChangedThread()
{ {
m_ukuiMenuInterface = new UkuiMenuInterface; m_ukuiMenuInterface = new UkuiMenuInterface;
QString path = QDir::homePath() + "/.config/ukui/ukui-menu.ini"; QString path = QDir::homePath() + "/.config/ukui/ukui-menu.ini";
setting = new QSettings(path, QSettings::IniFormat); m_setting = new QSettings(path, QSettings::IniFormat);
} }
TabletDirectoryChangedThread::~TabletDirectoryChangedThread() TabletDirectoryChangedThread::~TabletDirectoryChangedThread()
{ {
if (m_ukuiMenuInterface) { if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface; delete m_ukuiMenuInterface;
}
if (setting) {
delete setting;
}
m_ukuiMenuInterface = nullptr; m_ukuiMenuInterface = nullptr;
setting = nullptr; }
if (m_setting) {
delete m_setting;
m_setting = nullptr;
}
} }
@ -67,41 +65,41 @@ void TabletDirectoryChangedThread::run()
QStringList list = str.split('/'); QStringList list = str.split('/');
str = list[list.size() - 1]; str = list[list.size() - 1];
QString desktopfn = str; QString desktopfn = str;
setting->beginGroup("recentapp"); m_setting->beginGroup("recentapp");
setting->setValue(desktopfn, datetime); m_setting->setValue(desktopfn, datetime);
setting->sync(); m_setting->sync();
setting->endGroup(); m_setting->endGroup();
//wgx //wgx
setting->beginGroup("application"); m_setting->beginGroup("application");
QStringList applist = setting->allKeys(); QStringList applist = m_setting->allKeys();
int appnum = setting->allKeys().count(); int appnum = m_setting->allKeys().count();
int maxindex = 0; int maxindex = 0;
int minindex = 0; int minindex = 0;
for (int i = 0; i < appnum; i++) { for (int i = 0; i < appnum; i++) {
if (setting->value(applist.at(i)).toInt() > maxindex) { if (m_setting->value(applist.at(i)).toInt() > maxindex) {
maxindex = setting->value(applist.at(i)).toInt(); maxindex = m_setting->value(applist.at(i)).toInt();
} }
if(setting->value(applist.at(i)).toInt() <= minindex) { if(m_setting->value(applist.at(i)).toInt() <= minindex) {
minindex = setting->value(applist.at(i)).toInt(); minindex = m_setting->value(applist.at(i)).toInt();
} }
} }
if (desktopfn.contains("small-plugin-manage")){ if (desktopfn.contains("small-plugin-manage")){
setting->setValue(desktopfn,minindex-1); m_setting->setValue(desktopfn,minindex-1);
} else { } else {
setting->setValue(desktopfn,maxindex+1); m_setting->setValue(desktopfn,maxindex+1);
} }
setting->sync(); m_setting->sync();
setting->endGroup(); m_setting->endGroup();
// //
QString iconstr = m_ukuiMenuInterface->getAppIcon(desktopfpList.at(i)); QString iconstr = m_ukuiMenuInterface->getAppIcon(desktopfpList.at(i));
syslog(LOG_LOCAL0 | LOG_DEBUG, "%s", iconstr.toLocal8Bit().data()); syslog(LOG_LOCAL0 | LOG_DEBUG, "%s", iconstr.toLocal8Bit().data());
syslog(LOG_LOCAL0 | LOG_DEBUG, "软件安装desktop文件名%s", desktopfn.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()); syslog(LOG_LOCAL0 | LOG_DEBUG, "%s", path.toLocal8Bit().data());
} }
} }
@ -113,35 +111,35 @@ void TabletDirectoryChangedThread::run()
QFileInfo fileInfo(desktopfp); QFileInfo fileInfo(desktopfp);
QString desktopfn = fileInfo.fileName(); QString desktopfn = fileInfo.fileName();
myDebug() << "卸载" << desktopfn; myDebug() << "卸载" << desktopfn;
setting->beginGroup("lockapplication"); m_setting->beginGroup("lockapplication");
setting->remove(desktopfn); m_setting->remove(desktopfn);
setting->sync(); m_setting->sync();
setting->endGroup(); m_setting->endGroup();
setting->beginGroup("application"); m_setting->beginGroup("application");
if (!setting->contains(desktopfn)) { if (!m_setting->contains(desktopfn)) {
setting->sync(); m_setting->sync();
setting->endGroup(); m_setting->endGroup();
continue; continue;
} }
int val = setting->value(desktopfn).toInt(); int val = m_setting->value(desktopfn).toInt();
myDebug() << "卸载val" << val; myDebug() << "卸载val" << val;
setting->remove(desktopfn); m_setting->remove(desktopfn);
QStringList desktopfnList = setting->allKeys(); QStringList desktopfnList = m_setting->allKeys();
for (int i = 0; i < desktopfnList.count(); i++) { for (int i = 0; i < desktopfnList.count(); i++) {
if (setting->value(desktopfnList.at(i)).toInt() > val) { if (m_setting->value(desktopfnList.at(i)).toInt() > val) {
setting->setValue(desktopfnList.at(i), setting->value(desktopfnList.at(i)).toInt() - 1); m_setting->setValue(desktopfnList.at(i), m_setting->value(desktopfnList.at(i)).toInt() - 1);
} }
} }
setting->sync(); m_setting->sync();
setting->endGroup(); m_setting->endGroup();
setting->beginGroup("recentapp"); m_setting->beginGroup("recentapp");
setting->remove(desktopfn); m_setting->remove(desktopfn);
setting->sync(); m_setting->sync();
setting->endGroup(); m_setting->endGroup();
syslog(LOG_LOCAL0 | LOG_DEBUG, "软件卸载desktop文件名%s", desktopfn.toLocal8Bit().data()); syslog(LOG_LOCAL0 | LOG_DEBUG, "软件卸载desktop文件名%s", desktopfn.toLocal8Bit().data());
QDBusInterface iface("com.ukui.panel.desktop", QDBusInterface iface("com.ukui.panel.desktop",
"/", "/",

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef TABLETDIRECTORYCHANGEDTHREAD_H #ifndef TABLETDIRECTORYCHANGEDTHREAD_H
@ -35,7 +34,7 @@ public:
private: private:
UkuiMenuInterface *m_ukuiMenuInterface = nullptr; UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
QSettings *setting = nullptr; QSettings *m_setting = nullptr;
TabletListView *m_listView = nullptr; TabletListView *m_listView = nullptr;
QStandardItemModel *listmodel = nullptr; QStandardItemModel *listmodel = nullptr;

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "currenttime_interface.h" #include "currenttime_interface.h"
#include <QTimer> #include <QTimer>
#define TIME_FORMAT "org.ukui.control-center.panel.plugins" #define TIME_FORMAT "org.ukui.control-center.panel.plugins"

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef CURRENTTIMEINTERFACE_H #ifndef CURRENTTIMEINTERFACE_H
#define CURRENTTIMEINTERFACE_H #define CURRENTTIMEINTERFACE_H
#include <QString> #include <QString>
@ -7,9 +24,9 @@
#include <QDateTime> #include <QDateTime>
#include <QObject> #include <QObject>
class CurrentTimeInterface : QObject class CurrentTimeInterface : public QObject
{ {
Q_OBJECT
public: public:
CurrentTimeInterface(); CurrentTimeInterface();
~CurrentTimeInterface(); ~CurrentTimeInterface();

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "ukui_chineseletter.h" #include "ukui_chineseletter.h"

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef UKUICHINESELETTER_H #ifndef UKUICHINESELETTER_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "ukuimenuinterface.h" #include "ukuimenuinterface.h"
@ -996,7 +995,7 @@ QVector<QString> UkuiMenuInterface::getAllClassification()
commonVector = getCommonUseApp(); commonVector = getCommonUseApp();
int index = 0; int index = 0;
Q_FOREACH (QString desktopfp, desktopfpVector) { Q_FOREACH(QString desktopfp, desktopfpVector) {
if (!commonVector.contains(desktopfp)) { if (!commonVector.contains(desktopfp)) {
appVector.append(appInfoVector.at(index)); appVector.append(appInfoVector.at(index));
} }
@ -1006,7 +1005,7 @@ QVector<QString> UkuiMenuInterface::getAllClassification()
qSort(appVector.begin(), appVector.end(), cmpApp); qSort(appVector.begin(), appVector.end(), cmpApp);
Q_FOREACH (QString desktopfp, commonVector) { Q_FOREACH(QString desktopfp, commonVector) {
allAppVector.append(desktopfp); allAppVector.append(desktopfp);
} }
@ -1102,7 +1101,7 @@ QVector<QString> UkuiMenuInterface::getCommonUseApp()
if (!g_projectCodeName.contains("V10SP1-edu")) { if (!g_projectCodeName.contains("V10SP1-edu")) {
QVector<QString> data; QVector<QString> data;
Q_FOREACH (QString desktopfn, getLockAppList()) { Q_FOREACH(QString desktopfn, getLockAppList()) {
QString desktopfp; QString desktopfp;
if (androidDesktopfnList.contains(desktopfn)) { if (androidDesktopfnList.contains(desktopfn)) {
@ -1120,7 +1119,7 @@ QVector<QString> UkuiMenuInterface::getCommonUseApp()
data.append(desktopfp); data.append(desktopfp);
} }
Q_FOREACH (QString desktopfn, getUnlockAllList()) { Q_FOREACH(QString desktopfn, getUnlockAllList()) {
QString desktopfp; QString desktopfp;
if (androidDesktopfnList.contains(desktopfn)) { if (androidDesktopfnList.contains(desktopfn)) {
@ -1163,7 +1162,7 @@ QVector<QString> UkuiMenuInterface::sortDesktopList(QString group)
setting->endGroup(); setting->endGroup();
QVector<QString> data; QVector<QString> data;
Q_FOREACH (QString desktopfn, desktopfnList) { Q_FOREACH(QString desktopfn, desktopfnList) {
QString desktopfp; QString desktopfp;
if (androidDesktopfnList.contains(desktopfn)) { if (androidDesktopfnList.contains(desktopfn)) {
@ -1181,7 +1180,7 @@ QVector<QString> UkuiMenuInterface::getCollectApp()
{ {
QVector<QString> data; QVector<QString> data;
Q_FOREACH (QString desktopfn, getCollectAppList()) { Q_FOREACH(QString desktopfn, getCollectAppList()) {
QString desktopfp; QString desktopfp;
if (androidDesktopfnList.contains(desktopfn)) { if (androidDesktopfnList.contains(desktopfn)) {
@ -1221,7 +1220,7 @@ QVector<QString> UkuiMenuInterface::getLockApp()
setting->endGroup(); setting->endGroup();
QVector<QString> data; QVector<QString> data;
Q_FOREACH (QString desktopfn, lockdesktopfnList) { Q_FOREACH(QString desktopfn, lockdesktopfnList) {
QString desktopfp; QString desktopfp;
// if(androidDesktopfnList.contains(desktopfn))//如果锁的应用在安卓列表 // if(androidDesktopfnList.contains(desktopfn))//如果锁的应用在安卓列表
// desktopfp=QString(QDir::homePath()+"/.local/share/applications/"+desktopfn); // desktopfp=QString(QDir::homePath()+"/.local/share/applications/"+desktopfn);
@ -1580,7 +1579,7 @@ QString UkuiMenuInterface::getAppNameInitials(QString desktopfp)
QStringList appnamestr = appname.split(" "); QStringList appnamestr = appname.split(" ");
QString letters; QString letters;
Q_FOREACH (QString name, appnamestr) { Q_FOREACH(QString name, appnamestr) {
letters.clear(); letters.clear();
letters = UkuiChineseLetter::getFirstLettersAll(name); letters = UkuiChineseLetter::getFirstLettersAll(name);

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef UKUIMENUINTERFACE_H #ifndef UKUIMENUINTERFACE_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "searchappthread.h" #include "searchappthread.h"
@ -27,7 +26,10 @@ SearchAppThread::SearchAppThread()
SearchAppThread::~SearchAppThread() SearchAppThread::~SearchAppThread()
{ {
if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface; delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
} }
void SearchAppThread::run() void SearchAppThread::run()

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef SEARCHAPPTHREAD_H #ifndef SEARCHAPPTHREAD_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "getmodeldata.h" #include "getmodeldata.h"
#include <QTranslator> #include <QTranslator>
#include <QDir> #include <QDir>
@ -9,6 +26,14 @@ GetModelData::GetModelData()
loadDesktopVercor(); loadDesktopVercor();
} }
GetModelData::~GetModelData()
{
if (m_ukuiMenuInterface != nullptr) {
delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
}
void GetModelData::loadDesktopVercor() void GetModelData::loadDesktopVercor()
{ {
UkuiMenuInterface::appInfoVector.clear(); UkuiMenuInterface::appInfoVector.clear();
@ -27,7 +52,7 @@ QVector<QStringList> GetModelData::getMinAllData()
{ {
m_minAllData.clear(); m_minAllData.clear();
Q_FOREACH (QString desktopfp, UkuiMenuInterface::allAppVector) { Q_FOREACH(QString desktopfp, UkuiMenuInterface::allAppVector) {
m_minAllData.append(QStringList() << desktopfp << "1"); m_minAllData.append(QStringList() << desktopfp << "1");
} }
@ -40,11 +65,11 @@ QStringList GetModelData::getPreCollectionApp()
QStringList preAppList = QStringList(); QStringList preAppList = QStringList();
QStringList preAppListExist = QStringList(); QStringList preAppListExist = QStringList();
preAppList << QString("/usr/share/applications/ukui-control-center.desktop") preAppList << QString("/usr/share/applications/ukui-control-center.desktop")
<<QString("/usr/share/applications/kylin-weather.desktop") << QString("/usr/share/applications/kylin-weather.desktop")
<<QString("/usr/share/applications/kylin-software-center.desktop") << QString("/usr/share/applications/kylin-software-center.desktop")
<<QString("/usr/share/applications/kylin-screenshot.desktop") << QString("/usr/share/applications/kylin-screenshot.desktop")
<<QString("/usr/share/applications/peony.desktop"); << QString("/usr/share/applications/peony.desktop");
Q_FOREACH (QString appDesktop,preAppList) { Q_FOREACH(QString appDesktop,preAppList) {
if (UkuiMenuInterface::allAppVector.contains(appDesktop)) { if (UkuiMenuInterface::allAppVector.contains(appDesktop)) {
preAppListExist.append(appDesktop); preAppListExist.append(appDesktop);
QFileInfo fileInfo(appDesktop); QFileInfo fileInfo(appDesktop);
@ -60,7 +85,7 @@ QStringList GetModelData::getcollectData()
{ {
m_collectData.clear(); m_collectData.clear();
Q_FOREACH (QString desktopfp, UkuiMenuInterface::collectAppVector) { Q_FOREACH(QString desktopfp, UkuiMenuInterface::collectAppVector) {
m_collectData.append(QString(desktopfp)); m_collectData.append(QString(desktopfp));
} }
@ -83,7 +108,6 @@ QVector<QStringList> GetModelData::getRecentData()
enumerator = new Peony::FileEnumerator(this); enumerator = new Peony::FileEnumerator(this);
enumerator->setEnumerateDirectory("recent:///"); enumerator->setEnumerateDirectory("recent:///");
enumerator->enumerateSync(); enumerator->enumerateSync();
QString uri;
for (auto fileInfo : enumerator->getChildren()) { for (auto fileInfo : enumerator->getChildren()) {
QStringList recentData; QStringList recentData;

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef GETMODELDATA_H #ifndef GETMODELDATA_H
#define GETMODELDATA_H #define GETMODELDATA_H
#include "ukuimenuinterface.h" #include "ukuimenuinterface.h"
@ -11,6 +28,7 @@ class GetModelData : public QObject
public: public:
GetModelData(); GetModelData();
~GetModelData();
public: public:
/** /**

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "pagemanager.h" #include "pagemanager.h"
#include "ukuimenuinterface.h" #include "ukuimenuinterface.h"
#include "style.h" #include "style.h"
@ -9,19 +26,27 @@ PageManager::PageManager()
m_ukuiMenuInterface->initAppIni(); m_ukuiMenuInterface->initAppIni();
} }
PageManager::~PageManager()
{
if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
}
int PageManager::getPageNum(const int &appNum) int PageManager::getPageNum(const int &appNum)
{ {
int pageNum = 0; int pageNum = 0;
if (appNum / (Style::appColumnFirst * Style::appLineFirst) == 0) { if (appNum / (Style::m_appColumnFirst * Style::m_appLineFirst) == 0) {
pageNum = 1; pageNum = 1;
} else { } else {
int appNumOtherPage = appNum - (Style::appColumnFirst * Style::appLineFirst); int appNumOtherPage = appNum - (Style::m_appColumnFirst * Style::m_appLineFirst);
if (appNumOtherPage % (Style::appColumn * Style::appLine) == 0) { if (appNumOtherPage % (Style::m_appColumn * Style::m_appLine) == 0) {
pageNum = appNumOtherPage / (Style::appColumn * Style::appLine) + 1; pageNum = appNumOtherPage / (Style::m_appColumn * Style::m_appLine) + 1;
} else { } else {
pageNum = appNumOtherPage / (Style::appColumn * Style::appLine) + 2; pageNum = appNumOtherPage / (Style::m_appColumn * Style::m_appLine) + 2;
} }
} }
@ -34,14 +59,14 @@ QVector<QStringList> PageManager::sortAppInPage(const QVector<QString> &appVecto
QVector<QStringList> pageData; QVector<QStringList> pageData;
QStringList onePageData; QStringList onePageData;
Q_FOREACH (QString desktopfp, appVector) { Q_FOREACH(QString desktopfp, appVector) {
m_data.append(desktopfp); m_data.append(desktopfp);
} }
int pageSize = getPageNum(m_data.size()); int pageSize = getPageNum(m_data.size());
onePageData.clear(); 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) { if (m_data.size() > 0) {
onePageData.append(m_data.at(0)); onePageData.append(m_data.at(0));
m_data.pop_front(); m_data.pop_front();
@ -55,7 +80,7 @@ QVector<QStringList> PageManager::sortAppInPage(const QVector<QString> &appVecto
for (int i = 0; i < pageSize - 1; i++) { for (int i = 0; i < pageSize - 1; i++) {
onePageData.clear(); 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) { if (m_data.size() > 0) {
onePageData.append(m_data.at(0)); onePageData.append(m_data.at(0));
m_data.pop_front(); m_data.pop_front();
@ -79,7 +104,7 @@ QVector<QStringList> PageManager::getAppPageVector()
QVector<QStringList> appPagelist; QVector<QStringList> appPagelist;
QVector<QString> allAppList = UkuiMenuInterface::tencentInitVector + UkuiMenuInterface::customizedVector + UkuiMenuInterface::thirdPartyVector + UkuiMenuInterface::applicationVector; QVector<QString> 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); appPagelist.append(desktopfp);
} }

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef PAGEMANAGER_H #ifndef PAGEMANAGER_H
#define PAGEMANAGER_H #define PAGEMANAGER_H
@ -9,6 +26,7 @@ class PageManager : public QObject
Q_OBJECT Q_OBJECT
public: public:
PageManager(); PageManager();
~PageManager();
int getPageNum(const int &appNum); int getPageNum(const int &appNum);
QVector<QStringList> sortAppInPage(const QVector<QString> &appVector); QVector<QStringList> sortAppInPage(const QVector<QString> &appVector);

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "function_classify_button.h" #include "function_classify_button.h"

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef FUNCTIONCLASSIFYBUTTON_H #ifndef FUNCTIONCLASSIFYBUTTON_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "letter_classify_button.h" #include "letter_classify_button.h"
@ -167,9 +166,9 @@ void LetterClassifyButton::leaveEvent(QEvent *e)
if (m_fullscreen) { if (m_fullscreen) {
QFont font; QFont font;
font.setPixelSize(Style::LeftLetterFontSize); font.setPixelSize(Style::m_leftLetterFontSize);
this->setFont(font); this->setFont(font);
this->setFixedSize(Style::LeftLetterBtnHeight, Style::LeftLetterBtnHeight); this->setFixedSize(Style::m_leftLetterBtnHeight, Style::m_leftLetterBtnHeight);
tooltip->close(); tooltip->close();
delete tooltip; delete tooltip;
tooltip = nullptr; tooltip = nullptr;
@ -195,9 +194,9 @@ void LetterClassifyButton::focusInEvent(QEvent *e)
if (m_fullscreen) { if (m_fullscreen) {
QFont font; QFont font;
font.setPixelSize(Style::LeftLetterFontSize * 3); font.setPixelSize(Style::m_leftLetterFontSize * 3);
this->setFont(font); this->setFont(font);
this->setFixedSize(Style::LeftLetterBtnHeight * 2, Style::LeftLetterBtnHeight * 2); this->setFixedSize(Style::m_leftLetterBtnHeight * 2, Style::m_leftLetterBtnHeight * 2);
} }
} }

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef LETTERCLASSIFYBUTTON_H #ifndef LETTERCLASSIFYBUTTON_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "tool_button.h" #include "tool_button.h"

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef TOOLBUTTON_H #ifndef TOOLBUTTON_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "fulllistview.h" #include "fulllistview.h"
@ -30,13 +29,25 @@ FullListView::FullListView(QWidget *parent, int module):
initWidget(); initWidget();
m_delegate = new FullItemDelegate(this, module); m_delegate = new FullItemDelegate(this, module);
this->setItemDelegate(m_delegate); this->setItemDelegate(m_delegate);
pUkuiMenuInterface = new UkuiMenuInterface; m_ukuiMenuInterface = new UkuiMenuInterface;
} }
FullListView::~FullListView() FullListView::~FullListView()
{ {
delete menu; if (m_rightMenu) {
delete gsetting; 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() void FullListView::initWidget()
@ -84,7 +95,7 @@ void FullListView::keyPressEvent(QKeyEvent *e)
case Qt::Key_Left: { case Qt::Key_Left: {
this->clearFocus(); 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); Q_EMIT sendSetslidebar(-Style::m_applistGridSizeWidth);
} }
@ -107,7 +118,7 @@ void FullListView::keyPressEvent(QKeyEvent *e)
case Qt::Key_Up: { case Qt::Key_Up: {
if (module == 0) { 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); Q_EMIT sendSetslidebar(-Style::m_applistGridSizeWidth);
} }
} }

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef FULLLISTVIEW_H #ifndef FULLLISTVIEW_H
@ -42,9 +41,9 @@ protected:
void keyPressEvent(QKeyEvent *e); void keyPressEvent(QKeyEvent *e);
private: private:
RightClickMenu *menu = nullptr;//右键菜单 RightClickMenu *m_rightMenu = nullptr;//右键菜单
QStringList data; QStringList m_data;
QGSettings *gsetting = nullptr; QGSettings *m_gsetting = nullptr;
public Q_SLOTS: public Q_SLOTS:
void selectFirstItem(); void selectFirstItem();

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include <QPainter> #include <QPainter>
#include "klistview.h" #include "klistview.h"
#include "utility.h" #include "utility.h"
#include <QScrollBar> #include <QScrollBar>
#include <QtConcurrent/QtConcurrent>
#include "rightclickmenu.h" #include "rightclickmenu.h"
KListView::KListView(QWidget *parent): KListView::KListView(QWidget *parent):
@ -11,42 +29,47 @@ KListView::KListView(QWidget *parent):
KListView::~KListView() KListView::~KListView()
{ {
if (m_delegate) {
delete m_delegate; delete m_delegate;
delete listmodel; m_delegate = nullptr;
delete pUkuiMenuInterface; }
if (m_listmodel) {
delete m_listmodel;
m_listmodel = nullptr;
}
} }
void KListView::addData(QStringList data) void KListView::addData(QStringList data)
{ {
listmodel = new QStandardItemModel(this); m_listmodel = new QStandardItemModel(this);
this->setModel(listmodel); this->setModel(m_listmodel);
Q_FOREACH (QString desktopfp, data) { Q_FOREACH(QString desktopfp, data) {
QStandardItem *item = new QStandardItem; QStandardItem *item = new QStandardItem;
item->setData(QVariant::fromValue<QString>(desktopfp), Qt::DisplayRole); item->setData(QVariant::fromValue<QString>(desktopfp), Qt::DisplayRole);
listmodel->appendRow(item); m_listmodel->appendRow(item);
} }
} }
void KListView::updateData(QStringList data) void KListView::updateData(QStringList data)
{ {
listmodel->clear(); m_listmodel->clear();
Q_FOREACH (QString desktopfp, data) { Q_FOREACH(QString desktopfp, data) {
QStandardItem *item = new QStandardItem; QStandardItem *item = new QStandardItem;
item->setData(QVariant::fromValue<QString>(desktopfp), Qt::DisplayRole); item->setData(QVariant::fromValue<QString>(desktopfp), Qt::DisplayRole);
listmodel->appendRow(item); m_listmodel->appendRow(item);
} }
} }
void KListView::onClicked(QModelIndex index) void KListView::onClicked(QModelIndex index)
{ {
QVariant var = listmodel->data(index, Qt::DisplayRole); QVariant var = m_listmodel->data(index, Qt::DisplayRole);
if (var.isValid()) { if (var.isValid()) {
QString desktopfp = var.value<QString>(); QString desktopfp = var.value<QString>();
Q_EMIT sendHideMainWindowSignal(); Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp); QtConcurrent::run(execApp, QString(desktopfp));
} }
} }
@ -69,14 +92,21 @@ void KListView::mouseMoveEvent(QMouseEvent *e)
void KListView::mousePressEvent(QMouseEvent *event) 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) {
Q_EMIT sendHideMainWindowSignal(); m_pressApp = m_listmodel->data(this->indexAt(event->pos()), Qt::DisplayRole);
} else {
pressApp = listmodel->data(this->indexAt(event->pos()), Qt::DisplayRole);
} }
return QListView::mousePressEvent(event); return QListView::mousePressEvent(event);
} }
void KListView::mouseReleaseEvent(QMouseEvent *e)
{
if (!(this->indexAt(e->pos()).isValid()) && e->button() == Qt::LeftButton) {
Q_EMIT sendHideMainWindowSignal();
} else {
return QListView::mouseReleaseEvent(e);
}
}
void KListView::rightClickedSlot(const QPoint &pos) void KListView::rightClickedSlot(const QPoint &pos)
{ {
if (!(this->selectionModel()->selectedIndexes().isEmpty())) { if (!(this->selectionModel()->selectedIndexes().isEmpty())) {
@ -86,7 +116,7 @@ void KListView::rightClickedSlot(const QPoint &pos)
return; return;
} }
QVariant var = listmodel->data(index, Qt::DisplayRole); QVariant var = m_listmodel->data(index, Qt::DisplayRole);
QStringList strlist = var.value<QStringList>(); QStringList strlist = var.value<QStringList>();
if (strlist.count() == 1 || ((strlist.count() == 2) && (strlist.at(1).toInt() == 1))) { if (strlist.count() == 1 || ((strlist.count() == 2) && (strlist.at(1).toInt() == 1))) {

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef KLISTVIEW_H #ifndef KLISTVIEW_H
#define KLISTVIEW_H #define KLISTVIEW_H
#include <QListView> #include <QListView>
@ -15,15 +32,16 @@ public:
void initWidget(); void initWidget();
KItemDelegate *m_delegate = nullptr; KItemDelegate *m_delegate = nullptr;
QStandardItemModel *listmodel = nullptr; QStandardItemModel *m_listmodel = nullptr;
int module = 0; int module = 0;
double transparency; double m_transparency;
QVariant pressApp; QVariant m_pressApp;
UkuiMenuInterface *pUkuiMenuInterface = nullptr; UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
protected: protected:
void paintEvent(QPaintEvent *e); void paintEvent(QPaintEvent *e);
void mousePressEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event);
void mouseMoveEvent(QMouseEvent *e); void mouseMoveEvent(QMouseEvent *e);
void mouseReleaseEvent(QMouseEvent *e);
public: public:
void addData(QStringList data); void addData(QStringList data);
void updateData(QStringList data); void updateData(QStringList data);

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "listview.h" #include "listview.h"
@ -21,6 +20,7 @@
#include "utility.h" #include "utility.h"
#include <QDebug> #include <QDebug>
#include <QDesktopServices> #include <QDesktopServices>
#include <QtConcurrent/QtConcurrent>
ListView::ListView(QWidget *parent/*, int width, int height, int module*/): ListView::ListView(QWidget *parent/*, int width, int height, int module*/):
KListView(parent) KListView(parent)
@ -29,15 +29,19 @@ ListView::ListView(QWidget *parent/*, int width, int height, int module*/):
this->h = 540; this->h = 540;
this->module = 1; this->module = 1;
initWidget(); initWidget();
listmodel = new QStandardItemModel(this); setAttribute(Qt::WA_AcceptTouchEvents);
this->setModel(listmodel); m_listmodel = new QStandardItemModel(this);
pUkuiMenuInterface = new UkuiMenuInterface; this->setModel(m_listmodel);
m_ukuiMenuInterface = new UkuiMenuInterface;
this->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel); this->setHorizontalScrollMode(QAbstractItemView::ScrollPerPixel);
} }
ListView::~ListView() ListView::~ListView()
{ {
delete pUkuiMenuInterface; if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
} }
void ListView::initWidget() void ListView::initWidget()
@ -69,12 +73,12 @@ void ListView::initWidget()
void ListView::addData(QVector<QStringList> data, int module) void ListView::addData(QVector<QStringList> data, int module)
{ {
this->module = module; this->module = module;
listmodel->clear(); m_listmodel->clear();
Q_FOREACH (QStringList desktopfp, data) { Q_FOREACH(QStringList desktopfp, data) {
QStandardItem *item = new QStandardItem; QStandardItem *item = new QStandardItem;
item->setData(QVariant::fromValue<QStringList>(desktopfp), Qt::DisplayRole); item->setData(QVariant::fromValue<QStringList>(desktopfp), Qt::DisplayRole);
listmodel->appendRow(item); m_listmodel->appendRow(item);
} }
m_delegate = new ItemDelegate(this, module); m_delegate = new ItemDelegate(this, module);
@ -83,18 +87,33 @@ void ListView::addData(QVector<QStringList> data, int module)
void ListView::updateData(QVector<QStringList> data) void ListView::updateData(QVector<QStringList> data)
{ {
listmodel->clear(); m_listmodel->clear();
Q_FOREACH (QStringList desktopfp, data) { Q_FOREACH(QStringList desktopfp, data) {
QStandardItem *item = new QStandardItem; QStandardItem *item = new QStandardItem;
item->setData(QVariant::fromValue<QStringList>(desktopfp), Qt::DisplayRole); item->setData(QVariant::fromValue<QStringList>(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) void ListView::onClicked(QModelIndex index)
{ {
QVariant var = listmodel->data(index, Qt::DisplayRole); QVariant var = m_listmodel->data(index, Qt::DisplayRole);
QString desktopfp = var.value<QStringList>().at(0); QString desktopfp = var.value<QStringList>().at(0);
if (var.isValid()) { if (var.isValid()) {
@ -108,7 +127,7 @@ void ListView::onClicked(QModelIndex index)
Q_EMIT sendAppClassificationBtnClicked(); Q_EMIT sendAppClassificationBtnClicked();
} else { } else {
Q_EMIT sendHideMainWindowSignal(); Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp); QtConcurrent::run(execApp, QString(desktopfp));
} }
} }
} }
@ -116,14 +135,18 @@ void ListView::onClicked(QModelIndex index)
void ListView::enterEvent(QEvent *e) void ListView::enterEvent(QEvent *e)
{ {
Q_UNUSED(e); Q_UNUSED(e);
if (m_scrollbarState) {
this->selectionModel()->clear(); this->selectionModel()->clear();
this->verticalScrollBar()->setVisible(true); verticalScrollBar()->setVisible(true);
}
} }
void ListView::leaveEvent(QEvent *e) void ListView::leaveEvent(QEvent *e)
{ {
Q_UNUSED(e); Q_UNUSED(e);
this->verticalScrollBar()->setVisible(false); if (m_scrollbarState) {
verticalScrollBar()->setVisible(false);
}
} }
void ListView::paintEvent(QPaintEvent *e) void ListView::paintEvent(QPaintEvent *e)

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef LISTVIEW_H #ifndef LISTVIEW_H
@ -50,11 +49,12 @@ protected:
void leaveEvent(QEvent *e) Q_DECL_OVERRIDE; void leaveEvent(QEvent *e) Q_DECL_OVERRIDE;
void paintEvent(QPaintEvent *e) override; void paintEvent(QPaintEvent *e) override;
void keyPressEvent(QKeyEvent *e); void keyPressEvent(QKeyEvent *e);
bool event(QEvent *e);
private: private:
int w = 0; int w = 0;
int h = 0; int h = 0;
int m_preRowCount; int m_preRowCount;
bool m_scrollbarState = true;
private Q_SLOTS: private Q_SLOTS:

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "rightlistview.h" #include "rightlistview.h"
@ -22,6 +21,7 @@
#include <syslog.h> #include <syslog.h>
#include <QPushButton> #include <QPushButton>
#include <QGSettings> #include <QGSettings>
#include <QtConcurrent/QtConcurrent>
RightListView::RightListView(QWidget *parent): RightListView::RightListView(QWidget *parent):
KListView(parent) KListView(parent)
@ -29,12 +29,16 @@ RightListView::RightListView(QWidget *parent):
initWidget(); initWidget();
m_delegate = new RightItemDelegate(this); m_delegate = new RightItemDelegate(this);
this->setItemDelegate(m_delegate); this->setItemDelegate(m_delegate);
pUkuiMenuInterface = new UkuiMenuInterface; m_ukuiMenuInterface = new UkuiMenuInterface;
} }
RightListView::~RightListView() RightListView::~RightListView()
{ {
delete pUkuiMenuInterface; if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
} }
void RightListView::initWidget() void RightListView::initWidget()
@ -68,11 +72,11 @@ void RightListView::dropEvent(QDropEvent *event)
m_dropPos = event->pos(); m_dropPos = event->pos();
if (this->indexAt(m_dropPos).isValid()) { 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<QString>(); QString desktopfp = var.value<QString>();
QFileInfo fileInfo(desktopfp); QFileInfo fileInfo(desktopfp);
QString desktopfn = fileInfo.fileName(); QString desktopfn = fileInfo.fileName();
QString dragDesktopfp = pressApp.value<QString>(); QString dragDesktopfp = m_pressApp.value<QString>();
QFileInfo dragFileInfo(dragDesktopfp); QFileInfo dragFileInfo(dragDesktopfp);
QString dragDesktopfn = dragFileInfo.fileName(); QString dragDesktopfn = dragFileInfo.fileName();
changeCollectSort(dragDesktopfn, desktopfn); changeCollectSort(dragDesktopfn, desktopfn);
@ -128,12 +132,12 @@ void RightListView::keyPressEvent(QKeyEvent *e)
void RightListView::onClicked(QModelIndex index) void RightListView::onClicked(QModelIndex index)
{ {
Q_EMIT sendHideMainWindowSignal(); QVariant var = m_listmodel->data(index, Qt::DisplayRole);
QVariant var = listmodel->data(index, Qt::DisplayRole);
QString desktopfp = var.value<QStringList>().at(0); QString desktopfp = var.value<QStringList>().at(0);
if (var.isValid()) { if (var.isValid()) {
QString desktopfp = var.value<QString>(); QString desktopfp = var.value<QString>();
execApp(desktopfp); Q_EMIT sendHideMainWindowSignal();
QtConcurrent::run(execApp, QString(desktopfp));
} }
} }

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef RIGHTLISTVIEW_H #ifndef RIGHTLISTVIEW_H
#define RIGHTLISTVIEW_H #define RIGHTLISTVIEW_H
#include <QListView> #include <QListView>

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "tabletlistview.h" #include "tabletlistview.h"
@ -150,7 +149,7 @@ void TabletListView::addData(QStringList data)
listmodel = new QStandardItemModel(this); listmodel = new QStandardItemModel(this);
this->setModel(listmodel); this->setModel(listmodel);
Q_FOREACH (QString desktopfp, data) { Q_FOREACH(QString desktopfp, data) {
QStandardItem *item = new QStandardItem; QStandardItem *item = new QStandardItem;
item->setData(QVariant::fromValue<QString>(desktopfp), Qt::DisplayRole); item->setData(QVariant::fromValue<QString>(desktopfp), Qt::DisplayRole);
bool appDis = appDisable(desktopfp); bool appDis = appDisable(desktopfp);
@ -166,7 +165,7 @@ void TabletListView::updateData(QStringList data)
{ {
listmodel->clear(); listmodel->clear();
Q_FOREACH (QString desktopfp, data) { Q_FOREACH(QString desktopfp, data) {
QStandardItem *p_item = new QStandardItem; QStandardItem *p_item = new QStandardItem;
p_item->setData(QVariant::fromValue<QString>(desktopfp), Qt::DisplayRole); p_item->setData(QVariant::fromValue<QString>(desktopfp), Qt::DisplayRole);
bool appDis = appDisable(desktopfp); bool appDis = appDisable(desktopfp);
@ -312,15 +311,15 @@ void TabletListView::mousePressEvent(QMouseEvent *event)
//左键 //左键
myDebug() << "左键点击,当前点坐标" << event->pos(); myDebug() << "左键点击,当前点坐标" << event->pos();
if (((this->indexAt(event->pos()).isValid()) && (m_pageNum == FIRSTPAGE) && (((pressedpos.x() % Style::TabletItemSizeWidthFirst) >= Style::FirstPageSpace) && if (((this->indexAt(event->pos()).isValid()) && (m_pageNum == FIRSTPAGE) && (((pressedpos.x() % Style::m_tabletItemSizeWidthFirst) >= Style::m_firstPageSpace) &&
((pressedpos.x() % Style::TabletItemSizeWidthFirst) <= (Style::FirstPageSpace + Style::AppListIconSize)) && ((pressedpos.x() % Style::m_tabletItemSizeWidthFirst) <= (Style::m_firstPageSpace + Style::m_appListIconSize)) &&
((pressedpos.y() % Style::AppListItemSizeHeight) >= Style::AppTopSpace) && ((pressedpos.y() % Style::m_appListItemSizeHeight) >= Style::m_appTopSpace) &&
((pressedpos.y() % Style::AppListItemSizeHeight) <= (Style::AppTopSpace + Style::AppListIconSize)))) || ((pressedpos.y() % Style::m_appListItemSizeHeight) <= (Style::m_appTopSpace + Style::m_appListIconSize)))) ||
((this->indexAt(event->pos()).isValid()) && (m_pageNum == OTHERPAGE) && ((this->indexAt(event->pos()).isValid()) && (m_pageNum == OTHERPAGE) &&
(pressedpos.x() % Style::TabletItemSizeWidthOther >= Style::OtherPageSpace && (pressedpos.x() % Style::m_tabletItemSizeWidthOther >= Style::m_otherPageSpace &&
pressedpos.x() % Style::TabletItemSizeWidthOther <= Style::OtherPageSpace + Style::AppListIconSize && pressedpos.x() % Style::m_tabletItemSizeWidthOther <= Style::m_otherPageSpace + Style::m_appListIconSize &&
pressedpos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && pressedpos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace &&
pressedpos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize))) { pressedpos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize))) {
pressApp = listmodel->data(this->indexAt(pressedpos), Qt::DisplayRole); pressApp = listmodel->data(this->indexAt(pressedpos), Qt::DisplayRole);
iconClick = true; iconClick = true;
startPos = event->pos(); startPos = event->pos();
@ -337,15 +336,15 @@ void TabletListView::mousePressEvent(QMouseEvent *event)
//右键 //右键
myDebug() << "右键点击,当前点坐标" << event->pos(); myDebug() << "右键点击,当前点坐标" << event->pos();
if (((this->indexAt(event->pos()).isValid()) && (m_pageNum == FIRSTPAGE) && ((pressedpos.x()) % Style::TabletItemSizeWidthFirst >= Style::FirstPageSpace && if (((this->indexAt(event->pos()).isValid()) && (m_pageNum == FIRSTPAGE) && ((pressedpos.x()) % Style::m_tabletItemSizeWidthFirst >= Style::m_firstPageSpace &&
(pressedpos.x()) % Style::TabletItemSizeWidthFirst <= Style::FirstPageSpace + Style::AppListIconSize && (pressedpos.x()) % Style::m_tabletItemSizeWidthFirst <= Style::m_firstPageSpace + Style::m_appListIconSize &&
pressedpos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && pressedpos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace &&
pressedpos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize)) || pressedpos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize)) ||
((this->indexAt(event->pos()).isValid()) && (m_pageNum == OTHERPAGE) && ((this->indexAt(event->pos()).isValid()) && (m_pageNum == OTHERPAGE) &&
(pressedpos.x() % Style::TabletItemSizeWidthOther >= Style::OtherPageSpace && (pressedpos.x() % Style::m_tabletItemSizeWidthOther >= Style::m_otherPageSpace &&
pressedpos.x() % Style::TabletItemSizeWidthOther <= Style::OtherPageSpace + Style::AppListIconSize && pressedpos.x() % Style::m_tabletItemSizeWidthOther <= Style::m_otherPageSpace + Style::m_appListIconSize &&
pressedpos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && pressedpos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace &&
pressedpos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize))) { pressedpos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize))) {
pressApp = listmodel->data(this->indexAt(pressedpos), Qt::DisplayRole); pressApp = listmodel->data(this->indexAt(pressedpos), Qt::DisplayRole);
right_iconClick = true; right_iconClick = true;
right_pressedpos = pressedpos; right_pressedpos = pressedpos;
@ -362,6 +361,7 @@ void TabletListView::mousePressEvent(QMouseEvent *event)
void TabletListView::mouseMoveEvent(QMouseEvent *event) void TabletListView::mouseMoveEvent(QMouseEvent *event)
{ {
myDebug();
if (event->buttons() & Qt::LeftButton & this->indexAt(event->pos()).isValid()) { if (event->buttons() & Qt::LeftButton & this->indexAt(event->pos()).isValid()) {
if (iconClick) { if (iconClick) {
if ((event->pos() - startPos).manhattanLength() >= QApplication::startDragDistance()) { if ((event->pos() - startPos).manhattanLength() >= QApplication::startDragDistance()) {
@ -408,17 +408,17 @@ void TabletListView::dragMoveEvent(QDragMoveEvent *event)
m_time->start(500); m_time->start(500);
if (m_pageNum == OTHERPAGE) { if (m_pageNum == OTHERPAGE) {
if (event->pos().x() >= (Style::OtherPageViewWidth - (Style::OtherPageSpace / 2)) || 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::OtherPageSpace / 2)) { if (event->pos().x() <= (Style::m_otherPageSpace / 2)) {
Q_EMIT pagenumchanged(false); 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); Q_EMIT pagenumchanged(true);
} }
} }
} else { } 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); Q_EMIT pagenumchanged(true);
} }
} }
@ -429,12 +429,14 @@ void TabletListView::dragMoveEvent(QDragMoveEvent *event)
void TabletListView::dragEnterEvent(QDragEnterEvent *event) void TabletListView::dragEnterEvent(QDragEnterEvent *event)
{ {
myDebug();
iconClick = true; iconClick = true;
event->accept(); event->accept();
} }
void TabletListView::dropEvent(QDropEvent *event) void TabletListView::dropEvent(QDropEvent *event)
{ {
myDebug();
dropPos = event->pos(); dropPos = event->pos();
pressDesktopfp = (QString)event->mimeData()->data("INFO"); pressDesktopfp = (QString)event->mimeData()->data("INFO");
insertApplication(startPos, dropPos); insertApplication(startPos, dropPos);
@ -442,6 +444,7 @@ void TabletListView::dropEvent(QDropEvent *event)
} }
void TabletListView::mouseReleaseEvent(QMouseEvent *e) void TabletListView::mouseReleaseEvent(QMouseEvent *e)
{ {
myDebug();
releasepos = e->pos();//释放的位置坐标 releasepos = e->pos();//释放的位置坐标
if (iconClick) { if (iconClick) {
@ -503,9 +506,9 @@ void TabletListView::insertApplication(QPoint pressedpos, QPoint releasepos)
QString desktopfn2 = fileInfo2.fileName(); QString desktopfn2 = fileInfo2.fileName();
if (m_pageNum == FIRSTPAGE) { if (m_pageNum == FIRSTPAGE) {
releasepos.setX(releasepos.x() + Style::OtherPageSpace); releasepos.setX(releasepos.x() + Style::m_otherPageSpace);
} else { } else {
releasepos.setX(releasepos.x() + Style::FirstPageSpace); releasepos.setX(releasepos.x() + Style::m_firstPageSpace);
} }
QVariant var3 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//释放位置右侧有应用 QVariant var3 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//释放位置右侧有应用
@ -514,9 +517,9 @@ void TabletListView::insertApplication(QPoint pressedpos, QPoint releasepos)
QString desktopfn3 = fileInfo3.fileName(); QString desktopfn3 = fileInfo3.fileName();
if (m_pageNum == FIRSTPAGE) { if (m_pageNum == FIRSTPAGE) {
releasepos.setX(releasepos.x() - (Style::OtherPageSpace * 2)); releasepos.setX(releasepos.x() - (Style::m_otherPageSpace * 2));
} else { } 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);//右侧没有左侧有 QVariant var4 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//右侧没有左侧有
@ -620,22 +623,22 @@ void TabletListView::insertApplication(QPoint pressedpos, QPoint releasepos)
QFileInfo fileInfo2(pressDesktopfp); QFileInfo fileInfo2(pressDesktopfp);
QString desktopfn2 = fileInfo2.fileName(); QString desktopfn2 = fileInfo2.fileName();
if (((this->indexAt(releasepos).isValid()) && (m_pageNum == FIRSTPAGE) && ((releasepos.x()) % Style::TabletItemSizeWidthFirst >= Style::FirstPageSpace && if (((this->indexAt(releasepos).isValid()) && (m_pageNum == FIRSTPAGE) && ((releasepos.x()) % Style::m_tabletItemSizeWidthFirst >= Style::m_firstPageSpace &&
(releasepos.x()) % Style::TabletItemSizeWidthFirst <= Style::FirstPageSpace + Style::AppListIconSize && (releasepos.x()) % Style::m_tabletItemSizeWidthFirst <= Style::m_firstPageSpace + Style::m_appListIconSize &&
releasepos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && releasepos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace &&
releasepos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize)) || releasepos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize)) ||
((this->indexAt(releasepos).isValid()) && (m_pageNum == OTHERPAGE) && ((this->indexAt(releasepos).isValid()) && (m_pageNum == OTHERPAGE) &&
(releasepos.x() % Style::TabletItemSizeWidthOther >= Style::OtherPageSpace && (releasepos.x() % Style::m_tabletItemSizeWidthOther >= Style::m_otherPageSpace &&
releasepos.x() % Style::TabletItemSizeWidthOther <= Style::OtherPageSpace + Style::AppListIconSize && releasepos.x() % Style::m_tabletItemSizeWidthOther <= Style::m_otherPageSpace + Style::m_appListIconSize &&
releasepos.y() % Style::AppListItemSizeHeight >= Style::AppTopSpace && releasepos.y() % Style::m_appListItemSizeHeight >= Style::m_appTopSpace &&
releasepos.y() % Style::AppListItemSizeHeight <= Style::AppTopSpace + Style::AppListIconSize))) { releasepos.y() % Style::m_appListItemSizeHeight <= Style::m_appTopSpace + Style::m_appListIconSize))) {
return; return;
} }
if (m_pageNum == FIRSTPAGE) { if (m_pageNum == FIRSTPAGE) {
releasepos.setX(releasepos.x() + Style::FirstPageSpace); releasepos.setX(releasepos.x() + Style::m_firstPageSpace);
} else { } else {
releasepos.setX(releasepos.x() + Style::OtherPageSpace); releasepos.setX(releasepos.x() + Style::m_otherPageSpace);
} }
QVariant var3 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//释放位置右侧有应用 QVariant var3 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//释放位置右侧有应用
@ -644,9 +647,9 @@ void TabletListView::insertApplication(QPoint pressedpos, QPoint releasepos)
QString desktopfn3 = fileInfo3.fileName(); QString desktopfn3 = fileInfo3.fileName();
if (m_pageNum == FIRSTPAGE) { if (m_pageNum == FIRSTPAGE) {
releasepos.setX(releasepos.x() - Style::FirstPageSpace * 2); releasepos.setX(releasepos.x() - Style::m_firstPageSpace * 2);
} else { } 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);//右侧没有左侧有 QVariant var4 = listmodel->data(this->indexAt(releasepos), Qt::DisplayRole);//右侧没有左侧有

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef TABLETLISTVIEW_H #ifndef TABLETLISTVIEW_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "classify_btn_scrollarea.h" #include "classify_btn_scrollarea.h"

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef CLASSIFYSCROLLAREA_H #ifndef CLASSIFYSCROLLAREA_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "lettertooltip.h" #include "lettertooltip.h"
#include <QPainter> #include <QPainter>
#include <QAction> #include <QAction>

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef LETTERTOOLTIP_H #ifndef LETTERTOOLTIP_H
#define LETTERTOOLTIP_H #define LETTERTOOLTIP_H
#include <QDialog> #include <QDialog>

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "rotationlabel.h" #include "rotationlabel.h"
#include <QPainter> #include <QPainter>
#include <QDebug> #include <QDebug>
#include "utility.h"
RotationLabel::RotationLabel(QWidget *parent) RotationLabel::RotationLabel(QWidget *parent)
: QLabel(parent) : QLabel(parent)
@ -32,6 +50,11 @@ void RotationLabel::paintEvent(QPaintEvent *event)
return QLabel::paintEvent(event); return QLabel::paintEvent(event);
} }
void RotationLabel::mouseReleaseEvent(QMouseEvent *ev)
{
Q_UNUSED(ev);
}
void RotationLabel::setIcon(const QPixmap &pixmap) void RotationLabel::setIcon(const QPixmap &pixmap)
{ {
m_pixmap = pixmap; m_pixmap = pixmap;

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef ROTATIONLABEL_H #ifndef ROTATIONLABEL_H
#define ROTATIONLABEL_H #define ROTATIONLABEL_H
#include <QLabel> #include <QLabel>
@ -13,6 +30,7 @@ protected:
int rotation(); int rotation();
void setRotation(int rot); void setRotation(int rot);
void paintEvent(QPaintEvent *event); void paintEvent(QPaintEvent *event);
void mouseReleaseEvent(QMouseEvent *ev);
private: private:
int m_rotation = 0; int m_rotation = 0;
QPixmap m_pixmap; QPixmap m_pixmap;

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "scrollarea.h" #include "scrollarea.h"
@ -74,23 +73,13 @@ void ScrollAreaWid::paintEvent(QPaintEvent *event)
ScrollArea::ScrollArea() ScrollArea::ScrollArea()
{ {
// this->verticalScrollBar()->setVisible(false); this->setFocusPolicy(Qt::NoFocus);
// this->setFocusPolicy(Qt::NoFocus); this->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
//// this->setVerticalScrollBarPolicy(Qt::ScrollBarAsNeeded); this->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOn);
this->setFixedWidth(1330);
// this->verticalScrollBar()->setContextMenuPolicy(Qt::NoContextMenu);
this->setFrameShape(QFrame::NoFrame); 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); this->verticalScrollBar()->setVisible(false);
//滚动条设置 this->horizontalScrollBar()->setVisible(false);
QPalette p = this->verticalScrollBar()->palette(); this->setStyleSheet("QWidget{background:transparent;}");
QColor color(255, 255, 255);
color.setAlphaF(0.25);
p.setColor(QPalette::Active, QPalette::Button, color);
this->verticalScrollBar()->setPalette(p);
} }
void ScrollArea::setFocusToNextChild() void ScrollArea::setFocusToNextChild()

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef SCROLLAREA_H #ifndef SCROLLAREA_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "menubox.h" #include "menubox.h"
#include <QDebug> #include <QDebug>
#include <QMouseEvent> #include <QMouseEvent>

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef MENUBOX_H #ifndef MENUBOX_H
#define MENUBOX_H #define MENUBOX_H
#include <QMenu> #include <QMenu>

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "rightclickmenu.h" #include "rightclickmenu.h"
@ -47,8 +46,15 @@ RightClickMenu::RightClickMenu(QWidget *parent):
RightClickMenu::~RightClickMenu() RightClickMenu::~RightClickMenu()
{ {
if (m_cmdProc) {
delete m_cmdProc; delete m_cmdProc;
m_cmdProc = nullptr;
}
if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface; delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
} }
QPixmap RightClickMenu::getIconPixmap(QString iconstr, int type) QPixmap RightClickMenu::getIconPixmap(QString iconstr, int type)
@ -101,6 +107,36 @@ void RightClickMenu::removeFromCollectionActionTriggerSlot()
m_actionNumber = 18; 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<QVariant> 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<QVariant> reply = interface.call("Get","org.freedesktop.DisplayManager.Seat","CanSwitch");
return reply.value().toBool();
}
}
void RightClickMenu::fixToTaskbarActionTriggerSlot() void RightClickMenu::fixToTaskbarActionTriggerSlot()
{ {
QDBusInterface iface("com.ukui.panel.desktop", QDBusInterface iface("com.ukui.panel.desktop",
@ -265,26 +301,26 @@ int RightClickMenu::showShutdownMenu(const QPoint &pos, const bool &isFullWind)
{ {
m_actionNumber = 0; m_actionNumber = 0;
MenuBox m_showShutMenu; MenuBox m_showShutMenu;
QDBusReply<bool> reply;
connect(&m_showShutMenu, &MenuBox::sendMainWinActiveSignal, this, &RightClickMenu::sendMainWinActiveSignal); connect(&m_showShutMenu, &MenuBox::sendMainWinActiveSignal, this, &RightClickMenu::sendMainWinActiveSignal);
QDBusInterface iface(DBUS_SESSION_NAME, DBUS_SESSION_PATH, QDBusInterface iface(DBUS_SESSION_NAME, DBUS_SESSION_PATH,
DBUS_SESSION_INTERFACE, QDBusConnection::sessionBus()); DBUS_SESSION_INTERFACE, QDBusConnection::sessionBus());
QDBusReply<bool> 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"), m_showShutMenu.addAction(QIcon(getIconPixmap("stock-people-symbolic", 1)), tr("Switch user"),
this, SLOT(switchUserActionTriggerSlot())); this, SLOT(switchUserActionTriggerSlot()));
} }
reply = iface.call("canHibernate"); 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"), m_showShutMenu.addAction(QIcon(getIconPixmap("kylin-sleep-symbolic", 1)), tr("Hibernate"),
this, SLOT(hibernateActionTriggerSlot())); this, SLOT(hibernateActionTriggerSlot()));
} }
reply = iface.call("canSuspend"); 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"), m_showShutMenu.addAction(QIcon(getIconPixmap("kylin-hebernate-symbolic", 1)), tr("Sleep"),
this, SLOT(sleepActionTriggerSlot())); this, SLOT(sleepActionTriggerSlot()));
} }
@ -293,21 +329,21 @@ int RightClickMenu::showShutdownMenu(const QPoint &pos, const bool &isFullWind)
this, SLOT(lockScreenActionTriggerSlot())); this, SLOT(lockScreenActionTriggerSlot()));
reply = iface.call("canLogout"); 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"), m_showShutMenu.addAction(QIcon(getIconPixmap("system-logout-symbolic", 1)), tr("Log Out"),
this, SLOT(logoutActionTriggerSlot())); this, SLOT(logoutActionTriggerSlot()));
} }
reply = iface.call("canReboot"); 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"), m_showShutMenu.addAction(QIcon(getIconPixmap("system-restart-symbolic", 1)), tr("Restart"),
this, SLOT(rebootActionTriggerSlot())); this, SLOT(rebootActionTriggerSlot()));
} }
reply = iface.call("canPowerOff"); 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"), m_showShutMenu.addAction(QIcon(getIconPixmap("exit-symbolic", 1)), tr("Power Off"),
this, SLOT(shutdownActionTriggerSlot())); this, SLOT(shutdownActionTriggerSlot()));
} }

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef RIGHTCLICKMENU_H #ifndef RIGHTCLICKMENU_H
@ -78,7 +77,6 @@ private:
int m_actionNumber; int m_actionNumber;
QProcess *m_cmdProc = nullptr; QProcess *m_cmdProc = nullptr;
UkuiMenuInterface *m_ukuiMenuInterface = nullptr; UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
QStringList m_whiteList; QStringList m_whiteList;
protected: protected:
@ -92,6 +90,10 @@ protected:
*/ */
QPixmap getIconPixmap(QString iconstr, int type); QPixmap getIconPixmap(QString iconstr, int type);
bool hasMultipleUsers();
bool canSwitch();
private Q_SLOTS: private Q_SLOTS:
/** /**
* @brief Fixed to all software * @brief Fixed to all software

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "tabletrightclickmenu.h" #include "tabletrightclickmenu.h"
@ -119,7 +118,7 @@ void TabletRightClickMenu::unfixedFromAllActionTriggerSlot()
QString desktopfn = fileInfo.fileName(); QString desktopfn = fileInfo.fileName();
m_setting->beginGroup("lockapplication"); 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()) { if (m_setting->value(desktop).toInt() > m_setting->value(desktopfn).toInt()) {
m_setting->setValue(desktop, m_setting->value(desktop).toInt() - 1); m_setting->setValue(desktop, m_setting->value(desktop).toInt() - 1);
} }

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef TABLETRIGHTCLICKMENU_H #ifndef TABLETRIGHTCLICKMENU_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "full_item_delegate.h" #include "full_item_delegate.h"
@ -24,12 +23,15 @@ FullItemDelegate::FullItemDelegate(QObject *parent, int module):
KItemDelegate(parent) KItemDelegate(parent)
{ {
this->module = module; this->module = module;
pUkuiMenuInterface = new UkuiMenuInterface; m_ukuiMenuInterface = new UkuiMenuInterface;
} }
FullItemDelegate::~FullItemDelegate() 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 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->save();
painter->setOpacity(1); painter->setOpacity(1);
QString desktopfp = index.data(Qt::DisplayRole).value<QString>(); QString desktopfp = index.data(Qt::DisplayRole).value<QString>();
QString iconstr = pUkuiMenuInterface->getAppIcon(desktopfp); QString iconstr = m_ukuiMenuInterface->getAppIcon(desktopfp);
QIcon icon; QIcon icon;
QFileInfo iconFileInfo(iconstr); 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 iconRect;
QRect textRect; QRect textRect;
iconRect = QRect(rect.x() + (rect.width() - Style::AppListIconSize) / 2, iconRect = QRect(rect.x() + (rect.width() - Style::m_appListIconSize) / 2,
rect.y() + 20, rect.y() + Style::m_appTopSpace,
Style::AppListIconSize, Style::m_appListIconSize,
Style::AppListIconSize); Style::m_appListIconSize);
icon.paint(painter, iconRect); icon.paint(painter, iconRect);
painter->restore(); painter->restore();
painter->save(); painter->save();
@ -140,9 +142,9 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
painter->restore(); painter->restore();
textRect = QRect(rect.x() + 5, textRect = QRect(rect.x() + 5,
iconRect.bottom() + Style::AppSpaceBetweenIconText, iconRect.bottom() + Style::m_appSpaceBetweenIconText,
rect.width() - 10, rect.width() - 10,
rect.height() - iconRect.height() - Style::AppSpaceBetweenIconText); Style::m_appTextRectHeight);
painter->save(); painter->save();
//添加最近安装蓝色标签 //添加最近安装蓝色标签
bool is_recentapp = false; bool is_recentapp = false;
@ -153,9 +155,9 @@ void FullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
is_recentapp = true; is_recentapp = true;
appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 23, Qt::TextShowMnemonic); appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 23, Qt::TextShowMnemonic);
textRect = QRect(rect.x() + 18, textRect = QRect(rect.x() + 18,
iconRect.bottom() + Style::AppSpaceBetweenIconText, iconRect.bottom() + Style::m_appSpaceBetweenIconText,
rect.width() - 23, rect.width() - 23,
rect.height() - iconRect.height() - Style::AppSpaceBetweenIconText); Style::m_appTextRectHeight);
painter->setPen(QPen(Qt::NoPen)); painter->setPen(QPen(Qt::NoPen));
painter->setBrush(QColor("#4d94ff")); painter->setBrush(QColor("#4d94ff"));
int x = 0; 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 QSize FullItemDelegate::sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const
{ {
return QSize(Style::AppListItemSizeWidth, Style::AppListItemSizeWidth); return QSize(Style::m_appListItemSizeWidth, Style::m_appListItemSizeWidth);
} }

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef FULLITEMDELEGATE_H #ifndef FULLITEMDELEGATE_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "itemdelegate.h" #include "itemdelegate.h"
@ -26,12 +25,15 @@ ItemDelegate::ItemDelegate(QObject *parent, int module):
KItemDelegate(parent) KItemDelegate(parent)
{ {
this->module = module; this->module = module;
pUkuiMenuInterface = new UkuiMenuInterface; m_ukuiMenuInterface = new UkuiMenuInterface;
} }
ItemDelegate::~ItemDelegate() 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 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 (module > 0) {
if (strlist.at(1).toInt() == 1) { if (strlist.at(1).toInt() == 1) {
QRect iconRect = QRect(rect.x() + 11, rect.y() + (rect.height() - 32) / 2, 32, 32); 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; QIcon icon;
QFileInfo iconFileInfo(iconstr); QFileInfo iconFileInfo(iconstr);
@ -130,7 +132,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
painter->save(); painter->save();
icon.paint(painter, iconRect, Qt::AlignCenter); 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(); QFontMetrics fm = painter->fontMetrics();
QString appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 62, Qt::TextShowMnemonic); QString appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 62, Qt::TextShowMnemonic);
painter->drawText(QRect(iconRect.right() + 15, rect.y(), 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) { if (option.state & QStyle::State_MouseOver) {
QToolTip::showText(QCursor::pos(), appname); QToolTip::showText(QCursor::pos(), appname);
} else { } 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 { } else {
QToolTip::hideText(); QToolTip::hideText();
@ -227,6 +229,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
icon.paint(painter, iconRect, Qt::AlignCenter); icon.paint(painter, iconRect, Qt::AlignCenter);
QString appname = strlist.at(1); QString appname = strlist.at(1);
QString url = QUrl(strlist.at(0)).path().remove(appname);
painter->setOpacity(1); painter->setOpacity(1);
painter->save(); painter->save();
painter->setPen(QPen(option.palette.text().color())); painter->setPen(QPen(option.palette.text().color()));
@ -239,21 +242,21 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
painter->restore(); painter->restore();
if ((option.state & QStyle::State_MouseOver) || (option.state & QStyle::State_HasFocus)) { if ((option.state & QStyle::State_MouseOver) || (option.state & QStyle::State_HasFocus)) {
QToolTip::showText(QCursor::pos(), "为了刷新");
int len = fm.boundingRect(appname).width(); int len = fm.boundingRect(appname).width();
//富文本,tooltip可自动换行
QString tipString = QString("<font>");
if (len > rect.width() - 64) { if (len > rect.width() - 64) {
if (option.state & QStyle::State_MouseOver) { tipString += appname +"<br>"+ tr("path:") + url;
QToolTip::showText(QCursor::pos(), appname);
} else { } else {
QToolTip::showText(option.widget->mapToGlobal(QPoint(rect.bottomRight().x(), rect.center().y())), appname); tipString += tr("path:") + url;
}
} else {
QToolTip::hideText();
} }
tipString += QString("</font>");
QToolTip::showText(option.widget->mapToGlobal(QPoint(rect.right() + 20, rect.center().y())), tipString);
} }
} else { } else {
QRect iconRect = QRect(rect.left() + 11, rect.y() + (rect.height() - 32) / 2, 32, 32); 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; QIcon icon;
QFileInfo iconFileInfo(iconstr); QFileInfo iconFileInfo(iconstr);
@ -296,7 +299,7 @@ void ItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option,
} }
icon.paint(painter, iconRect, Qt::AlignCenter); 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)); QFileInfo fileInfo(strlist.at(0));
QString desktopfn = fileInfo.fileName(); QString desktopfn = fileInfo.fileName();

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef ITEMDELEGATE_H #ifndef ITEMDELEGATE_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "kitemdelegate.h" #include "kitemdelegate.h"
KItemDelegate::KItemDelegate(QObject *parent): KItemDelegate::KItemDelegate(QObject *parent):
QStyledItemDelegate(parent) QStyledItemDelegate(parent)
{ {
} }
KItemDelegate::~KItemDelegate()
{
}

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef KITEMDELEGATE_H #ifndef KITEMDELEGATE_H
#define KITEMDELEGATE_H #define KITEMDELEGATE_H
#include <QStyledItemDelegate> #include <QStyledItemDelegate>
@ -8,9 +25,10 @@ class KItemDelegate : public QStyledItemDelegate
Q_OBJECT Q_OBJECT
public: public:
KItemDelegate(QObject *parent); KItemDelegate(QObject *parent);
~KItemDelegate();
int module = 0; int module = 0;
UkuiMenuInterface *pUkuiMenuInterface = nullptr; UkuiMenuInterface *m_ukuiMenuInterface = nullptr;
}; };
#endif // KITEMDELEGATE_H #endif // KITEMDELEGATE_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "recent_item_delegate.h" #include "recent_item_delegate.h"
recentitemdelegate::recentitemdelegate(QObject *parent, int module): RecentItemDelegate::RecentItemDelegate(QObject *parent, int module):
KItemDelegate(parent) KItemDelegate(parent)
{ {
this->module = module; 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()) { if (index.isValid()) {
// QStyleOptionViewItem viewOption(option);//用来在视图中画一个item // QStyleOptionViewItem viewOption(option);//用来在视图中画一个item
@ -130,7 +150,7 @@ void recentitemdelegate::paint(QPainter *painter, const QStyleOptionViewItem &op
} }
} else { } else {
QRect iconRect = QRect(rect.left() + 11, rect.y() + (rect.height() - 32) / 2, 32, 32); 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; QIcon icon;
QFileInfo iconFileInfo(iconstr); QFileInfo iconFileInfo(iconstr);
@ -173,7 +193,7 @@ void recentitemdelegate::paint(QPainter *painter, const QStyleOptionViewItem &op
} }
icon.paint(painter, iconRect, Qt::AlignCenter); 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)); QFileInfo fileInfo(strlist.at(0));
QString desktopfn = fileInfo.fileName(); 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(); // QStringList strlist=index.model()->data(index,Qt::DisplayRole).toStringList();
// if(strlist.at(1).toInt()==1) // if(strlist.at(1).toInt()==1)

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef RECENTITEMDELEGATE_H #ifndef RECENTITEMDELEGATE_H
#define RECENTITEMDELEGATE_H #define RECENTITEMDELEGATE_H
#include "itemdelegate.h" #include "itemdelegate.h"
@ -8,15 +25,15 @@
#include "src/UtilityFunction/utility.h" #include "src/UtilityFunction/utility.h"
#include "kitemdelegate.h" #include "kitemdelegate.h"
class recentitemdelegate : public KItemDelegate class RecentItemDelegate : public KItemDelegate
{ {
Q_OBJECT Q_OBJECT
public: public:
/** /**
* @param module为0时为常用模块123 * @param module为0时为常用模块123
*/ */
recentitemdelegate(QObject *parent, int module); RecentItemDelegate(QObject *parent, int module);
~recentitemdelegate(); ~RecentItemDelegate();
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const; void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const;
QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const; QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
}; };

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "right_item_delegate.h" #include "right_item_delegate.h"
#include "utility.h" #include "utility.h"
#include <QDebug> #include <QDebug>
@ -5,12 +22,15 @@
RightItemDelegate::RightItemDelegate(QObject *parent): RightItemDelegate::RightItemDelegate(QObject *parent):
KItemDelegate(parent) KItemDelegate(parent)
{ {
pUkuiMenuInterface = new UkuiMenuInterface; m_ukuiMenuInterface = new UkuiMenuInterface;
} }
RightItemDelegate::~RightItemDelegate() 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 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->save();
painter->setOpacity(1); painter->setOpacity(1);
QString desktopfp = index.data(Qt::DisplayRole).value<QString>(); QString desktopfp = index.data(Qt::DisplayRole).value<QString>();
QString iconstr = pUkuiMenuInterface->getAppIcon(desktopfp); QString iconstr = m_ukuiMenuInterface->getAppIcon(desktopfp);
QIcon icon; QIcon icon;
QFileInfo iconFileInfo(iconstr); 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 iconRect;
QRect textRect; QRect textRect;
iconRect = QRect(rect.x() + 28, iconRect = QRect(rect.x() + 28,
@ -139,9 +159,9 @@ void RightItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opt
is_recentapp = true; is_recentapp = true;
appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 23, Qt::TextShowMnemonic); appnameElidedText = fm.elidedText(appname, Qt::ElideRight, rect.width() - 23, Qt::TextShowMnemonic);
textRect = QRect(rect.x() + 18, textRect = QRect(rect.x() + 18,
iconRect.bottom() + Style::AppSpaceBetweenIconText, iconRect.bottom() + Style::m_appSpaceBetweenIconText,
rect.width() - 23, rect.width() - 23,
rect.height() - iconRect.height() - Style::AppSpaceBetweenIconText); rect.height() - iconRect.height() - Style::m_appSpaceBetweenIconText);
painter->setPen(QPen(Qt::NoPen)); painter->setPen(QPen(Qt::NoPen));
painter->setBrush(QColor("#4d94ff")); painter->setBrush(QColor("#4d94ff"));
int x = 0; int x = 0;

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef RIGHTITEMDELEGATE_H #ifndef RIGHTITEMDELEGATE_H
#define RIGHTITEMDELEGATE_H #define RIGHTITEMDELEGATE_H
#include <QStyledItemDelegate> #include <QStyledItemDelegate>

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "tablet_full_itemdelegate.h" #include "tablet_full_itemdelegate.h"
@ -112,14 +111,14 @@ void TabletFullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem
} }
bool bigIcon = index.data(Qt::UserRole + 2).toBool(); bool bigIcon = index.data(Qt::UserRole + 2).toBool();
int iconTopSpace = (rect.height() - Style::AppListIconSize) / 2; int iconTopSpace = (rect.height() - Style::m_appListIconSize) / 2;
int iconLeftSpace = (rect.width() - Style::AppListIconSize) / 2; int iconLeftSpace = (rect.width() - Style::m_appListIconSize) / 2;
if (bigIcon) { if (bigIcon) {
iconRect = QRect(rect.x() + iconLeftSpace - 6, iconRect = QRect(rect.x() + iconLeftSpace - 6,
rect.y() + iconTopSpace - 6, rect.y() + iconTopSpace - 6,
Style::AppListIconSize + 12, Style::m_appListIconSize + 12,
Style::AppListIconSize + 12); Style::m_appListIconSize + 12);
textRect = QRect(rect.x(), textRect = QRect(rect.x(),
rect.bottom() - iconTopSpace, rect.bottom() - iconTopSpace,
rect.width(), rect.width(),
@ -127,8 +126,8 @@ void TabletFullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem
} else { } else {
iconRect = QRect(rect.x() + iconLeftSpace, iconRect = QRect(rect.x() + iconLeftSpace,
rect.y() + iconTopSpace, rect.y() + iconTopSpace,
Style::AppListIconSize, Style::m_appListIconSize,
Style::AppListIconSize); Style::m_appListIconSize);
textRect = QRect(rect.x(), textRect = QRect(rect.x(),
rect.bottom() - iconTopSpace, rect.bottom() - iconTopSpace,
rect.width(), rect.width(),
@ -165,10 +164,10 @@ void TabletFullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem
QPixmap pixmap; QPixmap pixmap;
if (bigIcon) { if (bigIcon) {
pixmap = icon.pixmap((Style::AppListBigIconSize, Style::AppListBigIconSize), QIcon::Disabled, QIcon::Off); //wgx pixmap = icon.pixmap((Style::m_appListBigIconSize, Style::m_appListBigIconSize), QIcon::Disabled, QIcon::Off); //wgx
pixmap = pixmap.scaled(Style::AppListBigIconSize, Style::AppListBigIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); pixmap = pixmap.scaled(Style::m_appListBigIconSize, Style::m_appListBigIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
} else { } 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); icon = QIcon(pixmap);
@ -176,10 +175,10 @@ void TabletFullItemDelegate::paint(QPainter *painter, const QStyleOptionViewItem
QPixmap mPixmap; QPixmap mPixmap;
if (bigIcon) { if (bigIcon) {
mPixmap = icon.pixmap((Style::AppListBigIconSize, Style::AppListBigIconSize)); //wgx mPixmap = icon.pixmap((Style::m_appListBigIconSize, Style::m_appListBigIconSize)); //wgx
mPixmap = mPixmap.scaled(Style::AppListBigIconSize, Style::AppListBigIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation); mPixmap = mPixmap.scaled(Style::m_appListBigIconSize, Style::m_appListBigIconSize, Qt::IgnoreAspectRatio, Qt::SmoothTransformation);
} else { } else {
mPixmap = icon.pixmap((Style::AppListIconSize, Style::AppListIconSize)); //wgx mPixmap = icon.pixmap((Style::m_appListIconSize, Style::m_appListIconSize)); //wgx
} }
icon = QIcon(mPixmap); icon = QIcon(mPixmap);
@ -209,6 +208,6 @@ QSize TabletFullItemDelegate::sizeHint(const QStyleOptionViewItem &option, const
// { // {
// return QSize(0,0); // return QSize(0,0);
// } // }
return QSize(Style::TabletItemSizeWidthFirst, Style::AppListItemSizeHeight); return QSize(Style::m_tabletItemSizeWidthFirst, Style::m_appListItemSizeHeight);
} }

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef TABLETITEMDELEGATE_H #ifndef TABLETITEMDELEGATE_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "animationpage.h" #include "animationpage.h"
#include "utility.h" #include "utility.h"
#include <QPainter> #include <QPainter>

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef ANIMATIONPAGE_H #ifndef ANIMATIONPAGE_H
#define ANIMATIONPAGE_H #define ANIMATIONPAGE_H
#include <QLabel> #include <QLabel>

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "full_commonuse_widget.h" #include "full_commonuse_widget.h"
@ -31,7 +30,10 @@ FullCommonUseWidget::FullCommonUseWidget(QWidget *parent) :
FullCommonUseWidget::~FullCommonUseWidget() FullCommonUseWidget::~FullCommonUseWidget()
{ {
if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface; delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
} }
void FullCommonUseWidget::initUi() void FullCommonUseWidget::initUi()
@ -48,11 +50,11 @@ void FullCommonUseWidget::initUi()
m_scrollArea = new ScrollArea(); m_scrollArea = new ScrollArea();
m_scrollAreaWid = new ScrollAreaWid(this); m_scrollAreaWid = new ScrollAreaWid(this);
m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground); 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->setWidget(m_scrollAreaWid);
m_scrollArea->setAlignment(Qt::AlignCenter);
m_scrollArea->setStyleSheet("QWidget{background:transparent;}"); m_scrollArea->setStyleSheet("QWidget{background:transparent;}");
m_scrollArea->setWidgetResizable(true); m_scrollArea->setWidgetResizable(true);
m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_scrollAreaWidLayout = new QVBoxLayout(m_scrollAreaWid); m_scrollAreaWidLayout = new QVBoxLayout(m_scrollAreaWid);
m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0); m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0);
m_scrollAreaWidLayout->setSpacing(10); m_scrollAreaWidLayout->setSpacing(10);
@ -146,9 +148,9 @@ void FullCommonUseWidget::initAppListWidget()
m_listView = new FullListView(this, 0); m_listView = new FullListView(this, 0);
m_listView->installEventFilter(this); m_listView->installEventFilter(this);
m_scrollAreaWidLayout->addWidget(m_listView); m_scrollAreaWidLayout->addWidget(m_listView);
m_listView->setFixedWidth(m_scrollArea->width()); m_listView->setFixedWidth(m_scrollAreaWid->width());
connect(m_listView, &FullListView::sendItemClickedSignal, this, &FullCommonUseWidget::execApplication);
connect(m_listView, &FullListView::sendUpdateAppListSignal, this, &FullCommonUseWidget::updateListViewSlot); 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::sendHideMainWindowSignal, this, &FullCommonUseWidget::sendHideMainWindowSignal);
connect(m_listView, &FullListView::sendSetslidebar, this, &FullCommonUseWidget::onSetSlider); connect(m_listView, &FullListView::sendSetslidebar, this, &FullCommonUseWidget::onSetSlider);
} }
@ -176,7 +178,7 @@ void FullCommonUseWidget::fillAppList()
{ {
m_data.clear(); m_data.clear();
Q_FOREACH (QString desktopfp, UkuiMenuInterface::allAppVector) { Q_FOREACH(QString desktopfp, UkuiMenuInterface::allAppVector) {
m_data.append(desktopfp); m_data.append(desktopfp);
} }
@ -184,15 +186,6 @@ void FullCommonUseWidget::fillAppList()
resizeScrollAreaControls(); resizeScrollAreaControls();
} }
/**
*
*/
void FullCommonUseWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
}
void FullCommonUseWidget::selectFirstItem() void FullCommonUseWidget::selectFirstItem()
{ {
m_listView->setCurrentIndex(m_listView->model()->index(0, 0)); m_listView->setCurrentIndex(m_listView->model()->index(0, 0));
@ -268,7 +261,7 @@ void FullCommonUseWidget::updateListView()
{ {
m_data.clear(); m_data.clear();
Q_FOREACH (QString desktopfp, m_ukuiMenuInterface->getAllClassification()) { Q_FOREACH(QString desktopfp, m_ukuiMenuInterface->getAllClassification()) {
m_data.append(desktopfp); m_data.append(desktopfp);
} }
@ -281,7 +274,7 @@ void FullCommonUseWidget::updateListView()
void FullCommonUseWidget::repaintWidget() 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_scrollAreaWidLayout->removeWidget(m_listView);
m_listView->setParent(nullptr); m_listView->setParent(nullptr);
delete m_listView; delete m_listView;

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef FULLCOMMONUSEWIDGET_H #ifndef FULLCOMMONUSEWIDGET_H
@ -102,11 +101,6 @@ protected:
bool eventFilter(QObject *watched, QEvent *event); bool eventFilter(QObject *watched, QEvent *event);
public Q_SLOTS: public Q_SLOTS:
/**
* @brief Open the application
* @param arg: Desktop file path
*/
void execApplication(QString desktopfp);
/** /**
* @brief Update the application list slot function * @brief Update the application list slot function
*/ */
@ -134,6 +128,7 @@ Q_SIGNALS:
void changeScrollValue(int value, int maximumValue); void changeScrollValue(int value, int maximumValue);
void setFocusToSideWin(); void setFocusToSideWin();
void sendUpdateOtherView(); void sendUpdateOtherView();
void sendCollectViewUpdate();
}; };
#endif // FULLCOMMONUSEWIDGET_H #endif // FULLCOMMONUSEWIDGET_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "full_function_widget.h" #include "full_function_widget.h"
@ -32,7 +31,10 @@ FullFunctionWidget::FullFunctionWidget(QWidget *parent) :
FullFunctionWidget::~FullFunctionWidget() FullFunctionWidget::~FullFunctionWidget()
{ {
if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface; delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
} }
void FullFunctionWidget::initUi() void FullFunctionWidget::initUi()
@ -45,7 +47,7 @@ void FullFunctionWidget::initUi()
m_iconListWid = new QWidget(this); m_iconListWid = new QWidget(this);
m_iconListWid->setAttribute(Qt::WA_TranslucentBackground); m_iconListWid->setAttribute(Qt::WA_TranslucentBackground);
m_iconListWid->setAutoFillBackground(false); 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_iconListWid->setFixedSize(Style::m_leftWidWidth, Style::m_applistWidHeight);
m_verticalScrollBar = new QScrollBar(m_scrollArea); m_verticalScrollBar = new QScrollBar(m_scrollArea);
m_verticalScrollBar->installEventFilter(this); m_verticalScrollBar->installEventFilter(this);
@ -111,15 +113,15 @@ void FullFunctionWidget::initAppListWidget()
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
m_applistWid->setLayout(layout); m_applistWid->setLayout(layout);
m_scrollArea = new ScrollArea; m_scrollArea = new ScrollArea;
m_scrollArea->setStyleSheet("background:transparent");
m_scrollAreaWid = new ScrollAreaWid(this); m_scrollAreaWid = new ScrollAreaWid(this);
m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground); m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground);
m_scrollArea->setFixedSize(m_applistWid->width(), m_applistWid->height()); m_scrollArea->setFixedSize(m_applistWid->width(), m_applistWid->height());
m_scrollAreaWid->adjustSize();
m_scrollArea->setWidget(m_scrollAreaWid); m_scrollArea->setWidget(m_scrollAreaWid);
m_scrollArea->setWidgetResizable(true); m_scrollArea->setWidgetResizable(true);
m_scrollAreaWidLayout = new QVBoxLayout(m_scrollAreaWid); m_scrollAreaWidLayout = new QVBoxLayout(m_scrollAreaWid);
m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0); m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0);
m_scrollAreaWidLayout->setSpacing(10); m_scrollAreaWidLayout->setSpacing(0);
layout->addWidget(m_scrollArea); layout->addWidget(m_scrollArea);
connect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged, connect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged,
this, &FullFunctionWidget::valueChangedSlot); this, &FullFunctionWidget::valueChangedSlot);
@ -183,7 +185,7 @@ void FullFunctionWidget::fillAppList()
void FullFunctionWidget::insertClassificationBtn(QString category) 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->setAttribute(Qt::WA_TranslucentBackground);
classificationbtn->setAutoFillBackground(false); classificationbtn->setAutoFillBackground(false);
m_scrollAreaWidLayout->addWidget(classificationbtn); m_scrollAreaWidLayout->addWidget(classificationbtn);
@ -208,18 +210,9 @@ void FullFunctionWidget::insertAppList(QStringList desktopfplist)
} }
listview->addData(m_data); listview->addData(m_data);
connect(listview, &FullListView::sendItemClickedSignal, this, &FullFunctionWidget::execApplication);
connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullFunctionWidget::sendHideMainWindowSignal); connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullFunctionWidget::sendHideMainWindowSignal);
connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullFunctionWidget::sendUpdateCommonView); connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullFunctionWidget::sendUpdateCommonView);
} connect(listview, &FullListView::sendCollectViewUpdate, this, &FullFunctionWidget::sendCollectViewUpdate);
/**
*
*/
void FullFunctionWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
} }
void FullFunctionWidget::on_setAreaScrollBarValue(int value) void FullFunctionWidget::on_setAreaScrollBarValue(int value)
@ -249,7 +242,7 @@ void FullFunctionWidget::updateAppListView()
fillAppList(); fillAppList();
//刷新图标列表界面 //刷新图标列表界面
Q_FOREACH (QAbstractButton *button, m_buttonList) { Q_FOREACH(QAbstractButton *button, m_buttonList) {
m_btnGroup->removeButton(button); m_btnGroup->removeButton(button);
} }
@ -293,12 +286,12 @@ void FullFunctionWidget::resizeScrollAreaControls()
rowcount = listview->model()->rowCount() / dividend; 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; areaHeight += listview->height() + 50;
row++; 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() void FullFunctionWidget::initIconListWidget()
{ {
m_iconListWidLayout = new QVBoxLayout(m_iconListWid); 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_iconListWidLayout->setContentsMargins(45, 0, 0, 0);
m_topSpacerItem = new QSpacerItem(20, 40, QSizePolicy::Fixed, QSizePolicy::Expanding); m_topSpacerItem = new QSpacerItem(20, 40, QSizePolicy::Fixed, QSizePolicy::Expanding);
m_bottomSpacerItem = 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) 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); m_verticalScrollBar->setValue(value);
} }
@ -335,9 +328,9 @@ void FullFunctionWidget::initIconListScrollArea()
for (int i = 0; i < m_classificationList.size(); i++) { for (int i = 0; i < m_classificationList.size(); i++) {
FunctionClassifyButton *iconbtn = new FunctionClassifyButton( FunctionClassifyButton *iconbtn = new FunctionClassifyButton(
Style::LeftBtnWidth, Style::m_leftBtnWidth,
Style::LeftBtnHeight, Style::m_leftBtnHeight,
Style::LeftIconSize, Style::m_leftIconSize,
m_classificationList.at(i), m_classificationList.at(i),
true, true,
true); true);
@ -350,7 +343,7 @@ void FullFunctionWidget::initIconListScrollArea()
m_iconListWidLayout->addItem(m_bottomSpacerItem); m_iconListWidLayout->addItem(m_bottomSpacerItem);
int id = 0; int id = 0;
Q_FOREACH (QAbstractButton *btn, m_buttonList) { Q_FOREACH(QAbstractButton *btn, m_buttonList) {
m_btnGroup->addButton(btn, id++); m_btnGroup->addButton(btn, id++);
} }
@ -367,7 +360,7 @@ void FullFunctionWidget::btnGroupClickedSlot(QAbstractButton *btn)
disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged, disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged,
this, &FullFunctionWidget::valueChangedSlot); this, &FullFunctionWidget::valueChangedSlot);
Q_FOREACH (QAbstractButton *button, m_buttonList) { Q_FOREACH(QAbstractButton *button, m_buttonList) {
if (m_btnGroup->id(btn) == m_buttonList.indexOf(button)) { if (m_btnGroup->id(btn) == m_buttonList.indexOf(button)) {
m_beginPos = m_scrollArea->verticalScrollBar()->sliderPosition(); m_beginPos = m_scrollArea->verticalScrollBar()->sliderPosition();
m_endPos = m_scrollAreaWidLayout->itemAt(m_btnGroup->id(btn) * 2)->widget()->y(); m_endPos = m_scrollAreaWidLayout->itemAt(m_btnGroup->id(btn) * 2)->widget()->y();
@ -414,17 +407,22 @@ void FullFunctionWidget::valueChangedSlot(int value)
int index = 0; int index = 0;
while (index <= m_classificationList.count() - 1) { while (index <= m_classificationList.count() - 1) {
int min = m_scrollAreaWidLayout->itemAt(2 * index)->widget()->y(); int min = 0;
int max = 0; int max = 0;
if (index == m_classificationList.count() - 1) { if (index == m_classificationList.count() - 1) {
min = m_scrollAreaWidLayout->itemAt(2 * index - 1)->widget()->geometry().bottom() - Style::m_boundaryOffset;
max = m_scrollAreaWid->height(); max = m_scrollAreaWid->height();
} else if (index == 0) {
min = 0;
max = m_scrollAreaWidLayout->itemAt(2 * index + 1)->widget()->geometry().bottom() - Style::m_boundaryOffset;
} else { } 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) { if (value >= min && value < max) {
Q_FOREACH (QAbstractButton *button, m_buttonList) { Q_FOREACH(QAbstractButton *button, m_buttonList) {
FunctionClassifyButton *fcbutton = qobject_cast<FunctionClassifyButton *>(button); FunctionClassifyButton *fcbutton = qobject_cast<FunctionClassifyButton *>(button);
if (index == m_buttonList.indexOf(button)) { if (index == m_buttonList.indexOf(button)) {
@ -452,9 +450,9 @@ void FullFunctionWidget::enterAnimation()
m_animation->setDuration(200);//动画总时间 m_animation->setDuration(200);//动画总时间
m_animation->setStartValue(QRect(0, 0, m_animation->setStartValue(QRect(0, 0,
0, m_iconListWid->height())); 0, m_iconListWid->height()));
m_animation->setEndValue(QRect(Style::LeftMargin, m_animation->setEndValue(QRect(Style::m_leftMargin,
0, 0,
Style::LeftBtnWidth, Style::m_leftBtnWidth,
m_iconListWid->height())); m_iconListWid->height()));
m_animation->setEasingCurve(QEasingCurve::InQuart); m_animation->setEasingCurve(QEasingCurve::InQuart);
m_animation->start(); m_animation->start();
@ -464,16 +462,16 @@ void FullFunctionWidget::enterAnimation()
void FullFunctionWidget::setFunctionBtnGeometry() void FullFunctionWidget::setFunctionBtnGeometry()
{ {
// int height=m_classificationList.size()*Style::LeftBtnHeight+(m_classificationList.size()-1)*Style::LeftSpaceBetweenItem; // 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, 0,
Style::LeftBtnWidth, Style::m_leftBtnWidth,
m_iconListWid->height())); m_iconListWid->height()));
m_iconListScrollAreaWid->show(); m_iconListScrollAreaWid->show();
} }
void FullFunctionWidget::repaintWidget() 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_iconListWid->setFixedSize(Style::m_leftWidWidth, Style::m_applistWidHeight);
m_scrollArea->setFixedSize(m_applistWid->width(), m_applistWid->height()); m_scrollArea->setFixedSize(m_applistWid->width(), m_applistWid->height());
updateAppListView(); updateAppListView();

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef FULLFUNCTIONWIDGET_H #ifndef FULLFUNCTIONWIDGET_H
@ -142,11 +141,6 @@ protected:
bool eventFilter(QObject *watched, QEvent *event); bool eventFilter(QObject *watched, QEvent *event);
public Q_SLOTS: public Q_SLOTS:
/**
* @brief Open the application
* @param arg: Desktop file path
*/
void execApplication(QString desktopfp);
/** /**
* @brief Respond to button click * @brief Respond to button click
* @param btn: QButtonGroup button * @param btn: QButtonGroup button
@ -197,6 +191,7 @@ Q_SIGNALS:
void sendUpdateCommonView(); void sendUpdateCommonView();
void sendCollectViewUpdate();
}; };
#endif // FULLFUNCTIONWIDGET_H #endif // FULLFUNCTIONWIDGET_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "full_letter_widget.h" #include "full_letter_widget.h"
@ -28,8 +27,14 @@ FullLetterWidget::FullLetterWidget(QWidget *parent) :
FullLetterWidget::~FullLetterWidget() FullLetterWidget::~FullLetterWidget()
{ {
if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface; delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
if (m_letterListBottomSpacer) {
delete m_letterListBottomSpacer; delete m_letterListBottomSpacer;
m_letterListBottomSpacer = nullptr;
}
} }
/** /**
@ -41,7 +46,7 @@ void FullLetterWidget::initUi()
this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
this->setAttribute(Qt::WA_TranslucentBackground); this->setAttribute(Qt::WA_TranslucentBackground);
m_letterListWid = new QWidget(this); 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 = new QScrollBar(m_scrollArea);
m_verticalScrollBar->installEventFilter(this); m_verticalScrollBar->installEventFilter(this);
m_verticalScrollBar->setOrientation(Qt::Vertical); m_verticalScrollBar->setOrientation(Qt::Vertical);
@ -77,15 +82,13 @@ void FullLetterWidget::initAppListWidget()
// layout->setContentsMargins(0,0,0,0); // layout->setContentsMargins(0,0,0,0);
// m_applistWid->setLayout(layout); // m_applistWid->setLayout(layout);
m_scrollArea = new ScrollArea(); m_scrollArea = new ScrollArea();
m_scrollArea->setStyleSheet("background:transparent");
m_scrollAreaWid = new ScrollAreaWid(this); m_scrollAreaWid = new ScrollAreaWid(this);
m_scrollArea->setWidget(m_scrollAreaWid); m_scrollArea->setWidget(m_scrollAreaWid);
m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); m_scrollAreaWid->setFixedWidth(Style::m_applistWidWidth);
m_scrollArea->setWidgetResizable(true); m_scrollArea->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight);
// m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
m_scrollAreaWidLayout = new QVBoxLayout; m_scrollAreaWidLayout = new QVBoxLayout;
m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0); m_scrollAreaWidLayout->setContentsMargins(0, 0, 0, 0);
m_scrollAreaWidLayout->setSpacing(10); m_scrollAreaWidLayout->setSpacing(0);
m_scrollAreaWid->setLayout(m_scrollAreaWidLayout); m_scrollAreaWid->setLayout(m_scrollAreaWidLayout);
m_mainLayout->addWidget(m_scrollArea); m_mainLayout->addWidget(m_scrollArea);
QSpacerItem *m_spaceItem1 = nullptr; QSpacerItem *m_spaceItem1 = nullptr;
@ -189,7 +192,7 @@ void FullLetterWidget::fillAppList()
m_letterList.append(letterstr);//存储分类字符 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); m_scrollAreaWidLayout->addWidget(letterbtn);
//插入应用列表 //插入应用列表
FullListView *listview = new FullListView(this, 1); FullListView *listview = new FullListView(this, 1);
@ -208,24 +211,15 @@ void FullLetterWidget::fillAppList()
} }
listview->addData(m_data); listview->addData(m_data);
connect(listview, &FullListView::sendItemClickedSignal, this, &FullLetterWidget::execApplication);
connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullLetterWidget::sendHideMainWindowSignal); connect(listview, &FullListView::sendHideMainWindowSignal, this, &FullLetterWidget::sendHideMainWindowSignal);
connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullLetterWidget::sendUpdateCommonView); connect(listview, &FullListView::sendUpdateAppListSignal, this, &FullLetterWidget::sendUpdateCommonView);
connect(listview, &FullListView::sendCollectViewUpdate, this, &FullLetterWidget::sendCollectViewUpdate);
} }
} }
resizeScrollAreaControls(); resizeScrollAreaControls();
} }
/**
*
*/
void FullLetterWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
}
void FullLetterWidget::on_setAreaScrollBarValue(int value) void FullLetterWidget::on_setAreaScrollBarValue(int value)
{ {
// m_scrollArea->verticalScrollBar()->setMaximum(maxmumValue); // m_scrollArea->verticalScrollBar()->setMaximum(maxmumValue);
@ -253,7 +247,7 @@ void FullLetterWidget::updateAppListView()
fillAppList(); fillAppList();
//刷新字母列表界面 //刷新字母列表界面
Q_FOREACH (QAbstractButton *button, m_buttonList) { Q_FOREACH(QAbstractButton *button, m_buttonList) {
m_btnGroup->removeButton(button); m_btnGroup->removeButton(button);
} }
@ -277,7 +271,7 @@ void FullLetterWidget::updateAppListView()
void FullLetterWidget::on_setScrollBarValue(int value) 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); m_verticalScrollBar->setValue(value);
} }
@ -304,12 +298,13 @@ void FullLetterWidget::resizeScrollAreaControls()
rowcount = listview->model()->rowCount() / dividend; 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; areaHeight += (listview->height() + 50);
row++; 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, LetterClassifyButton *letterbtn = new LetterClassifyButton(m_letterListWid,
true, true,
m_letterList.at(i)); m_letterList.at(i));
letterbtn->setFixedSize(Style::LeftLetterBtnHeight, Style::LeftLetterBtnHeight); letterbtn->setFixedSize(Style::m_leftLetterBtnHeight, Style::m_leftLetterBtnHeight);
m_buttonList.append(letterbtn); m_buttonList.append(letterbtn);
m_letterListWidLayout->addWidget(letterbtn); m_letterListWidLayout->addWidget(letterbtn);
m_letterListWidLayout->setAlignment(letterbtn, Qt::AlignLeft); m_letterListWidLayout->setAlignment(letterbtn, Qt::AlignLeft);
@ -356,7 +351,7 @@ void FullLetterWidget::initLetterListScrollArea()
m_letterListWidLayout->addItem(m_letterListBottomSpacer); m_letterListWidLayout->addItem(m_letterListBottomSpacer);
int id = 0; int id = 0;
Q_FOREACH (QAbstractButton *btn, m_buttonList) { Q_FOREACH(QAbstractButton *btn, m_buttonList) {
m_btnGroup->addButton(btn, id++); m_btnGroup->addButton(btn, id++);
} }
@ -373,7 +368,7 @@ void FullLetterWidget::btnGroupClickedSlot(QAbstractButton *btn)
disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged, disconnect(m_scrollArea->verticalScrollBar(), &QScrollBar::valueChanged,
this, &FullLetterWidget::valueChangedSlot); this, &FullLetterWidget::valueChangedSlot);
Q_FOREACH (QAbstractButton *button, m_buttonList) { Q_FOREACH(QAbstractButton *button, m_buttonList) {
LetterClassifyButton *letterbtn = qobject_cast<LetterClassifyButton *>(button); LetterClassifyButton *letterbtn = qobject_cast<LetterClassifyButton *>(button);
if (m_btnGroup->id(btn) == m_buttonList.indexOf(button)) { if (m_btnGroup->id(btn) == m_buttonList.indexOf(button)) {
@ -427,17 +422,23 @@ void FullLetterWidget::valueChangedSlot(int value)
int index = 0; int index = 0;
while (index <= m_letterList.count() - 1) { while (index <= m_letterList.count() - 1) {
int min = m_scrollAreaWidLayout->itemAt(2 * index)->widget()->y();
int min = 0;
int max = 0; int max = 0;
if (index == m_letterList.count() - 1) { if (index == m_letterList.count() - 1) {
min = m_scrollAreaWidLayout->itemAt(2 * index - 1)->widget()->geometry().bottom() - Style::m_boundaryOffset;
max = m_scrollAreaWid->height(); max = m_scrollAreaWid->height();
} else if (index == 0) {
min = 0;
max = m_scrollAreaWidLayout->itemAt(2 * index + 1)->widget()->geometry().bottom() - Style::m_boundaryOffset;
} else { } 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) { if (value >= min && value < max) {
Q_FOREACH (QAbstractButton *button, m_buttonList) { Q_FOREACH(QAbstractButton *button, m_buttonList) {
LetterClassifyButton *letterbtn = qobject_cast<LetterClassifyButton *>(button); LetterClassifyButton *letterbtn = qobject_cast<LetterClassifyButton *>(button);
if (index == m_buttonList.indexOf(button)) { if (index == m_buttonList.indexOf(button)) {
@ -457,12 +458,12 @@ void FullLetterWidget::valueChangedSlot(int value)
void FullLetterWidget::enterAnimation() void FullLetterWidget::enterAnimation()
{ {
m_animation->setDuration(200);//动画总时间 m_animation->setDuration(200);//动画总时间
m_animation->setStartValue(QRect(0, (m_letterListWid->height() - (m_letterList.size() + 1)*Style::LeftLetterBtnHeight) / 2, m_animation->setStartValue(QRect(0, (m_letterListWid->height() - (m_letterList.size() + 1)*Style::m_leftLetterBtnHeight) / 2,
0, (m_letterList.size() + 1)*Style::LeftLetterBtnHeight)); 0, (m_letterList.size() + 1)*Style::m_leftLetterBtnHeight));
m_animation->setEndValue(QRect(Style::LeftMargin, m_animation->setEndValue(QRect(Style::m_leftMargin,
(m_letterListWid->height() - (m_letterList.size() + 1)*Style::LeftLetterBtnHeight) / 2, (m_letterListWid->height() - (m_letterList.size() + 1)*Style::m_leftLetterBtnHeight) / 2,
Style::LeftLetterBtnHeight * 2, Style::m_leftLetterBtnHeight * 2,
(m_letterList.size() + 1)*Style::LeftLetterBtnHeight)); (m_letterList.size() + 1)*Style::m_leftLetterBtnHeight));
m_animation->setEasingCurve(QEasingCurve::InQuart); m_animation->setEasingCurve(QEasingCurve::InQuart);
m_animation->start(); m_animation->start();
// m_letterListScrollArea->show(); // m_letterListScrollArea->show();
@ -480,13 +481,14 @@ void FullLetterWidget::setLetterBtnGeometry()
void FullLetterWidget::repaintWidget() void FullLetterWidget::repaintWidget()
{ {
m_letterListWid->setFixedSize(Style::m_leftWidWidth, Style::m_applistWidHeight); 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(); updateAppListView();
} }
void FullLetterWidget::widgetMakeZero() void FullLetterWidget::widgetMakeZero()
{ {
Q_FOREACH (QAbstractButton *button, m_buttonList) { Q_FOREACH(QAbstractButton *button, m_buttonList) {
QString letterstr = button->text().at(0); QString letterstr = button->text().at(0);
int num = m_letterList.indexOf(letterstr); int num = m_letterList.indexOf(letterstr);

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef FULLLETTERWIDGET_H #ifndef FULLLETTERWIDGET_H
@ -147,11 +146,6 @@ public Q_SLOTS:
* @param btn: QButtonGroup button * @param btn: QButtonGroup button
*/ */
void btnGroupClickedSlot(QAbstractButton *btn); void btnGroupClickedSlot(QAbstractButton *btn);
/**
* @brief Open the application
* @param arg: Desktop file path
*/
void execApplication(QString desktopfp);
/** /**
* @brief Update application list slot function * @brief Update application list slot function
*/ */
@ -199,6 +193,8 @@ Q_SIGNALS:
void changeScrollValue(int value, int maximumValue); void changeScrollValue(int value, int maximumValue);
void sendUpdateCommonView(); void sendUpdateCommonView();
void sendCollectViewUpdate();
}; };
#endif // FULLLETTERWIDGET_H #endif // FULLLETTERWIDGET_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "full_searchresult_widget.h" #include "full_searchresult_widget.h"
#include <QHeaderView> #include <QHeaderView>
@ -29,7 +28,10 @@ FullSearchResultWidget::FullSearchResultWidget(QWidget *parent) :
FullSearchResultWidget::~FullSearchResultWidget() FullSearchResultWidget::~FullSearchResultWidget()
{ {
if (m_ukuiMenuInterface) {
delete m_ukuiMenuInterface; delete m_ukuiMenuInterface;
m_ukuiMenuInterface = nullptr;
}
} }
void FullSearchResultWidget::initUi() void FullSearchResultWidget::initUi()
@ -47,7 +49,7 @@ void FullSearchResultWidget::initUi()
m_scrollArea->setStyleSheet("background:transparent"); m_scrollArea->setStyleSheet("background:transparent");
m_scrollAreaWid = new ScrollAreaWid(this); m_scrollAreaWid = new ScrollAreaWid(this);
m_scrollAreaWid->setAttribute(Qt::WA_TranslucentBackground); 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->setWidget(m_scrollAreaWid);
m_scrollArea->setWidgetResizable(true); m_scrollArea->setWidgetResizable(true);
m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff); m_scrollArea->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
@ -136,9 +138,9 @@ void FullSearchResultWidget::initAppListWidget()
m_listView->installEventFilter(this); m_listView->installEventFilter(this);
m_scrollAreaWidLayout->addWidget(m_listView); m_scrollAreaWidLayout->addWidget(m_listView);
m_listView->setFixedWidth(m_scrollArea->width()); 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::sendHideMainWindowSignal, this, &FullSearchResultWidget::sendHideMainWindowSignal);
connect(m_listView, &FullListView::sendSetslidebar, this, &FullSearchResultWidget::onSetSlider); connect(m_listView, &FullListView::sendSetslidebar, this, &FullSearchResultWidget::onSetSlider);
connect(m_listView, &FullListView::sendCollectViewUpdate, this, &FullSearchResultWidget::sendCollectViewUpdate);
} }
void FullSearchResultWidget::fillAppList() void FullSearchResultWidget::fillAppList()
@ -147,20 +149,12 @@ void FullSearchResultWidget::fillAppList()
m_listView->addData(m_data); m_listView->addData(m_data);
resizeScrollAreaControls(); resizeScrollAreaControls();
} }
/**
*
*/
void FullSearchResultWidget::execApplication(QString desktopfp)
{
Q_EMIT sendHideMainWindowSignal();
execApp(desktopfp);
}
void FullSearchResultWidget::updateAppListView(QVector<QStringList> arg) void FullSearchResultWidget::updateAppListView(QVector<QStringList> arg)
{ {
m_data.clear(); m_data.clear();
Q_FOREACH (QStringList appinfo, arg) { Q_FOREACH(QStringList appinfo, arg) {
m_data.append(appinfo.at(0)); m_data.append(appinfo.at(0));
} }
@ -228,7 +222,7 @@ void FullSearchResultWidget::selectFirstItemTab()
void FullSearchResultWidget::repaintWidget() void FullSearchResultWidget::repaintWidget()
{ {
m_scrollArea->setFixedSize(Style::m_applistWidWidth, Style::m_applistWidHeight); m_scrollArea->setFixedSize(Style::m_applistAreaWidth, Style::m_applistWidHeight);
resizeScrollAreaControls(); resizeScrollAreaControls();
m_scrollAreaWidHeight = m_scrollAreaWid->height() + 1; m_scrollAreaWidHeight = m_scrollAreaWid->height() + 1;
initVerticalScrollBar(); initVerticalScrollBar();

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef FULLSEARCHRESULTWIDGET_H #ifndef FULLSEARCHRESULTWIDGET_H
@ -90,11 +89,6 @@ protected:
bool eventFilter(QObject *watched, QEvent *event); bool eventFilter(QObject *watched, QEvent *event);
public Q_SLOTS: public Q_SLOTS:
/**
* @brief Open the application
* @param arg: Desktop file path
*/
void execApplication(QString desktopfp);
void selectFirstItemTab(); void selectFirstItemTab();
@ -114,6 +108,7 @@ Q_SIGNALS:
*/ */
void sendHideMainWindowSignal(); void sendHideMainWindowSignal();
void setFocusToSideWin(); void setFocusToSideWin();
void sendCollectViewUpdate();
}; };
#endif // FULLSEARCHRESULTWIDGET_H #endif // FULLSEARCHRESULTWIDGET_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "function_Widget.h" #include "function_Widget.h"
#include "style.h" #include "style.h"
#include <QVBoxLayout> #include <QVBoxLayout>
@ -6,7 +23,6 @@
#include <QLocale> #include <QLocale>
#include <qwindow.h> #include <qwindow.h>
#include <QDir> #include <QDir>
#include <AbstractInterface.h>
#include <QPluginLoader> #include <QPluginLoader>
#include "currenttime_interface.h" #include "currenttime_interface.h"
#include "style.h" #include "style.h"
@ -210,7 +226,7 @@ void FunctionWidget::initUi()
} }
mainLayout->addWidget(searchEditBtn); mainLayout->addWidget(searchEditBtn);
focusPlug = new pluginwidget(this); focusPlug = new PluginWidget(this);
mainLayout->addWidget(focusPlug); mainLayout->addWidget(focusPlug);
focusPlug->setFixedSize(400, 638); focusPlug->setFixedSize(400, 638);
mainLayout->addStretch(); mainLayout->addStretch();

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef FUNCTIONWIDGET_H #ifndef FUNCTIONWIDGET_H
#define FUNCTIONWIDGET_H #define FUNCTIONWIDGET_H
@ -11,7 +28,6 @@
#include <QDateTime> #include <QDateTime>
#include <QGSettings> #include <QGSettings>
#include <QSettings> #include <QSettings>
#include "AbstractInterface.h"
#include <QGraphicsDropShadowEffect> #include <QGraphicsDropShadowEffect>
#include "plugin_widget.h" #include "plugin_widget.h"
#include "currenttime_interface.h" #include "currenttime_interface.h"
@ -23,7 +39,7 @@ public:
FunctionWidget(QWidget *parent); FunctionWidget(QWidget *parent);
~FunctionWidget(); ~FunctionWidget();
//QWidget* focusPlug=nullptr; //QWidget* focusPlug=nullptr;
pluginwidget *focusPlug = nullptr; PluginWidget *focusPlug = nullptr;
void setDownOpacityEffect(const qreal &num); void setDownOpacityEffect(const qreal &num);
protected: protected:

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "function_button_widget.h" #include "function_button_widget.h"
@ -55,9 +54,9 @@ void FunctionButtonWidget::initUi()
for (int row = 0; row < 6; row++) for (int row = 0; row < 6; row++)
for (int col = 0; col < 2; col++) { for (int col = 0; col < 2; col++) {
FunctionClassifyButton *iconbtn = new FunctionClassifyButton(Style::LeftBtnWidth, FunctionClassifyButton *iconbtn = new FunctionClassifyButton(Style::m_leftBtnWidth,
Style::LeftBtnHeight, Style::m_leftBtnHeight,
Style::LeftIconSize, Style::m_leftIconSize,
m_categoryList.at(row * 2 + col), m_categoryList.at(row * 2 + col),
false, false,
false); false);
@ -73,7 +72,7 @@ void FunctionButtonWidget::initUi()
if (QGSettings::isSchemaInstalled(QString("org.ukui.style").toLocal8Bit())) { if (QGSettings::isSchemaInstalled(QString("org.ukui.style").toLocal8Bit())) {
QGSettings *gsetting = new QGSettings(QString("org.ukui.style").toLocal8Bit()); QGSettings *gsetting = new QGSettings(QString("org.ukui.style").toLocal8Bit());
connect(gsetting, &QGSettings::changed, this, [ = ] { connect(gsetting, &QGSettings::changed, this, [ = ] {
Q_FOREACH (QAbstractButton *btn, m_buttonList) Q_FOREACH(QAbstractButton *btn, m_buttonList)
{ {
FunctionClassifyButton *fbtn = qobject_cast<FunctionClassifyButton *>(btn); FunctionClassifyButton *fbtn = qobject_cast<FunctionClassifyButton *>(btn);
fbtn->updateBtnState(); fbtn->updateBtnState();

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef FUNCTIONBUTTONWIDGET_H #ifndef FUNCTIONBUTTONWIDGET_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "letter_button_widget.h" #include "letter_button_widget.h"

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef LETTERBUTTONWIDGET_H #ifndef LETTERBUTTONWIDGET_H

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "main_view_widget.h" #include "main_view_widget.h"
@ -55,23 +54,12 @@ void MainViewWidget::styleChangeSlot(const QString &style)
void MainViewWidget::paintEvent(QPaintEvent *event) void MainViewWidget::paintEvent(QPaintEvent *event)
{ {
// double transparency = getTransparency(); QRect rect = this->rect().adjusted(5, 5, 0, -5);
QRect rect = this->rect();
QPainterPath path; QPainterPath path;
QPainter painter(this); QPainter painter(this);
path.addRoundedRect(rect, 10, 10);
painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; painter.setRenderHint(QPainter::Antialiasing); // 反锯齿;
painter.setPen(Qt::transparent); 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.setOpacity(0.58);
painter.fillPath(path, m_backColor); painter.fillPath(path, m_backColor);
QWidget::paintEvent(event); QWidget::paintEvent(event);

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef MAINVIEWWIDGET_H #ifndef MAINVIEWWIDGET_H

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "plugin_widget.h" #include "plugin_widget.h"
#include "KySmallPluginInterface.h" #include "KySmallPluginInterface.h"
#include <QDebug> #include <QDebug>
pluginwidget::pluginwidget(QWidget *parent) : QWidget(parent) PluginWidget::PluginWidget(QWidget *parent) : QWidget(parent)
{ {
this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint); this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
this->setAttribute(Qt::WA_StyledBackground, true); this->setAttribute(Qt::WA_StyledBackground, true);
this->setFocusPolicy(Qt::NoFocus); this->setFocusPolicy(Qt::NoFocus);
init(); init();
} }
void pluginwidget::init() void PluginWidget::init()
{ {
QPluginLoader loader("/opt/small-plugin/bin/libsmall-plugin-manage.so"); QPluginLoader loader("/opt/small-plugin/bin/libsmall-plugin-manage.so");
QObject *plugin = loader.instance(); QObject *plugin = loader.instance();

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef PLUGINWIDGET_H #ifndef PLUGINWIDGET_H
#define PLUGINWIDGET_H #define PLUGINWIDGET_H
@ -8,8 +25,6 @@
#include <QVBoxLayout> #include <QVBoxLayout>
#include <QHBoxLayout> #include <QHBoxLayout>
#include <QPluginLoader> #include <QPluginLoader>
#include <AbstractInterface.h>
#include <abstractInterface.h>
#include <QLibrary> #include <QLibrary>
#include <QEvent> #include <QEvent>
#include <QLabel> #include <QLabel>
@ -17,11 +32,11 @@
#include <QSettings> #include <QSettings>
#include <QDBusInterface> #include <QDBusInterface>
#include <QDBusReply> #include <QDBusReply>
class pluginwidget : public QWidget class PluginWidget : public QWidget
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit pluginwidget(QWidget *parent = nullptr); explicit PluginWidget(QWidget *parent = nullptr);
void init(); void init();
}; };

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "splitbar_frame.h" #include "splitbar_frame.h"
@ -45,7 +44,7 @@ void SplitBarFrame::initAppBtn()
layout->setContentsMargins(15, 0, 0, 0); layout->setContentsMargins(15, 0, 0, 0);
layout->setSpacing(6); layout->setSpacing(6);
m_textLabel->setAutoFillBackground(false); m_textLabel->setAutoFillBackground(false);
m_textLabel->setAlignment(Qt::AlignCenter); m_textLabel->setAlignment(Qt::AlignTop);
m_textLabel->setText(m_category); m_textLabel->setText(m_category);
m_textLabel->adjustSize(); m_textLabel->adjustSize();
QPalette pe = m_textLabel->palette(); QPalette pe = m_textLabel->palette();

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef PUSHBUTTON_H #ifndef PUSHBUTTON_H

View File

@ -1,36 +0,0 @@
#include "tabview_widget.h"
#include <QTabBar>
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);
}

View File

@ -1,25 +0,0 @@
#ifndef TABVIEWWIDGET_H
#define TABVIEWWIDGET_H
#include <QTabWidget>
#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

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#include "full_mainwindow.h" #include "full_mainwindow.h"
#include <KWindowEffects> #include <KWindowEffects>
#include <QAction> #include <QAction>
@ -216,11 +233,15 @@ void FullMainWindow::initConnect()
connect(this, &FullMainWindow::sendSetFocusToResult, m_fullResultPage, &FullSearchResultWidget::selectFirstItemTab); connect(this, &FullMainWindow::sendSetFocusToResult, m_fullResultPage, &FullSearchResultWidget::selectFirstItemTab);
// connect(m_fullSelectMenuButton, &QToolButton::clicked, this, &FullMainWindow::on_fullSelectMenuButton_clicked); // connect(m_fullSelectMenuButton, &QToolButton::clicked, this, &FullMainWindow::on_fullSelectMenuButton_clicked);
connect(m_fullCommonPage, &FullCommonUseWidget::sendUpdateOtherView, this, &FullMainWindow::sendUpdateOtherView); 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::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::sendUpdateCommonView, m_fullCommonPage, &FullCommonUseWidget::updateListViewSlot);
connect(m_fullLetterPage, &FullLetterWidget::sendCollectViewUpdate, this, &FullMainWindow::sendCollectViewUpdate);
connect(m_fullCommonPage, &FullCommonUseWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide); connect(m_fullCommonPage, &FullCommonUseWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide);
connect(m_fullFunctionPage, &FullFunctionWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide); connect(m_fullFunctionPage, &FullFunctionWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide);
connect(m_fullLetterPage, &FullLetterWidget::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_fullResultPage, &FullSearchResultWidget::sendHideMainWindowSignal, this, &FullMainWindow::fullWindowHide);
connect(m_dropDownMenu, &MenuBox::triggered, this, &FullMainWindow::on_fullSelectMenuButton_triggered); connect(m_dropDownMenu, &MenuBox::triggered, this, &FullMainWindow::on_fullSelectMenuButton_triggered);
connect(m_dropDownMenu, &MenuBox::sendMainWinActiveSignal, [ = ]() { connect(m_dropDownMenu, &MenuBox::sendMainWinActiveSignal, [ = ]() {
@ -315,7 +336,7 @@ bool FullMainWindow::eventFilter(QObject *watched, QEvent *event)
m_queryText->setParent(nullptr); 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_queryWid->layout()->setAlignment(Qt::AlignVCenter);
m_lineEdit->setTextMargins(26, 0, 0, 0); m_lineEdit->setTextMargins(26, 0, 0, 0);
} }
@ -511,10 +532,15 @@ void FullMainWindow::searchAppSlot(QString arg)
void FullMainWindow::mousePressEvent(QMouseEvent *event) void FullMainWindow::mousePressEvent(QMouseEvent *event)
{ {
resetEditline(); resetEditline();
return QMainWindow::mousePressEvent(event);
}
void FullMainWindow::mouseReleaseEvent(QMouseEvent *event)
{
if (event->button() == Qt::LeftButton) { if (event->button() == Qt::LeftButton) {
this->hide(); this->hide();
} }
return QMainWindow::mousePressEvent(event); return QMainWindow::mouseReleaseEvent(event);
} }
void FullMainWindow::recvSearchResult(QVector<QStringList> arg) void FullMainWindow::recvSearchResult(QVector<QStringList> arg)

View File

@ -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 <https://www.gnu.org/licenses/>.
*/
#ifndef FULLMAINWINDOW_H #ifndef FULLMAINWINDOW_H
#define FULLMAINWINDOW_H #define FULLMAINWINDOW_H
@ -35,6 +52,7 @@ Q_SIGNALS:
void sendSetFocusToLet(); void sendSetFocusToLet();
void sendSetFocusToResult(); void sendSetFocusToResult();
void sendUpdateOtherView(); void sendUpdateOtherView();
void sendCollectViewUpdate();
private Q_SLOTS: private Q_SLOTS:
@ -53,6 +71,7 @@ protected:
bool event(QEvent *event); bool event(QEvent *event);
bool eventFilter(QObject *watched, QEvent *event); bool eventFilter(QObject *watched, QEvent *event);
void mousePressEvent(QMouseEvent *event); void mousePressEvent(QMouseEvent *event);
void mouseReleaseEvent(QMouseEvent *event);
void changeStyle(); void changeStyle();
void initConnect(); void initConnect();
void initTabOrder(); void initTabOrder();

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "mainwindow.h" #include "mainwindow.h"
@ -41,7 +40,7 @@ MainWindow::MainWindow(QWidget *parent) :
Style::initWidStyle(); Style::initWidStyle();
openDataBase("MainThreadDataBase"); openDataBase("MainThreadDataBase");
initDatabase(); initDatabase();
this->resize(Style::minw, Style::minh); this->resize(Style::m_minw, Style::m_minh);
this->setAutoFillBackground(false); this->setAutoFillBackground(false);
m_centralwidget = new QWidget(this); m_centralwidget = new QWidget(this);
m_centerLayout = new QHBoxLayout(m_centralwidget); m_centerLayout = new QHBoxLayout(m_centralwidget);
@ -62,8 +61,6 @@ MainWindow::MainWindow(QWidget *parent) :
m_softwareDbThread = new SoftwareDatabaseUpdateThread; m_softwareDbThread = new SoftwareDatabaseUpdateThread;
m_animationPage = new AnimationPage(); 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_searchAppThread = new SearchAppThread;
m_functionBtnWid = new FunctionButtonWidget(m_minFuncPage); m_functionBtnWid = new FunctionButtonWidget(m_minFuncPage);
m_functionBtnWid->hide(); m_functionBtnWid->hide();
@ -209,13 +206,12 @@ void MainWindow::initSignalConnect()
connect(m_letterBtnWid, &LetterButtonWidget::sendLetterBtnSignal, this, &MainWindow::recvFunctionBtnSignal); connect(m_letterBtnWid, &LetterButtonWidget::sendLetterBtnSignal, this, &MainWindow::recvFunctionBtnSignal);
connect(m_functionBtnWid, &FunctionButtonWidget::sendResetFunctionPage, this, &MainWindow::resetFunctionPage); connect(m_functionBtnWid, &FunctionButtonWidget::sendResetFunctionPage, this, &MainWindow::resetFunctionPage);
connect(m_letterBtnWid, &LetterButtonWidget::sendResetLetterPage, this, &MainWindow::resetLetterPage); 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(m_lineEdit, &QLineEdit::textChanged, this, &MainWindow::searchAppSlot);
connect(this, &MainWindow::sendSearchKeyword, m_searchAppThread, &SearchAppThread::recvSearchKeyword); connect(this, &MainWindow::sendSearchKeyword, m_searchAppThread, &SearchAppThread::recvSearchKeyword);
connect(m_searchAppThread, &SearchAppThread::sendSearchResult, this, &MainWindow::recvSearchResult); connect(m_searchAppThread, &SearchAppThread::sendSearchResult, this, &MainWindow::recvSearchResult);
connect(m_fullWindow, &FullMainWindow::showNormalWindow, this, &MainWindow::showNormalWindowSlot); connect(m_fullWindow, &FullMainWindow::showNormalWindow, this, &MainWindow::showNormalWindowSlot);
connect(m_fullWindow, &FullMainWindow::sendUpdateOtherView, this, &MainWindow::updateMinAllView); 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_minSelectButton, &QToolButton::clicked, this, &MainWindow::on_minSelectButton_clicked);
connect(m_dropDownMenu, &MenuBox::triggered, this, &MainWindow::on_selectMenuButton_triggered); connect(m_dropDownMenu, &MenuBox::triggered, this, &MainWindow::on_selectMenuButton_triggered);
connect(m_dropDownMenu, &MenuBox::sendMainWinActiveSignal, [ = ]() { connect(m_dropDownMenu, &MenuBox::sendMainWinActiveSignal, [ = ]() {
@ -322,7 +318,7 @@ void MainWindow::initSearchUi()
m_selectMenuButton->setAcceptDrops(true); m_selectMenuButton->setAcceptDrops(true);
m_selectMenuButton->setFocusPolicy(Qt::StrongFocus); m_selectMenuButton->setFocusPolicy(Qt::StrongFocus);
m_selectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/downarrow.svg", true) 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_minSearchPage = new QWidget();
m_leftTopSearchHorizontalLayout = new QHBoxLayout(m_minSearchPage); m_leftTopSearchHorizontalLayout = new QHBoxLayout(m_minSearchPage);
@ -349,32 +345,32 @@ void MainWindow::initLeftWidget()
{ {
//左侧列表区 //左侧列表区
m_leftStackedWidget = new QStackedWidget(m_viewWidget); 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 = 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 = 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_minAllListView->setFrameShape(QFrame::NoFrame);
m_leftStackedWidget->addWidget(m_minAllPage); m_leftStackedWidget->addWidget(m_minAllPage);
m_minAllListView->installEventFilter(this); m_minAllListView->installEventFilter(this);
m_minLetterPage = new QWidget(); 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 = 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_minLetterListView->setFrameShape(QFrame::NoFrame);
m_leftStackedWidget->addWidget(m_minLetterPage); m_leftStackedWidget->addWidget(m_minLetterPage);
m_minLetterListView->installEventFilter(this); m_minLetterListView->installEventFilter(this);
m_minFuncPage = new QWidget(); 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 = 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_minFuncListView->setFrameShape(QFrame::NoFrame);
m_leftStackedWidget->addWidget(m_minFuncPage); m_leftStackedWidget->addWidget(m_minFuncPage);
m_minFuncListView->installEventFilter(this); m_minFuncListView->installEventFilter(this);
m_minSearchResultPage = new QWidget(); 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 = 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_minSearchResultListView->installEventFilter(this);
m_leftStackedWidget->addWidget(m_minSearchResultPage); m_leftStackedWidget->addWidget(m_minSearchResultPage);
} }
@ -449,9 +445,9 @@ void MainWindow::initRecentWidget()
//最近视图 //最近视图
m_recentListView = new ListView(m_recentPage); m_recentListView = new ListView(m_recentPage);
m_recentListView->installEventFilter(this); 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 = 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->setAlignment(Qt::AlignCenter);
m_recentTextlabel->setText(QApplication::translate("MainWindow", "No recent files")); m_recentTextlabel->setText(QApplication::translate("MainWindow", "No recent files"));
@ -678,27 +674,29 @@ void MainWindow::paintEvent(QPaintEvent *event)
if ( transparency == 1) { if ( transparency == 1) {
curColor.setAlpha(255); curColor.setAlpha(255);
} }
QRect rect = this->rect(); QRect rect = this->rect().adjusted(5, 5, -5, -5);
QPainterPath path; QPainterPath path;
// rect.setTopLeft(QPoint(rect.x()+320,rect.y()));
QPainter painter(this); QPainter painter(this);
painter.setRenderHint(QPainter::Antialiasing); // 反锯齿; painter.setRenderHint(QPainter::Antialiasing); // 反锯齿;
painter.save();
painter.setPen(Qt::transparent); painter.setPen(Qt::transparent);
qreal radius = 10; path.addRoundedRect(rect, 10, 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.setBrush(curColor); painter.setBrush(curColor);
painter.setPen(Qt::transparent); painter.setPen(Qt::transparent);
painter.setOpacity(transparency); painter.setOpacity(transparency);
painter.drawPath(path); painter.drawPath(path);
painter.restore();
KWindowEffects::enableBlurBehind(this->winId(), true, QRegion(path.toFillPolygon().toPolygon())); 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); QMainWindow::paintEvent(event);
} }
/** /**
@ -772,12 +770,13 @@ void MainWindow::minAnimationFinished()
m_viewWidget->setFocus(); m_viewWidget->setFocus();
// m_collectPushButton->clicked(true); // m_collectPushButton->clicked(true);
on_collectPushButton_clicked(); on_collectPushButton_clicked();
QEventLoop loop;
QTimer::singleShot(100, &loop, SLOT(quit())); QTimer::singleShot(200, [ = ]() {
loop.exec();
m_animationPage->hide(); m_animationPage->hide();
});
} }
void MainWindow::iconAnimationFinished() void MainWindow::iconAnimationFinished()
{ {
m_dropDownMenu->raise(); m_dropDownMenu->raise();
@ -791,11 +790,12 @@ void MainWindow::maxAnimationFinished()
m_fullWindow->showNormal(); m_fullWindow->showNormal();
setMaxWindowPos(); setMaxWindowPos();
m_fullWindow->activateWindow(); m_fullWindow->activateWindow();
QEventLoop loop;
QTimer::singleShot(100, &loop, SLOT(quit())); QTimer::singleShot(200, [ = ]() {
loop.exec();
m_animationPage->hide(); m_animationPage->hide();
});
} }
void MainWindow::resetLetterPage() void MainWindow::resetLetterPage()
{ {
m_minLetterListView->show(); m_minLetterListView->show();
@ -845,12 +845,13 @@ void MainWindow::primaryScreenChangeSlot()
{ {
repaintWidget(); repaintWidget();
} }
void MainWindow::appClassificationBtnClickedSlot() 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_leaveAnimation->setEndValue(QRect(0, 0, 0, 0));
m_enterAnimation->setStartValue(QRect(-40, -40, Style::leftPageWidth + 80, Style::leftPageHeight + 80)); m_enterAnimation->setStartValue(QRect(-40, -40, Style::m_leftPageWidth + 80, Style::m_leftPageHeight + 80));
m_enterAnimation->setEndValue(QRect(10, 0, Style::leftPageWidth - 20, Style::leftPageHeight - 60)); m_enterAnimation->setEndValue(QRect(10, 0, Style::m_leftPageWidth - 20, Style::m_leftPageHeight - 60));
m_leaveAnimation->setDuration(10); m_leaveAnimation->setDuration(10);
m_enterAnimation->setDuration(100); m_enterAnimation->setDuration(100);
@ -948,7 +949,7 @@ bool MainWindow::eventFilter(QObject *target, QEvent *event)
if (target == m_selectMenuButton) { if (target == m_selectMenuButton) {
m_selectMenuButton->setIcon(getCurIcon(":/data/img/mainviewwidget/downarrow.svg", true) 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); selectIconAnimation(true);
} }
} }
@ -1134,7 +1135,7 @@ void MainWindow::recvSearchResult(QVector<QStringList> arg)
m_minSearchResultListView->verticalScrollBar()->setSliderPosition(0); m_minSearchResultListView->verticalScrollBar()->setSliderPosition(0);
m_minSearchResultListView->addData(m_data, 3); m_minSearchResultListView->addData(m_data, 3);
Q_FOREACH (QStringList appinfo, arg) { Q_FOREACH(QStringList appinfo, arg) {
m_data.append(QStringList() << appinfo.at(0) << "1"); m_data.append(QStringList() << appinfo.at(0) << "1");
} }
@ -1152,7 +1153,7 @@ void MainWindow::searchAppSlot(QString arg)
} }
void MainWindow::on_selectMenuButton_triggered(QAction *arg1) 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); selectIconAnimation(false);
if (arg1 == m_allAction) { if (arg1 == m_allAction) {
@ -1270,12 +1271,14 @@ void MainWindow::on_minMaxChangeButton_clicked()
{ {
m_canHide = true; m_canHide = true;
m_isFullScreen = 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)) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) {
m_maxAnimation->setDuration(1); m_maxAnimation->setDuration(1);
} else { } else {
m_animationPage->show(); 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->raise();
m_animationPage->repaint(); m_animationPage->repaint();
m_maxAnimation->setDuration(260); m_maxAnimation->setDuration(260);
@ -1286,12 +1289,13 @@ void MainWindow::on_minMaxChangeButton_clicked()
loop.exec(); loop.exec();
m_maxAnimation->setEasingCurve(QEasingCurve::OutExpo); 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(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->setEndValue(QRect(0, 0, Style::m_availableScreenWidth, Style::m_availableScreenHeight));
m_maxAnimation->start(); m_maxAnimation->start(QAbstractAnimation::DeleteWhenStopped);
this->hide(); this->hide();
} }
void MainWindow::showWindow() void MainWindow::showWindow()
{ {
Style::initWidStyle(); Style::initWidStyle();
@ -1338,27 +1342,27 @@ void MainWindow::setMinWindowPos()
if (position == 0) { if (position == 0) {
if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { 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 { } 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) { } else if (position == 1) {
if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { 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 { } 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) { } else if (position == 2) {
if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { 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 { } 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 { } else {
if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) { 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 { } 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() void MainWindow::repaintWidget()
{ {
Style::initWidStyle(); Style::initWidStyle();
this->setMinimumSize(Style::minw, Style::minh); this->setMinimumSize(Style::m_minw, Style::m_minh);
int x = Style::m_primaryScreenX; int x = Style::m_primaryScreenX;
int y = Style::m_primaryScreenY; int y = Style::m_primaryScreenY;
int width = Style::m_availableScreenWidth; 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; 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)) { if (g_platform.startsWith(QLatin1String("wayland"), Qt::CaseInsensitive)) {
m_minAnimation->setDuration(1); m_minAnimation->setDuration(1);
} else { } else {
@ -1405,9 +1412,9 @@ void MainWindow::showNormalWindowSlot()
m_isFullScreen = false; m_isFullScreen = false;
m_minAnimation->setEasingCurve(QEasingCurve::OutExpo); m_minAnimation->setEasingCurve(QEasingCurve::OutExpo);
m_minAnimation->setStartValue(QRect(0, 0, Style::m_availableScreenWidth, Style::m_availableScreenHeight)); 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(); m_fullWindow->hide();
} }
void MainWindow::on_powerOffButton_clicked() void MainWindow::on_powerOffButton_clicked()

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef MAINWINDOW_H #ifndef MAINWINDOW_H
@ -38,7 +37,6 @@
#include "convert_winid_to_desktop.h" #include "convert_winid_to_desktop.h"
#include "style.h" #include "style.h"
#include "main_view_widget.h" #include "main_view_widget.h"
#include "tabview_widget.h"
#include "dbus.h" #include "dbus.h"
#include "dbus-adaptor.h" #include "dbus-adaptor.h"
#include "software_database_update_thread.h" #include "software_database_update_thread.h"
@ -54,6 +52,7 @@
#include "letter_button_widget.h" #include "letter_button_widget.h"
#include "animationpage.h" #include "animationpage.h"
#include "rotationlabel.h" #include "rotationlabel.h"
#include "rightlistview.h"
#include "ukuistylehelper/ukuistylehelper.h" #include "ukuistylehelper/ukuistylehelper.h"
#include "windowmanager/windowmanager.h" #include "windowmanager/windowmanager.h"
@ -144,6 +143,7 @@ public Q_SLOTS:
void iconAnimationFinished(); void iconAnimationFinished();
void changeStyle(); void changeStyle();
void tabletModeChangeSlot(bool flag); void tabletModeChangeSlot(bool flag);
private Q_SLOTS: private Q_SLOTS:
void on_selectMenuButton_triggered(QAction *arg1); void on_selectMenuButton_triggered(QAction *arg1);
@ -236,8 +236,6 @@ private:
DesktopWatcher *m_desktopWatcher = nullptr; DesktopWatcher *m_desktopWatcher = nullptr;
QPropertyAnimation *m_enterAnimation = nullptr; QPropertyAnimation *m_enterAnimation = nullptr;
QPropertyAnimation *m_leaveAnimation = nullptr; QPropertyAnimation *m_leaveAnimation = nullptr;
QPropertyAnimation *m_minAnimation = nullptr;
QPropertyAnimation *m_maxAnimation = nullptr;
QPropertyAnimation *iconAnimation = nullptr; QPropertyAnimation *iconAnimation = nullptr;
int m_widgetState = -1; int m_widgetState = -1;
FunctionButtonWidget *m_functionBtnWid = nullptr; FunctionButtonWidget *m_functionBtnWid = nullptr;

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#include "tabletwindow.h" #include "tabletwindow.h"
@ -69,12 +68,12 @@ void TabletWindow::initSize()
{ {
Style::initWidStyle(); Style::initWidStyle();
this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed); this->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
this->setFixedSize(Style::ScreenWidth, Style::ScreenHeight); this->setFixedSize(Style::m_screenWidth, Style::m_screenHeight);
m_leftWidget->setFixedSize(Style::m_leftWidWidth, Style::CenterWindHeight); m_leftWidget->setFixedSize(Style::m_leftWidWidth, Style::m_centerWindHeight);
m_leftWidget->layout()->setContentsMargins(Style::TimeWidgetLeft, Style::TimeWidgetTop, 0, 0); m_leftWidget->layout()->setContentsMargins(Style::m_timeWidgetLeft, Style::m_timeWidgetTop, 0, 0);
m_scrollAreaWid->setFixedHeight(Style::CenterWindHeight); m_scrollAreaWid->setFixedHeight(Style::m_centerWindHeight);
m_scrollArea->setFixedSize(Style::ScreenWidth, Style::CenterWindHeight); m_scrollArea->setFixedSize(Style::m_screenWidth, Style::m_centerWindHeight);
m_buttonWidget->setFixedSize(Style::OtherPageViewWidth, 30); m_buttonWidget->setFixedSize(Style::m_otherPageViewWidth, 30);
} }
void TabletWindow::initUi() void TabletWindow::initUi()
@ -557,15 +556,15 @@ void TabletWindow::insertAppList(QStringList desktopfplist)
m_firstPageLayout->setContentsMargins(0, 0, 0, 0); m_firstPageLayout->setContentsMargins(0, 0, 0, 0);
m_firstPageWidget->setLayout(m_firstPageLayout); m_firstPageWidget->setLayout(m_firstPageLayout);
m_firstPageLayout->addWidget(m_leftWidget); m_firstPageLayout->addWidget(m_leftWidget);
listview->setFixedSize(Style::FirsPageViewWidth, Style::CenterWindHeight); listview->setFixedSize(Style::m_firsPageViewWidth, Style::m_centerWindHeight);
m_firstPageLayout->addWidget(listview); m_firstPageLayout->addWidget(listview);
m_scrollAreaWidLayout->addWidget(m_firstPageWidget); m_scrollAreaWidLayout->addWidget(m_firstPageWidget);
listview->setGridSize(QSize(Style::TabletItemSizeWidthFirst, Style::AppListItemSizeHeight)); listview->setGridSize(QSize(Style::m_tabletItemSizeWidthFirst, Style::m_appListItemSizeHeight));
m_isFirstPage = false; m_isFirstPage = false;
} else { } else {
listview = new TabletListView(this, 1); listview = new TabletListView(this, 1);
listview->setFixedSize(Style::OtherPageViewWidth, Style::CenterWindHeight); listview->setFixedSize(Style::m_otherPageViewWidth, Style::m_centerWindHeight);
listview->setGridSize(QSize(Style::TabletItemSizeWidthOther, Style::AppListItemSizeHeight)); listview->setGridSize(QSize(Style::m_tabletItemSizeWidthOther, Style::m_appListItemSizeHeight));
m_scrollAreaWidLayout->addWidget(listview); m_scrollAreaWidLayout->addWidget(listview);
} }
@ -936,7 +935,7 @@ void TabletWindow::buttonClicked(QAbstractButton *button)
if (!(m_scrollAnimation->state() == QPropertyAnimation::Running)) { if (!(m_scrollAnimation->state() == QPropertyAnimation::Running)) {
int idd = m_buttonGroup->id(button); int idd = m_buttonGroup->id(button);
int preNum = m_curPageNum; int preNum = m_curPageNum;
Style::nowpagenum = idd; Style::m_nowpagenum = idd;
// QDBusReply<bool> res = usrInterface->call("get_current_tabletmode"); // QDBusReply<bool> res = usrInterface->call("get_current_tabletmode");
for (int page = 1; page <= m_pagemanager->getAppPageVector().size(); page++) { for (int page = 1; page <= m_pagemanager->getAppPageVector().size(); page++) {

View File

@ -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 * it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 3, or (at your option) * the Free Software Foundation, either version 3 of the License, or
* any later version. * (at your option) any later version.
* *
* This program is distributed in the hope that it will be useful, * This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of * but WITHOUT ANY WARRANTY; without even the implied warranty of
@ -12,8 +12,7 @@
* GNU General Public License for more details. * GNU General Public License for more details.
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, see <http://www.gnu.org/licenses/&gt;. * along with this program. If not, see <https://www.gnu.org/licenses/>.
*
*/ */
#ifndef TABLETWINDOW_H #ifndef TABLETWINDOW_H

View File

@ -40,7 +40,6 @@ HEADERS += \
$$PWD/Widget/main_view_widget.h \ $$PWD/Widget/main_view_widget.h \
$$PWD/Widget/plugin_widget.h \ $$PWD/Widget/plugin_widget.h \
$$PWD/Widget/splitbar_frame.h \ $$PWD/Widget/splitbar_frame.h \
$$PWD/Widget/tabview_widget.h \
$$PWD/full_mainwindow.h \ $$PWD/full_mainwindow.h \
$$PWD/mainwindow.h \ $$PWD/mainwindow.h \
$$PWD/tabletwindow.h $$PWD/tabletwindow.h
@ -78,7 +77,6 @@ SOURCES += \
$$PWD/Widget/main_view_widget.cpp \ $$PWD/Widget/main_view_widget.cpp \
$$PWD/Widget/plugin_widget.cpp \ $$PWD/Widget/plugin_widget.cpp \
$$PWD/Widget/splitbar_frame.cpp \ $$PWD/Widget/splitbar_frame.cpp \
$$PWD/Widget/tabview_widget.cpp \
$$PWD/full_mainwindow.cpp \ $$PWD/full_mainwindow.cpp \
$$PWD/mainwindow.cpp \ $$PWD/mainwindow.cpp \
$$PWD/tabletwindow.cpp $$PWD/tabletwindow.cpp

View File

@ -1,13 +0,0 @@
#ifndef ABSTRACTINTERFACE_H
#define ABSTRACTINTERFACE_H
#include <QObject>
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

Some files were not shown because too many files have changed in this diff Show More