Merge branch 'main' into 0512-dev
This commit is contained in:
commit
1ad0542fca
|
@ -65,7 +65,7 @@ QVector<SKeyWord> ChineseSegmentation::callSegement(QString str) {
|
||||||
convert(keywordres, vecNeeds);
|
convert(keywordres, vecNeeds);
|
||||||
|
|
||||||
keywordres.clear();
|
keywordres.clear();
|
||||||
keywordres.shrink_to_fit();
|
// keywordres.shrink_to_fit();
|
||||||
|
|
||||||
|
|
||||||
return vecNeeds;
|
return vecNeeds;
|
||||||
|
|
|
@ -19,7 +19,6 @@
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
#include <QtConcurrent>
|
#include <QtConcurrent>
|
||||||
#include <QApplication>
|
|
||||||
#include <QPalette>
|
#include <QPalette>
|
||||||
#include "global-settings.h"
|
#include "global-settings.h"
|
||||||
|
|
||||||
|
@ -83,6 +82,8 @@ GlobalSettings::GlobalSettings(QObject *parent) : QObject(parent) {
|
||||||
qApp->paletteChanged(qApp->palette());
|
qApp->paletteChanged(qApp->palette());
|
||||||
m_cache.remove(FONT_SIZE_KEY);
|
m_cache.remove(FONT_SIZE_KEY);
|
||||||
m_cache.insert(FONT_SIZE_KEY, m_theme_gsettings->get(FONT_SIZE_KEY).toDouble());
|
m_cache.insert(FONT_SIZE_KEY, m_theme_gsettings->get(FONT_SIZE_KEY).toDouble());
|
||||||
|
} else if (key == ICON_THEME_KEY) {
|
||||||
|
qApp->paletteChanged(qApp->palette());
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
m_cache.remove(STYLE_NAME_KEY);
|
m_cache.remove(STYLE_NAME_KEY);
|
||||||
|
|
|
@ -33,6 +33,7 @@
|
||||||
#include <QGSettings/QGSettings>
|
#include <QGSettings/QGSettings>
|
||||||
#include <QDBusConnection>
|
#include <QDBusConnection>
|
||||||
#include <QDBusInterface>
|
#include <QDBusInterface>
|
||||||
|
#include <QApplication>
|
||||||
#include "libsearch_global.h"
|
#include "libsearch_global.h"
|
||||||
|
|
||||||
#define CONTROL_CENTER_PERSONALISE_GSETTINGS_ID "org.ukui.control-center.personalise"
|
#define CONTROL_CENTER_PERSONALISE_GSETTINGS_ID "org.ukui.control-center.personalise"
|
||||||
|
@ -40,6 +41,7 @@
|
||||||
#define THEME_GSETTINGS_ID "org.ukui.style"
|
#define THEME_GSETTINGS_ID "org.ukui.style"
|
||||||
#define STYLE_NAME_KEY "styleName"
|
#define STYLE_NAME_KEY "styleName"
|
||||||
#define FONT_SIZE_KEY "systemFontSize"
|
#define FONT_SIZE_KEY "systemFontSize"
|
||||||
|
#define ICON_THEME_KEY "iconThemeName"
|
||||||
|
|
||||||
#define ENABLE_CREATE_INDEX_ASK_DIALOG "enable_create_index_ask_dialog"
|
#define ENABLE_CREATE_INDEX_ASK_DIALOG "enable_create_index_ask_dialog"
|
||||||
#define WEB_ENGINE "web_engine"
|
#define WEB_ENGINE "web_engine"
|
||||||
|
|
|
@ -11,19 +11,24 @@ namespace Zeeker {
|
||||||
class SearchPluginIface : public PluginInterface
|
class SearchPluginIface : public PluginInterface
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
struct DescriptionInfo
|
||||||
|
{
|
||||||
|
QString key;
|
||||||
|
QString value;
|
||||||
|
};
|
||||||
/**
|
/**
|
||||||
* @brief The resultInfo struct
|
* @brief The ResultInfo struct
|
||||||
*/
|
*/
|
||||||
struct resultInfo
|
struct ResultInfo
|
||||||
{
|
{
|
||||||
QIcon icon;
|
QIcon icon;
|
||||||
QString name;
|
QString name;
|
||||||
QString description;
|
QVector<DescriptionInfo> description;
|
||||||
QMap<QString,QString> actionMap;//action name and action key
|
QMap<QString,QString> actionMap;//action name and action key
|
||||||
};
|
};
|
||||||
virtual ~SearchPluginIface() {}
|
virtual ~SearchPluginIface() {}
|
||||||
virtual QString getPluginName() = 0;
|
virtual QString getPluginName() = 0;
|
||||||
virtual void KeywordSearch(QString keyword,QQueue<resultInfo> *searchResult) = 0;
|
virtual void KeywordSearch(QString keyword,QQueue<ResultInfo> *searchResult) = 0;
|
||||||
virtual void openAction(QString name, QString key) = 0;
|
virtual void openAction(QString name, QString key) = 0;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -22,7 +22,6 @@
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <QApplication>
|
|
||||||
#include "config-file.h"
|
#include "config-file.h"
|
||||||
|
|
||||||
using namespace Zeeker;
|
using namespace Zeeker;
|
||||||
|
|
|
@ -20,12 +20,10 @@
|
||||||
*/
|
*/
|
||||||
#include "highlight-item-delegate.h"
|
#include "highlight-item-delegate.h"
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QApplication>
|
|
||||||
#include <QStyle>
|
#include <QStyle>
|
||||||
#include <QDebug>
|
#include <QDebug>
|
||||||
#include <QTextDocument>
|
#include <QTextDocument>
|
||||||
#include <QAbstractTextDocumentLayout>
|
#include <QAbstractTextDocumentLayout>
|
||||||
#include "global-settings.h"
|
|
||||||
|
|
||||||
using namespace Zeeker;
|
using namespace Zeeker;
|
||||||
HighlightItemDelegate::HighlightItemDelegate(QObject *parent) : QStyledItemDelegate(parent) {
|
HighlightItemDelegate::HighlightItemDelegate(QObject *parent) : QStyledItemDelegate(parent) {
|
||||||
|
|
|
@ -22,6 +22,7 @@
|
||||||
#define HIGHLIGHTITEMDELEGATE_H
|
#define HIGHLIGHTITEMDELEGATE_H
|
||||||
|
|
||||||
#include <QStyledItemDelegate>
|
#include <QStyledItemDelegate>
|
||||||
|
#include "global-settings.h"
|
||||||
|
|
||||||
namespace Zeeker {
|
namespace Zeeker {
|
||||||
class HighlightItemDelegate : public QStyledItemDelegate {
|
class HighlightItemDelegate : public QStyledItemDelegate {
|
||||||
|
|
|
@ -26,7 +26,6 @@
|
||||||
#include <QPainter>
|
#include <QPainter>
|
||||||
#include <QDesktopServices>
|
#include <QDesktopServices>
|
||||||
#include <QUrl>
|
#include <QUrl>
|
||||||
#include <QApplication>
|
|
||||||
|
|
||||||
using namespace Zeeker;
|
using namespace Zeeker;
|
||||||
HomePageItem::HomePageItem(QWidget *parent, const int& type, const QString& path) : QWidget(parent) {
|
HomePageItem::HomePageItem(QWidget *parent, const int& type, const QString& path) : QWidget(parent) {
|
||||||
|
|
|
@ -30,7 +30,6 @@
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
#include <QClipboard>
|
#include <QClipboard>
|
||||||
#include <QApplication>
|
|
||||||
#include <QFileInfo>
|
#include <QFileInfo>
|
||||||
#include <QDateTime>
|
#include <QDateTime>
|
||||||
#include <QDBusMetaType>
|
#include <QDBusMetaType>
|
||||||
|
@ -40,6 +39,7 @@
|
||||||
using namespace Zeeker;
|
using namespace Zeeker;
|
||||||
SearchDetailView::SearchDetailView(QWidget *parent) : QWidget(parent) {
|
SearchDetailView::SearchDetailView(QWidget *parent) : QWidget(parent) {
|
||||||
initUI();
|
initUI();
|
||||||
|
connect(qApp, &QApplication::paletteChanged, this, &SearchDetailView::refreshIcon);
|
||||||
}
|
}
|
||||||
|
|
||||||
SearchDetailView::~SearchDetailView() {
|
SearchDetailView::~SearchDetailView() {
|
||||||
|
@ -200,9 +200,7 @@ void SearchDetailView::setAppWidget(const QString &appname, const QString &path,
|
||||||
m_typeLabel->show();
|
m_typeLabel->show();
|
||||||
m_hLine->show();
|
m_hLine->show();
|
||||||
|
|
||||||
QIcon icon;
|
|
||||||
if(path.isEmpty() || path == "") {
|
if(path.isEmpty() || path == "") {
|
||||||
icon = QIcon(iconpath);
|
|
||||||
m_optionView->setupOptions(m_type, false);
|
m_optionView->setupOptions(m_type, false);
|
||||||
//未安装应用有一个label显示软件描述
|
//未安装应用有一个label显示软件描述
|
||||||
if(description != "" && !description.isEmpty()) {
|
if(description != "" && !description.isEmpty()) {
|
||||||
|
@ -210,17 +208,13 @@ void SearchDetailView::setAppWidget(const QString &appname, const QString &path,
|
||||||
m_contentLabel->show();
|
m_contentLabel->show();
|
||||||
m_contentLabel->setText(QString(tr("Introduction: %1")).arg(description));
|
m_contentLabel->setText(QString(tr("Introduction: %1")).arg(description));
|
||||||
}
|
}
|
||||||
|
setIcon(iconpath, false);
|
||||||
} else {
|
} else {
|
||||||
m_optionView->setupOptions(m_type, true);
|
m_optionView->setupOptions(m_type, true);
|
||||||
if(QIcon::fromTheme(iconpath).isNull()) {
|
setIcon(iconpath, true);
|
||||||
icon = QIcon(":/res/icons/desktop.png");
|
|
||||||
} else {
|
|
||||||
icon = QIcon::fromTheme(iconpath);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
m_optionView->show();
|
m_optionView->show();
|
||||||
|
|
||||||
m_iconLabel->setPixmap(icon.pixmap(icon.actualSize(QSize(96, 96))));
|
|
||||||
QFontMetrics fontMetrics = m_nameLabel->fontMetrics();
|
QFontMetrics fontMetrics = m_nameLabel->fontMetrics();
|
||||||
QString showname = fontMetrics.elidedText(m_name, Qt::ElideRight, 274); //当字体长度超过215时显示为省略号
|
QString showname = fontMetrics.elidedText(m_name, Qt::ElideRight, 274); //当字体长度超过215时显示为省略号
|
||||||
m_nameLabel->setText(showname);
|
m_nameLabel->setText(showname);
|
||||||
|
@ -352,8 +346,7 @@ void SearchDetailView::setupWidget(const int& type, const QString& path) {
|
||||||
case SearchListView::ResType::Content:
|
case SearchListView::ResType::Content:
|
||||||
case SearchListView::ResType::Dir :
|
case SearchListView::ResType::Dir :
|
||||||
case SearchListView::ResType::File : {
|
case SearchListView::ResType::File : {
|
||||||
QIcon icon = FileUtils::getFileIcon(QUrl::fromLocalFile(path).toString());
|
setIcon(path);
|
||||||
m_iconLabel->setPixmap(icon.pixmap(icon.actualSize(QSize(96, 96))));
|
|
||||||
QFontMetrics fontMetrics = m_nameLabel->fontMetrics();
|
QFontMetrics fontMetrics = m_nameLabel->fontMetrics();
|
||||||
QString wholeName = FileUtils::getFileName(path);
|
QString wholeName = FileUtils::getFileName(path);
|
||||||
QString name = fontMetrics.elidedText(wholeName, Qt::ElideRight, 274);
|
QString name = fontMetrics.elidedText(wholeName, Qt::ElideRight, 274);
|
||||||
|
@ -366,8 +359,7 @@ void SearchDetailView::setupWidget(const int& type, const QString& path) {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case SearchListView::ResType::Setting : {
|
case SearchListView::ResType::Setting : {
|
||||||
QIcon icon = FileUtils::getSettingIcon(path, true);
|
setIcon(path);
|
||||||
m_iconLabel->setPixmap(icon.pixmap(icon.actualSize(QSize(96, 96))));
|
|
||||||
QString settingType = path.mid(path.indexOf("/") + 1, path.lastIndexOf("/") - path.indexOf("/") - 1); //配置项所属控制面板插件名
|
QString settingType = path.mid(path.indexOf("/") + 1, path.lastIndexOf("/") - path.indexOf("/") - 1); //配置项所属控制面板插件名
|
||||||
m_nameLabel->setText(settingType);
|
m_nameLabel->setText(settingType);
|
||||||
m_typeLabel->setText(FileUtils::getSettingName(path));
|
m_typeLabel->setText(FileUtils::getSettingName(path));
|
||||||
|
@ -567,6 +559,42 @@ void SearchDetailView::initUI() {
|
||||||
this->clearLayout(); //初始化时隐藏所有控件
|
this->clearLayout(); //初始化时隐藏所有控件
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SearchDetailView::refreshIcon 图标主题变更时,刷新图标的槽函数
|
||||||
|
*/
|
||||||
|
void SearchDetailView::refreshIcon() {
|
||||||
|
this->setIcon(m_iconPath);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @brief SearchDetailView::setIcon 设置图标区域
|
||||||
|
* @param path 图标路径或图标名
|
||||||
|
* @param installed 如果是应用,是否已安装
|
||||||
|
*/
|
||||||
|
void SearchDetailView::setIcon(const QString &path, const bool &installed)
|
||||||
|
{
|
||||||
|
m_iconPath = path;
|
||||||
|
if (m_type == SearchListView::ResType::App) {
|
||||||
|
QIcon icon;
|
||||||
|
if(!installed) {
|
||||||
|
icon = QIcon(path);
|
||||||
|
} else {
|
||||||
|
if(QIcon::fromTheme(path).isNull()) {
|
||||||
|
icon = QIcon(":/res/icons/desktop.png");
|
||||||
|
} else {
|
||||||
|
icon = QIcon::fromTheme(path);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
m_iconLabel->setPixmap(icon.pixmap(icon.actualSize(QSize(96, 96))));
|
||||||
|
} else if (m_type == SearchListView::ResType::Setting) {
|
||||||
|
QIcon icon = FileUtils::getSettingIcon(path, true);
|
||||||
|
m_iconLabel->setPixmap(icon.pixmap(icon.actualSize(QSize(96, 96))));
|
||||||
|
} else {
|
||||||
|
QIcon icon = FileUtils::getFileIcon(QUrl::fromLocalFile(path).toString());
|
||||||
|
m_iconLabel->setPixmap(icon.pixmap(icon.actualSize(QSize(96, 96))));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @brief SearchDetailView::addDesktopShortcut 添加到桌面快捷方式
|
* @brief SearchDetailView::addDesktopShortcut 添加到桌面快捷方式
|
||||||
* @return
|
* @return
|
||||||
|
|
|
@ -71,6 +71,8 @@ private:
|
||||||
QString m_pkgname = 0; //目前只有未安装应用在打开软件商店时需要此参数
|
QString m_pkgname = 0; //目前只有未安装应用在打开软件商店时需要此参数
|
||||||
|
|
||||||
void initUI();
|
void initUI();
|
||||||
|
void setIcon(const QString& path, const bool &installed = true);
|
||||||
|
QString m_iconPath;
|
||||||
QLabel * m_iconLabel = nullptr;
|
QLabel * m_iconLabel = nullptr;
|
||||||
QFrame * m_nameFrame = nullptr;
|
QFrame * m_nameFrame = nullptr;
|
||||||
QHBoxLayout * m_nameLayout = nullptr;
|
QHBoxLayout * m_nameLayout = nullptr;
|
||||||
|
@ -105,6 +107,7 @@ Q_SIGNALS:
|
||||||
void configFileChanged();
|
void configFileChanged();
|
||||||
private Q_SLOTS:
|
private Q_SLOTS:
|
||||||
void execActions(const int&, const int&, const QString&);
|
void execActions(const int&, const int&, const QString&);
|
||||||
|
void refreshIcon();
|
||||||
};
|
};
|
||||||
|
|
||||||
//此类用于url拦截
|
//此类用于url拦截
|
||||||
|
|
|
@ -128,7 +128,13 @@ void SearchListView::clear() {
|
||||||
*/
|
*/
|
||||||
void SearchListView::refresh()
|
void SearchListView::refresh()
|
||||||
{
|
{
|
||||||
|
QModelIndex index = this->currentIndex();
|
||||||
m_model->refresh();
|
m_model->refresh();
|
||||||
|
if(index.row() >= 0 && index.row() < m_model->length() && m_isSelected) {
|
||||||
|
this->blockSignals(true);
|
||||||
|
this->setCurrentIndex(index);
|
||||||
|
this->blockSignals(false);
|
||||||
|
}
|
||||||
rowheight = this->rowHeight(this->model()->index(0, 0, QModelIndex())) + 1;
|
rowheight = this->rowHeight(this->model()->index(0, 0, QModelIndex())) + 1;
|
||||||
this->setFixedHeight(m_item->getCurrentSize() * rowheight + 4);
|
this->setFixedHeight(m_item->getCurrentSize() * rowheight + 4);
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,11 +20,10 @@
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "create-index-ask-dialog.h"
|
#include "create-index-ask-dialog.h"
|
||||||
#include <QPainter>
|
|
||||||
|
|
||||||
using namespace Zeeker;
|
using namespace Zeeker;
|
||||||
CreateIndexAskDialog::CreateIndexAskDialog(QWidget *parent) : QDialog(parent) {
|
CreateIndexAskDialog::CreateIndexAskDialog(QWidget *parent) : QDialog(parent) {
|
||||||
this->setWindowIcon(QIcon::fromTheme("kylin-search"));
|
// this->setWindowIcon(QIcon::fromTheme("kylin-search"));
|
||||||
this->setWindowTitle(tr("ukui-search"));
|
this->setWindowTitle(tr("ukui-search"));
|
||||||
|
|
||||||
initUi();
|
initUi();
|
||||||
|
@ -46,6 +45,10 @@ void CreateIndexAskDialog::initUi() {
|
||||||
m_iconLabel = new QLabel(m_titleFrame);
|
m_iconLabel = new QLabel(m_titleFrame);
|
||||||
m_iconLabel->setFixedSize(24, 24);
|
m_iconLabel->setFixedSize(24, 24);
|
||||||
m_iconLabel->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
m_iconLabel->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
||||||
|
//主题改变时,更新自定义标题栏的图标
|
||||||
|
connect(qApp, &QApplication::paletteChanged, this, [ = ]() {
|
||||||
|
m_iconLabel->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
||||||
|
});
|
||||||
m_titleLabel = new QLabel(m_titleFrame);
|
m_titleLabel = new QLabel(m_titleFrame);
|
||||||
m_titleLabel->setText(tr("Search"));
|
m_titleLabel->setText(tr("Search"));
|
||||||
m_closeBtn = new QPushButton(m_titleFrame);
|
m_closeBtn = new QPushButton(m_titleFrame);
|
||||||
|
@ -113,6 +116,10 @@ void CreateIndexAskDialog::initUi() {
|
||||||
m_contentLyt->addWidget(m_btnFrame);
|
m_contentLyt->addWidget(m_btnFrame);
|
||||||
|
|
||||||
m_mainLyt->addWidget(m_contentFrame);
|
m_mainLyt->addWidget(m_contentFrame);
|
||||||
|
#if (QT_VERSION < QT_VERSION_CHECK(5, 12, 0))
|
||||||
|
m_titleFrame->hide();
|
||||||
|
this->setFixedSize(380, 162);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -30,6 +30,8 @@
|
||||||
#include <QLabel>
|
#include <QLabel>
|
||||||
#include <QPushButton>
|
#include <QPushButton>
|
||||||
#include <QStyleOption>
|
#include <QStyleOption>
|
||||||
|
#include <QApplication>
|
||||||
|
#include <QPainter>
|
||||||
|
|
||||||
namespace Zeeker {
|
namespace Zeeker {
|
||||||
class CreateIndexAskDialog : public QDialog {
|
class CreateIndexAskDialog : public QDialog {
|
||||||
|
|
16
src/main.cpp
16
src/main.cpp
|
@ -29,8 +29,11 @@
|
||||||
#include <QLocale>
|
#include <QLocale>
|
||||||
#include <X11/Xlib.h>
|
#include <X11/Xlib.h>
|
||||||
#include <syslog.h>
|
#include <syslog.h>
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
#include <ukui-log4qt.h>
|
#include <ukui-log4qt.h>
|
||||||
|
#endif
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
#include <QApplication>
|
||||||
#include "qt-single-application.h"
|
#include "qt-single-application.h"
|
||||||
#include "qt-local-peer.h"
|
#include "qt-local-peer.h"
|
||||||
//#include "inotify-manager.h"
|
//#include "inotify-manager.h"
|
||||||
|
@ -144,8 +147,11 @@ void searchMethod(FileUtils::SearchMethod sm){
|
||||||
}
|
}
|
||||||
*/
|
*/
|
||||||
int main(int argc, char *argv[]) {
|
int main(int argc, char *argv[]) {
|
||||||
//Init log module
|
//v101日志模块
|
||||||
|
//#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
|
// //Init log module
|
||||||
// initUkuiLog4qt("ukui-search");
|
// initUkuiLog4qt("ukui-search");
|
||||||
|
//#endif
|
||||||
|
|
||||||
// Determine whether the home directory has been created, and if not, keep waiting.
|
// Determine whether the home directory has been created, and if not, keep waiting.
|
||||||
char *p_home = NULL;
|
char *p_home = NULL;
|
||||||
|
@ -171,6 +177,11 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
// Output log to file
|
// Output log to file
|
||||||
qInstallMessageHandler(messageOutput);
|
qInstallMessageHandler(messageOutput);
|
||||||
|
//若使用v101日志模块,可以解放如下判断条件
|
||||||
|
//#if (QT_VERSION < QT_VERSION_CHECK(5, 12, 0))
|
||||||
|
// // Output log to file
|
||||||
|
// qInstallMessageHandler(messageOutput);
|
||||||
|
//#endif
|
||||||
|
|
||||||
// Register meta type
|
// Register meta type
|
||||||
qDebug() << "ukui-search main start";
|
qDebug() << "ukui-search main start";
|
||||||
|
@ -268,6 +279,7 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
//set main window to the center of screen
|
//set main window to the center of screen
|
||||||
MainWindow *w = new MainWindow;
|
MainWindow *w = new MainWindow;
|
||||||
|
qApp->setWindowIcon(QIcon::fromTheme("kylin-search"));
|
||||||
// centerToScreen(w);
|
// centerToScreen(w);
|
||||||
// w->moveToPanel();
|
// w->moveToPanel();
|
||||||
centerToScreen(w);
|
centerToScreen(w);
|
||||||
|
@ -289,7 +301,9 @@ int main(int argc, char *argv[]) {
|
||||||
if(QString::compare(QString("-s"), QString(QLatin1String(argv[1]))) == 0) {
|
if(QString::compare(QString("-s"), QString(QLatin1String(argv[1]))) == 0) {
|
||||||
// w->moveToPanel();
|
// w->moveToPanel();
|
||||||
centerToScreen(w);
|
centerToScreen(w);
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
XAtomHelper::getInstance()->setWindowMotifHint(w->winId(), w->m_hints);
|
XAtomHelper::getInstance()->setWindowMotifHint(w->winId(), w->m_hints);
|
||||||
|
#endif
|
||||||
w->show();
|
w->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,9 +29,11 @@
|
||||||
#include <QPalette>
|
#include <QPalette>
|
||||||
#include <QScreen>
|
#include <QScreen>
|
||||||
#include <QStyleOption>
|
#include <QStyleOption>
|
||||||
#include <KWindowEffects>
|
|
||||||
#include <QPixmap>
|
#include <QPixmap>
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
|
#include <KWindowEffects>
|
||||||
#include "kwindowsystem.h"
|
#include "kwindowsystem.h"
|
||||||
|
#endif
|
||||||
#include "qt-single-application.h"
|
#include "qt-single-application.h"
|
||||||
|
|
||||||
//#include "inotify-manager.h"
|
//#include "inotify-manager.h"
|
||||||
|
@ -58,7 +60,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||||
|
|
||||||
// this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
|
// this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint | Qt::X11BypassWindowManagerHint);
|
||||||
// this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
|
// this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
|
||||||
this->setWindowIcon(QIcon::fromTheme("kylin-search"));
|
// this->setWindowIcon(QIcon::fromTheme("kylin-search"));
|
||||||
this->setAttribute(Qt::WA_TranslucentBackground, true);
|
this->setAttribute(Qt::WA_TranslucentBackground, true);
|
||||||
this->setAutoFillBackground(false);
|
this->setAutoFillBackground(false);
|
||||||
this->setFocusPolicy(Qt::StrongFocus);
|
this->setFocusPolicy(Qt::StrongFocus);
|
||||||
|
@ -67,6 +69,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||||
initUi();
|
initUi();
|
||||||
initTimer();
|
initTimer();
|
||||||
|
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
// setProperty("useStyleWindowManager", false); //禁止拖动
|
// setProperty("useStyleWindowManager", false); //禁止拖动
|
||||||
m_hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
|
m_hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
|
||||||
m_hints.functions = MWM_FUNC_ALL;
|
m_hints.functions = MWM_FUNC_ALL;
|
||||||
|
@ -80,6 +83,7 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||||
path.addRect(rect);
|
path.addRect(rect);
|
||||||
setProperty("blurRegion", QRegion(path.toFillPolygon().toPolygon()));
|
setProperty("blurRegion", QRegion(path.toFillPolygon().toPolygon()));
|
||||||
KWindowEffects::enableBlurBehind(this->winId(), true, QRegion(path.toFillPolygon().toPolygon()));
|
KWindowEffects::enableBlurBehind(this->winId(), true, QRegion(path.toFillPolygon().toPolygon()));
|
||||||
|
#endif
|
||||||
|
|
||||||
connect(qApp, &QApplication::paletteChanged, this, [ = ](const QPalette & pal) {
|
connect(qApp, &QApplication::paletteChanged, this, [ = ](const QPalette & pal) {
|
||||||
this->setPalette(pal);
|
this->setPalette(pal);
|
||||||
|
@ -125,7 +129,9 @@ MainWindow::MainWindow(QWidget *parent) :
|
||||||
clearSearchResult();
|
clearSearchResult();
|
||||||
// this->moveToPanel();
|
// this->moveToPanel();
|
||||||
centerToScreen(this);
|
centerToScreen(this);
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
XAtomHelper::getInstance()->setWindowMotifHint(winId(), m_hints);
|
XAtomHelper::getInstance()->setWindowMotifHint(winId(), m_hints);
|
||||||
|
#endif
|
||||||
this->show();
|
this->show();
|
||||||
this->m_searchLayout->focusIn(); //打开主界面时输入框夺焦,可直接输入
|
this->m_searchLayout->focusIn(); //打开主界面时输入框夺焦,可直接输入
|
||||||
this->raise();
|
this->raise();
|
||||||
|
@ -150,10 +156,12 @@ MainWindow::~MainWindow() {
|
||||||
delete m_searchLayout;
|
delete m_searchLayout;
|
||||||
m_searchLayout = NULL;
|
m_searchLayout = NULL;
|
||||||
}
|
}
|
||||||
// if(m_settingsWidget) {
|
#if (QT_VERSION < QT_VERSION_CHECK(5, 12, 0))
|
||||||
// delete m_settingsWidget;
|
if(m_settingsWidget) {
|
||||||
// m_settingsWidget = NULL;
|
delete m_settingsWidget;
|
||||||
// }
|
m_settingsWidget = NULL;
|
||||||
|
}
|
||||||
|
#endif
|
||||||
if(m_askDialog) {
|
if(m_askDialog) {
|
||||||
delete m_askDialog;
|
delete m_askDialog;
|
||||||
m_askDialog = NULL;
|
m_askDialog = NULL;
|
||||||
|
@ -189,6 +197,10 @@ void MainWindow::initUi() {
|
||||||
m_iconLabel = new QLabel(m_titleFrame);
|
m_iconLabel = new QLabel(m_titleFrame);
|
||||||
m_iconLabel->setFixedSize(24, 24);
|
m_iconLabel->setFixedSize(24, 24);
|
||||||
m_iconLabel->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
m_iconLabel->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
||||||
|
//主题改变时,更新自定义标题栏的图标
|
||||||
|
connect(qApp, &QApplication::paletteChanged, this, [ = ]() {
|
||||||
|
m_iconLabel->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
||||||
|
});
|
||||||
m_titleLabel = new QLabel(m_titleFrame);
|
m_titleLabel = new QLabel(m_titleFrame);
|
||||||
m_titleLabel->setText(tr("Search"));
|
m_titleLabel->setText(tr("Search"));
|
||||||
m_menuBtn = new QPushButton(m_titleFrame);
|
m_menuBtn = new QPushButton(m_titleFrame);
|
||||||
|
@ -199,38 +211,42 @@ void MainWindow::initUi() {
|
||||||
m_menuBtn->setProperty("isWindowButton", 0x01);
|
m_menuBtn->setProperty("isWindowButton", 0x01);
|
||||||
m_menuBtn->setFlat(true);
|
m_menuBtn->setFlat(true);
|
||||||
connect(m_menuBtn, &QPushButton::clicked, this, [ = ]() {
|
connect(m_menuBtn, &QPushButton::clicked, this, [ = ]() {
|
||||||
// if(m_settingsWidget) { //当此窗口已存在时,仅需置顶
|
#if (QT_VERSION < QT_VERSION_CHECK(5, 12, 0))
|
||||||
// if(!m_settingsWidget->isVisible()) {
|
if(m_settingsWidget) { //当此窗口已存在时,仅需置顶
|
||||||
// centerToScreen(m_settingsWidget);
|
if(!m_settingsWidget->isVisible()) {
|
||||||
// }
|
centerToScreen(m_settingsWidget);
|
||||||
// m_settingsWidget->showWidget();
|
}
|
||||||
// return;
|
m_settingsWidget->showWidget();
|
||||||
// }
|
return;
|
||||||
// m_settingsWidget = new SettingsWidget();
|
}
|
||||||
// connect(this, &MainWindow::webEngineChanged, m_settingsWidget, [ = ]() {
|
m_settingsWidget = new SettingsWidget();
|
||||||
// m_settingsWidget->resetWebEngine();
|
connect(this, &MainWindow::webEngineChanged, m_settingsWidget, [ = ]() {
|
||||||
// });
|
m_settingsWidget->resetWebEngine();
|
||||||
// connect(m_settingsWidget, &SettingsWidget::webEngineChanged, this, [ = ](const QString & engine) {
|
});
|
||||||
// if(m_search_gsettings && m_search_gsettings->keys().contains(WEB_ENGINE_KEY)) {
|
connect(m_settingsWidget, &SettingsWidget::webEngineChanged, this, [ = ](const QString & engine) {
|
||||||
// m_search_gsettings->set(WEB_ENGINE_KEY, engine);
|
if(m_search_gsettings && m_search_gsettings->keys().contains(WEB_ENGINE_KEY)) {
|
||||||
// } else {
|
m_search_gsettings->set(WEB_ENGINE_KEY, engine);
|
||||||
// GlobalSettings::getInstance()->setValue(WEB_ENGINE, engine);
|
} else {
|
||||||
// }
|
GlobalSettings::getInstance()->setValue(WEB_ENGINE, engine);
|
||||||
// });
|
}
|
||||||
// centerToScreen(m_settingsWidget);
|
});
|
||||||
// m_settingsWidget->show();
|
centerToScreen(m_settingsWidget);
|
||||||
// connect(m_settingsWidget, &SettingsWidget::settingWidgetClosed, this, [ = ]() {
|
m_settingsWidget->show();
|
||||||
// QTimer::singleShot(100, this, [ = ] {
|
connect(m_settingsWidget, &SettingsWidget::settingWidgetClosed, this, [ = ]() {
|
||||||
//// clearSearchResult(); //现暂定从设置页返回主页面不清空搜索结果
|
QTimer::singleShot(100, this, [ = ] {
|
||||||
// this->setWindowState(this->windowState() & ~Qt::WindowMinimized);
|
// clearSearchResult(); //现暂定从设置页返回主页面不清空搜索结果
|
||||||
// this->raise();
|
this->setWindowState(this->windowState() & ~Qt::WindowMinimized);
|
||||||
// this->showNormal();
|
this->raise();
|
||||||
// this->activateWindow();
|
this->showNormal();
|
||||||
// });
|
this->activateWindow();
|
||||||
// });
|
});
|
||||||
|
});
|
||||||
|
#endif
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
//打开控制面板的设置页
|
//打开控制面板的设置页
|
||||||
QProcess process;
|
QProcess process;
|
||||||
process.startDetached("ukui-control-center --search");
|
process.startDetached("ukui-control-center --search");
|
||||||
|
#endif
|
||||||
});
|
});
|
||||||
m_titleLyt->addWidget(m_iconLabel);
|
m_titleLyt->addWidget(m_iconLabel);
|
||||||
m_titleLyt->addWidget(m_titleLabel);
|
m_titleLyt->addWidget(m_titleLabel);
|
||||||
|
@ -286,11 +302,13 @@ void MainWindow::initUi() {
|
||||||
|
|
||||||
//创建索引询问弹窗
|
//创建索引询问弹窗
|
||||||
m_askDialog = new CreateIndexAskDialog(this);
|
m_askDialog = new CreateIndexAskDialog(this);
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
MotifWmHints ask_dialog_hints;
|
MotifWmHints ask_dialog_hints;
|
||||||
ask_dialog_hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
|
ask_dialog_hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
|
||||||
ask_dialog_hints.functions = MWM_FUNC_ALL;
|
ask_dialog_hints.functions = MWM_FUNC_ALL;
|
||||||
ask_dialog_hints.decorations = MWM_DECOR_BORDER;
|
ask_dialog_hints.decorations = MWM_DECOR_BORDER;
|
||||||
XAtomHelper::getInstance()->setWindowMotifHint(m_askDialog->winId(), ask_dialog_hints);
|
XAtomHelper::getInstance()->setWindowMotifHint(m_askDialog->winId(), ask_dialog_hints);
|
||||||
|
#endif
|
||||||
connect(m_askDialog, &CreateIndexAskDialog::closed, this, [ = ]() {
|
connect(m_askDialog, &CreateIndexAskDialog::closed, this, [ = ]() {
|
||||||
m_isAskDialogVisible = false;
|
m_isAskDialogVisible = false;
|
||||||
});
|
});
|
||||||
|
@ -323,7 +341,9 @@ void MainWindow::bootOptionsFilter(QString opt) {
|
||||||
clearSearchResult();
|
clearSearchResult();
|
||||||
// this->moveToPanel();
|
// this->moveToPanel();
|
||||||
centerToScreen(this);
|
centerToScreen(this);
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
XAtomHelper::getInstance()->setWindowMotifHint(winId(), m_hints);
|
XAtomHelper::getInstance()->setWindowMotifHint(winId(), m_hints);
|
||||||
|
#endif
|
||||||
this->show();
|
this->show();
|
||||||
this->m_searchLayout->focusIn();
|
this->m_searchLayout->focusIn();
|
||||||
this->raise();
|
this->raise();
|
||||||
|
|
|
@ -49,10 +49,14 @@
|
||||||
#include "content-widget.h"
|
#include "content-widget.h"
|
||||||
#include "input-box.h"
|
#include "input-box.h"
|
||||||
#include "index/index-generator.h"
|
#include "index/index-generator.h"
|
||||||
//#include "settings-widget.h"
|
|
||||||
#include "libsearch.h"
|
#include "libsearch.h"
|
||||||
#include "search-app-thread.h"
|
#include "search-app-thread.h"
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
#include "xatom-helper.h"
|
#include "xatom-helper.h"
|
||||||
|
#endif
|
||||||
|
#if (QT_VERSION < QT_VERSION_CHECK(5, 12, 0))
|
||||||
|
#include "settings-widget.h"
|
||||||
|
#endif
|
||||||
#include "create-index-ask-dialog.h"
|
#include "create-index-ask-dialog.h"
|
||||||
|
|
||||||
#define UKUI_SEARCH_SCHEMAS "org.ukui.search.settings"
|
#define UKUI_SEARCH_SCHEMAS "org.ukui.search.settings"
|
||||||
|
@ -82,7 +86,9 @@ public:
|
||||||
void centerToScreen(QWidget* widget);
|
void centerToScreen(QWidget* widget);
|
||||||
void initGsettings();
|
void initGsettings();
|
||||||
|
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
MotifWmHints m_hints;
|
MotifWmHints m_hints;
|
||||||
|
#endif
|
||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
@ -95,7 +101,9 @@ private:
|
||||||
QLabel * m_iconLabel = nullptr; // Icon lable
|
QLabel * m_iconLabel = nullptr; // Icon lable
|
||||||
QLabel * m_titleLabel = nullptr; // Title lable
|
QLabel * m_titleLabel = nullptr; // Title lable
|
||||||
QPushButton * m_menuBtn = nullptr; // Menu button
|
QPushButton * m_menuBtn = nullptr; // Menu button
|
||||||
// SettingsWidget * m_settingsWidget = nullptr; // Settings Widget
|
#if (QT_VERSION < QT_VERSION_CHECK(5, 12, 0))
|
||||||
|
SettingsWidget * m_settingsWidget = nullptr; // Settings Widget
|
||||||
|
#endif
|
||||||
ContentWidget * m_contentFrame = nullptr; // Content frame
|
ContentWidget * m_contentFrame = nullptr; // Content frame
|
||||||
SearchBarHLayout * m_searchLayout = nullptr; // Search bar layout
|
SearchBarHLayout * m_searchLayout = nullptr; // Search bar layout
|
||||||
SeachBarWidget * m_searchWidget = nullptr; // Search bar
|
SeachBarWidget * m_searchWidget = nullptr; // Search bar
|
||||||
|
|
|
@ -186,3 +186,8 @@ void SearchItemModel::refresh()
|
||||||
this->beginResetModel();
|
this->beginResetModel();
|
||||||
this->endResetModel();
|
this->endResetModel();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int SearchItemModel::length()
|
||||||
|
{
|
||||||
|
return m_item->m_pathlist.length();
|
||||||
|
}
|
||||||
|
|
|
@ -60,6 +60,7 @@ public:
|
||||||
void clear();
|
void clear();
|
||||||
void setBestAppIcon(const QString &, const bool &);
|
void setBestAppIcon(const QString &, const bool &);
|
||||||
void refresh();
|
void refresh();
|
||||||
|
int length();
|
||||||
|
|
||||||
private :
|
private :
|
||||||
SearchItem * m_item = nullptr;
|
SearchItem * m_item = nullptr;
|
||||||
|
|
|
@ -32,15 +32,17 @@
|
||||||
using namespace Zeeker;
|
using namespace Zeeker;
|
||||||
extern void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed);
|
extern void qt_blurImage(QImage &blurImage, qreal radius, bool quality, int transposed);
|
||||||
SettingsWidget::SettingsWidget(QWidget *parent) : QWidget(parent) {
|
SettingsWidget::SettingsWidget(QWidget *parent) : QWidget(parent) {
|
||||||
this->setWindowIcon(QIcon::fromTheme("kylin-search"));
|
// this->setWindowIcon(QIcon::fromTheme("kylin-search"));
|
||||||
this->setWindowTitle(tr("ukui-search-settings"));
|
this->setWindowTitle(tr("ukui-search-settings"));
|
||||||
// this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
|
// this->setWindowFlags(Qt::CustomizeWindowHint | Qt::FramelessWindowHint);
|
||||||
// this->setAttribute(Qt::WA_TranslucentBackground);
|
// this->setAttribute(Qt::WA_TranslucentBackground);
|
||||||
|
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
m_hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
|
m_hints.flags = MWM_HINTS_FUNCTIONS | MWM_HINTS_DECORATIONS;
|
||||||
m_hints.functions = MWM_FUNC_ALL;
|
m_hints.functions = MWM_FUNC_ALL;
|
||||||
m_hints.decorations = MWM_DECOR_BORDER;
|
m_hints.decorations = MWM_DECOR_BORDER;
|
||||||
XAtomHelper::getInstance()->setWindowMotifHint(winId(), m_hints);
|
XAtomHelper::getInstance()->setWindowMotifHint(winId(), m_hints);
|
||||||
|
#endif
|
||||||
|
|
||||||
initUi();
|
initUi();
|
||||||
refreshIndexState();
|
refreshIndexState();
|
||||||
|
@ -70,6 +72,10 @@ void SettingsWidget::initUi() {
|
||||||
m_titleFrame->setLayout(m_titleLyt);
|
m_titleFrame->setLayout(m_titleLyt);
|
||||||
m_titleIcon = new QLabel(m_titleFrame);
|
m_titleIcon = new QLabel(m_titleFrame);
|
||||||
m_titleIcon->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
m_titleIcon->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
||||||
|
//主题改变时,更新自定义标题栏的图标
|
||||||
|
connect(qApp, &QApplication::paletteChanged, this, [ = ]() {
|
||||||
|
m_titleIcon->setPixmap(QIcon::fromTheme("kylin-search").pixmap(QSize(24, 24)));
|
||||||
|
});
|
||||||
m_titleLabel = new QLabel(m_titleFrame);
|
m_titleLabel = new QLabel(m_titleFrame);
|
||||||
m_titleLabel->setText(tr("Search"));
|
m_titleLabel->setText(tr("Search"));
|
||||||
m_closeBtn = new QPushButton(m_titleFrame);
|
m_closeBtn = new QPushButton(m_titleFrame);
|
||||||
|
@ -220,6 +226,11 @@ void SettingsWidget::initUi() {
|
||||||
// m_mainLyt->addWidget(m_bottomBtnFrame);
|
// m_mainLyt->addWidget(m_bottomBtnFrame);
|
||||||
|
|
||||||
m_contentLyt->addStretch();
|
m_contentLyt->addStretch();
|
||||||
|
|
||||||
|
#if (QT_VERSION < QT_VERSION_CHECK(5, 12, 0))
|
||||||
|
this->m_titleFrame->hide();
|
||||||
|
setAttribute(Qt::WA_DeleteOnClose);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -370,7 +381,9 @@ void SettingsWidget::showWidget() {
|
||||||
flags &= ~Qt::WindowStaysOnTopHint;
|
flags &= ~Qt::WindowStaysOnTopHint;
|
||||||
this->setWindowFlags(flags);
|
this->setWindowFlags(flags);
|
||||||
m_timer->start();
|
m_timer->start();
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
XAtomHelper::getInstance()->setWindowMotifHint(winId(), m_hints);
|
XAtomHelper::getInstance()->setWindowMotifHint(winId(), m_hints);
|
||||||
|
#endif
|
||||||
this->show();
|
this->show();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,9 @@
|
||||||
#include <QScrollArea>
|
#include <QScrollArea>
|
||||||
#include <QTimer>
|
#include <QTimer>
|
||||||
#include <libsearch.h>
|
#include <libsearch.h>
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
#include "xatom-helper.h"
|
#include "xatom-helper.h"
|
||||||
|
#endif
|
||||||
|
|
||||||
namespace Zeeker {
|
namespace Zeeker {
|
||||||
class SettingsWidget : public QWidget {
|
class SettingsWidget : public QWidget {
|
||||||
|
@ -56,7 +58,9 @@ private:
|
||||||
void resize();
|
void resize();
|
||||||
void showWarningDialog(const int&);
|
void showWarningDialog(const int&);
|
||||||
|
|
||||||
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
MotifWmHints m_hints;
|
MotifWmHints m_hints;
|
||||||
|
#endif
|
||||||
|
|
||||||
//标题栏
|
//标题栏
|
||||||
QVBoxLayout * m_mainLyt = nullptr;
|
QVBoxLayout * m_mainLyt = nullptr;
|
||||||
|
|
Loading…
Reference in New Issue