fix: 更新平板代码
This commit is contained in:
parent
322ce40177
commit
a03a95a883
|
@ -29,9 +29,9 @@
|
||||||
|
|
||||||
右击“我的字体”的字体列表会弹出菜单可以对字体进行添加字体、应用字体、卸载字体、导出字体、收藏字体、查看字体信息的操作。对于“系统字体”右键只可以进行添加字体、应用字体、收藏字体、查看字体信息的操作。
|
右击“我的字体”的字体列表会弹出菜单可以对字体进行添加字体、应用字体、卸载字体、导出字体、收藏字体、查看字体信息的操作。对于“系统字体”右键只可以进行添加字体、应用字体、收藏字体、查看字体信息的操作。
|
||||||
|
|
||||||
![图 5 “我的字体”右键功能-big](image/5.png)
|
![图 4 “我的字体”右键功能-big](image/5.png)
|
||||||
|
|
||||||
![图 6 “系统字体”右键功能-big](image/6.png)
|
![图 5 “系统字体”右键功能-big](image/6.png)
|
||||||
|
|
||||||
### 帮助和关于
|
### 帮助和关于
|
||||||
|
|
||||||
|
|
|
@ -32,6 +32,10 @@
|
||||||
<source>No Font</source>
|
<source>No Font</source>
|
||||||
<translation>གནས་སྐབས་མེད་པའི་ཡིག་གཟུགས།</translation>
|
<translation>གནས་སྐབས་མེད་པའི་ཡིག་གཟུགས།</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No Search Results</source>
|
||||||
|
<translation>བཤེར་འཚོལ་འབྲས་བུ་མེད་།</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>FontListView</name>
|
<name>FontListView</name>
|
||||||
|
@ -206,6 +210,21 @@
|
||||||
<translation type="vanished">款字体!</translation>
|
<translation type="vanished">款字体!</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>PopupMessage</name>
|
||||||
|
<message>
|
||||||
|
<source>Do you want to install the selected files?</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Yes</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>PopupRemove</name>
|
<name>PopupRemove</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -236,6 +255,21 @@
|
||||||
<translation>མི་འཆར་བ་</translation>
|
<translation>མི་འཆར་བ་</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>PopupMessage</name>
|
||||||
|
<message>
|
||||||
|
<source>Do you want to install the selected files?</source>
|
||||||
|
<translation>བདམས་པའི་ཡིག་ཆ་སྒྲིག་སྦྱོར་བྱ་དགོས་མིན་?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Yes</source>
|
||||||
|
<translation>རེད།</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No</source>
|
||||||
|
<translation>མེད།</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TitleBar</name>
|
<name>TitleBar</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -251,8 +285,8 @@
|
||||||
<translation>སྒོ་རྒྱག་པ།</translation>
|
<translation>སྒོ་རྒྱག་པ།</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Menu</source>
|
<source>Options</source>
|
||||||
<translation>ཟས་ཐོ།</translation>
|
<translation>འདེམས་ཚན་</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Help</source>
|
<source>Help</source>
|
||||||
|
|
|
@ -233,6 +233,21 @@
|
||||||
<translation>不再显示</translation>
|
<translation>不再显示</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
|
<context>
|
||||||
|
<name>PopupMessage</name>
|
||||||
|
<message>
|
||||||
|
<source>Do you want to install the selected files?</source>
|
||||||
|
<translation>是否要安装所选文件?</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>Yes</source>
|
||||||
|
<translation>是</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No</source>
|
||||||
|
<translation>否</translation>
|
||||||
|
</message>
|
||||||
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>TitleBar</name>
|
<name>TitleBar</name>
|
||||||
<message>
|
<message>
|
||||||
|
@ -248,8 +263,8 @@
|
||||||
<translation>关闭</translation>
|
<translation>关闭</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Menu</source>
|
<source>Options</source>
|
||||||
<translation>菜单</translation>
|
<translation>选项</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Quit</source>
|
<source>Quit</source>
|
||||||
|
@ -290,5 +305,9 @@
|
||||||
<source>No Font</source>
|
<source>No Font</source>
|
||||||
<translation>暂无字体</translation>
|
<translation>暂无字体</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>No Search Results</source>
|
||||||
|
<translation>无搜索结果</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -24,7 +24,7 @@ public:
|
||||||
bool uninstallFont(QString path, QString fontName); /* 卸载字体 */
|
bool uninstallFont(QString path, QString fontName); /* 卸载字体 */
|
||||||
bool copyFont(QString srcPath , QString dstPath); /* 复制字体 */
|
bool copyFont(QString srcPath , QString dstPath); /* 复制字体 */
|
||||||
bool isSystemFont(QString path); /* 判断是否为系统字体 */
|
bool isSystemFont(QString path); /* 判断是否为系统字体 */
|
||||||
bool applyFont(QString family); /* 应用字体 */
|
bool applyFont(QString family, QString path); /* 应用字体 */
|
||||||
QString ControlUsingFont(); /* 获取正在使用的字体名称 */
|
QString ControlUsingFont(); /* 获取正在使用的字体名称 */
|
||||||
void updateFontList(); /* 更新字体列表 */
|
void updateFontList(); /* 更新字体列表 */
|
||||||
|
|
||||||
|
|
|
@ -29,6 +29,7 @@ private:
|
||||||
QGSettings *m_gsettings = nullptr;
|
QGSettings *m_gsettings = nullptr;
|
||||||
QGSettings *m_themeGsettings = nullptr;
|
QGSettings *m_themeGsettings = nullptr;
|
||||||
QGSettings *m_contolGsettings = nullptr;
|
QGSettings *m_contolGsettings = nullptr;
|
||||||
|
QGSettings *m_gtkGsettings = nullptr;
|
||||||
// QProcess *m_process = nullptr;
|
// QProcess *m_process = nullptr;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -16,6 +16,7 @@ typedef struct _FontInformation
|
||||||
QString family; /* 系列 */
|
QString family; /* 系列 */
|
||||||
QString style; /* 样式 */
|
QString style; /* 样式 */
|
||||||
QString type; /* 种类 */
|
QString type; /* 种类 */
|
||||||
|
QString foundry; /* 铸造商 */
|
||||||
QString version; /* 版本 */
|
QString version; /* 版本 */
|
||||||
QString copyright; /* 版权 */
|
QString copyright; /* 版权 */
|
||||||
QString manufacturer; /* 商标 */
|
QString manufacturer; /* 商标 */
|
||||||
|
|
|
@ -54,7 +54,8 @@ SOURCES += $$PWD/src/main.cc \
|
||||||
$$PWD/src/view/getfontthread.cc \
|
$$PWD/src/view/getfontthread.cc \
|
||||||
$$PWD/src/view/popuptips.cc \
|
$$PWD/src/view/popuptips.cc \
|
||||||
$$PWD/src/view/blankpage.cc \
|
$$PWD/src/view/blankpage.cc \
|
||||||
$$PWD/src/view/rotatechangeinfo.cc
|
$$PWD/src/view/rotatechangeinfo.cc \
|
||||||
|
$$PWD/src/view/popupmessage.cc
|
||||||
|
|
||||||
HEADERS += $$PWD/include/core.h \
|
HEADERS += $$PWD/include/core.h \
|
||||||
$$PWD/include/libfun.h \
|
$$PWD/include/libfun.h \
|
||||||
|
@ -80,7 +81,8 @@ HEADERS += $$PWD/include/core.h \
|
||||||
$$PWD/src/view/getfontthread.h \
|
$$PWD/src/view/getfontthread.h \
|
||||||
$$PWD/src/view/popuptips.h \
|
$$PWD/src/view/popuptips.h \
|
||||||
$$PWD/src/view/blankpage.h \
|
$$PWD/src/view/blankpage.h \
|
||||||
$$PWD/src/view/rotatechangeinfo.h
|
$$PWD/src/view/rotatechangeinfo.h \
|
||||||
|
$$PWD/src/view/popupmessage.h
|
||||||
|
|
||||||
# 翻译
|
# 翻译
|
||||||
TRANSLATIONS = data/translations/kylin-font-viewer_zh_CN.ts
|
TRANSLATIONS = data/translations/kylin-font-viewer_zh_CN.ts
|
||||||
|
|
44
src/core.cc
44
src/core.cc
|
@ -260,9 +260,47 @@ bool Core::isSystemFont(QString path)
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool Core::applyFont(QString family)
|
bool Core::applyFont(QString family, QString path)
|
||||||
{
|
{
|
||||||
return this->m_external.applyFont(family);
|
QString foundryLast = ""; // 上个字体铸造商
|
||||||
|
QString foundryCurrent = ""; // 当前字体铸造商
|
||||||
|
QString foundryTarget = ""; // 目标字体铸造商
|
||||||
|
bool firstFont = true;
|
||||||
|
|
||||||
|
QString fontFamily = "";
|
||||||
|
bool isDiffFontExist = false; // 存在名字相同,铸造厂商不同的字体(默认为false)
|
||||||
|
// bool isSameFontExist = false; // 存在名字相同,铸造厂商相同的字体 (默认为false)
|
||||||
|
|
||||||
|
// 循环查找列表
|
||||||
|
for (int i = 0 ; i < this->m_fontData.count() ; i++) {
|
||||||
|
FontInformation item = this->m_fontData.at(i);
|
||||||
|
|
||||||
|
// 寻找目标字体,判断铸造商是否存在不同
|
||||||
|
if (item.family == family) {
|
||||||
|
qDebug() << item.foundry << item.family << item.path;
|
||||||
|
foundryCurrent = item.foundry;
|
||||||
|
// 判断当前是否为第一个被找到的字体文件
|
||||||
|
if (firstFont) {
|
||||||
|
firstFont = false;
|
||||||
|
foundryLast = item.foundry;
|
||||||
|
}
|
||||||
|
// 比较上一个字体和当前的字体的铸造商是否存在不同
|
||||||
|
if (QString::compare(foundryLast, foundryCurrent) != 0) {
|
||||||
|
isDiffFontExist = true;
|
||||||
|
}
|
||||||
|
if (item.path == path) {
|
||||||
|
foundryTarget = item.foundry;
|
||||||
|
}
|
||||||
|
foundryLast = foundryLast;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (!isDiffFontExist) {
|
||||||
|
fontFamily = family;
|
||||||
|
} else {
|
||||||
|
fontFamily = family + " [" + foundryTarget + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
return this->m_external.applyFont(fontFamily);
|
||||||
}
|
}
|
||||||
|
|
||||||
void Core::slotStart(void)
|
void Core::slotStart(void)
|
||||||
|
@ -331,4 +369,4 @@ bool Core::settingFontTips(bool state)
|
||||||
{
|
{
|
||||||
bool setTips = m_external.setFontIntoList(state);
|
bool setTips = m_external.setFontIntoList(state);
|
||||||
return setTips;
|
return setTips;
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
|
||||||
#include "include/external.h"
|
#include "include/external.h"
|
||||||
|
#include "src/view/globalsizedata.h"
|
||||||
|
|
||||||
#define KYLIN_FONT_VIEWER_GSETTINGS "org.kylin.font.viewer.gsettings"
|
#define KYLIN_FONT_VIEWER_GSETTINGS "org.kylin.font.viewer.gsettings"
|
||||||
#define COLLECT_FONT_KEY "collect-font"
|
#define COLLECT_FONT_KEY "collect-font"
|
||||||
|
@ -10,6 +11,9 @@
|
||||||
#define APPLY_FONT_KEY "system-font"
|
#define APPLY_FONT_KEY "system-font"
|
||||||
#define KYLIN_CONTROL_CENTER_GSETTINGS "org.ukui.control-center"
|
#define KYLIN_CONTROL_CENTER_GSETTINGS "org.ukui.control-center"
|
||||||
#define FONTS_LIST "fonts-list"
|
#define FONTS_LIST "fonts-list"
|
||||||
|
#define KYLIN_GTK_GSTTINGS "org.mate.interface"
|
||||||
|
#define FONT_NAME "font-name"
|
||||||
|
#define DOC_FONT_KEY "document-font-name"
|
||||||
|
|
||||||
External::External()
|
External::External()
|
||||||
{
|
{
|
||||||
|
@ -28,7 +32,13 @@ External::External()
|
||||||
if (QGSettings::isSchemaInstalled(KYLIN_CONTROL_CENTER_GSETTINGS)) {
|
if (QGSettings::isSchemaInstalled(KYLIN_CONTROL_CENTER_GSETTINGS)) {
|
||||||
this->m_contolGsettings = new QGSettings(KYLIN_CONTROL_CENTER_GSETTINGS);
|
this->m_contolGsettings = new QGSettings(KYLIN_CONTROL_CENTER_GSETTINGS);
|
||||||
} else {
|
} else {
|
||||||
qCritical() << "Error : External , External , create theme gsettings fail";
|
qCritical() << "Error : External , External , create control gsettings fail";
|
||||||
|
}
|
||||||
|
|
||||||
|
if (QGSettings::isSchemaInstalled(KYLIN_GTK_GSTTINGS)) {
|
||||||
|
this->m_gtkGsettings = new QGSettings(KYLIN_GTK_GSTTINGS);
|
||||||
|
} else {
|
||||||
|
qCritical() << "Error : External , External , create GTK gsettings fail";
|
||||||
}
|
}
|
||||||
// m_process = new QProcess(this);
|
// m_process = new QProcess(this);
|
||||||
}
|
}
|
||||||
|
@ -44,6 +54,9 @@ External::~External()
|
||||||
if (this->m_contolGsettings != nullptr) {
|
if (this->m_contolGsettings != nullptr) {
|
||||||
delete this->m_contolGsettings;
|
delete this->m_contolGsettings;
|
||||||
}
|
}
|
||||||
|
if (this->m_gtkGsettings != nullptr) {
|
||||||
|
delete this->m_gtkGsettings;
|
||||||
|
}
|
||||||
// if (this->m_process != nullptr) {
|
// if (this->m_process != nullptr) {
|
||||||
// delete this->m_process;
|
// delete this->m_process;
|
||||||
// }
|
// }
|
||||||
|
@ -120,8 +133,22 @@ bool External::applyFont(QString family)
|
||||||
if (setFontIntoList(family) != true) {
|
if (setFontIntoList(family) != true) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
this->m_themeGsettings->set(APPLY_FONT_KEY, family);
|
QString fontStyle = family + " " + QString::number(GlobalSizeData::getInstance()->g_fontSize, 'f', 1);
|
||||||
|
|
||||||
|
this->m_themeGsettings->set(APPLY_FONT_KEY, family);// 改变主题字体
|
||||||
|
this->m_gtkGsettings->set(FONT_NAME, fontStyle); // 改变GTK的字体
|
||||||
|
this->m_gtkGsettings->set(DOC_FONT_KEY, fontStyle); // 改变GTK的文档字体
|
||||||
|
|
||||||
|
const int fontSize = GlobalSizeData::getInstance()->g_fontSize;
|
||||||
|
qDebug() << fontSize;
|
||||||
|
QDBusMessage message =QDBusMessage::createSignal("/KGlobalSettings", "org.kde.KGlobalSettings", "slotFontChange");
|
||||||
|
QList<QVariant> args;
|
||||||
|
args.append(fontSize);
|
||||||
|
args.append(family);
|
||||||
|
message.setArguments(args);
|
||||||
|
QDBusConnection::sessionBus().send(message); // 使用dbus改变GTK标题栏的字体
|
||||||
|
|
||||||
// QString cmd = "ukui-control-center -m fonts";
|
// QString cmd = "ukui-control-center -m fonts";
|
||||||
// m_process->startDetached(cmd);
|
// m_process->startDetached(cmd);
|
||||||
|
|
||||||
|
@ -211,4 +238,4 @@ bool External::setFontIntoList(bool state)
|
||||||
|
|
||||||
this->m_gsettings->set(TIPS_FONT_KEY , state);
|
this->m_gsettings->set(TIPS_FONT_KEY , state);
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -95,7 +95,8 @@ QList<FontInformation> LibFun::getAllFontInformation(void)
|
||||||
|
|
||||||
FcConfig *config = FcInitLoadConfigAndFonts();
|
FcConfig *config = FcInitLoadConfigAndFonts();
|
||||||
FcPattern *pat = FcPatternCreate();
|
FcPattern *pat = FcPatternCreate();
|
||||||
FcObjectSet *os = FcObjectSetBuild(FC_FILE , FC_FAMILY , FC_STYLE , FC_INDEX , NULL);
|
// FcObjectSet *os = FcObjectSetBuild(FC_FILE , FC_FAMILY , FC_STYLE , FC_INDEX , NULL);
|
||||||
|
FcObjectSet *os = FcObjectSetBuild(FC_FILE , FC_FAMILY , FC_STYLE, FC_FOUNDRY, FC_INDEX , NULL); // 构建对象(字体文件路径,字体名,类别,字体铸造商)
|
||||||
|
|
||||||
FcFontSet *fs = FcFontList(config , pat , os);
|
FcFontSet *fs = FcFontList(config , pat , os);
|
||||||
|
|
||||||
|
@ -106,6 +107,7 @@ QList<FontInformation> LibFun::getAllFontInformation(void)
|
||||||
FcChar8 *path = NULL;
|
FcChar8 *path = NULL;
|
||||||
FcChar8 *family = NULL;
|
FcChar8 *family = NULL;
|
||||||
FcChar8 *style = NULL;
|
FcChar8 *style = NULL;
|
||||||
|
FcChar8 *foundry = NULL;
|
||||||
int index;
|
int index;
|
||||||
|
|
||||||
FcPattern *font = fs->fonts[i];
|
FcPattern *font = fs->fonts[i];
|
||||||
|
@ -113,17 +115,19 @@ QList<FontInformation> LibFun::getAllFontInformation(void)
|
||||||
if (FcPatternGetString(font , FC_FILE , 0 , &path) == FcResultMatch &&
|
if (FcPatternGetString(font , FC_FILE , 0 , &path) == FcResultMatch &&
|
||||||
FcPatternGetString(font , FC_FAMILY , 0 , &family) == FcResultMatch &&
|
FcPatternGetString(font , FC_FAMILY , 0 , &family) == FcResultMatch &&
|
||||||
FcPatternGetString(font , FC_STYLE , 0 , &style) == FcResultMatch &&
|
FcPatternGetString(font , FC_STYLE , 0 , &style) == FcResultMatch &&
|
||||||
|
FcPatternGetString(font , FC_FOUNDRY , 0 , &foundry) == FcResultMatch &&
|
||||||
FcPatternGetInteger(font , FC_INDEX , 0 , &index) == FcResultMatch)
|
FcPatternGetInteger(font , FC_INDEX , 0 , &index) == FcResultMatch)
|
||||||
{
|
{
|
||||||
item.path = QString((char *)path);
|
item.path = QString((char *)path);
|
||||||
item.family = QString((char *)family);
|
item.family = QString((char *)family);
|
||||||
item.style = QString((char *)style);
|
item.style = QString((char *)style);
|
||||||
|
item.foundry = QString((char *)foundry);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* 对字体文件进行判断(判断后缀名是否为.ttf .otf)*/
|
/* 对字体文件进行判断(判断后缀名是否为.ttf .otf)*/
|
||||||
if (!chooseFontFile(item.path)) {
|
// if (!chooseFontFile(item.path)) {
|
||||||
continue;
|
// continue;
|
||||||
}
|
// }
|
||||||
|
|
||||||
gchar *fontData = NULL;
|
gchar *fontData = NULL;
|
||||||
gsize fontDataLenth;
|
gsize fontDataLenth;
|
||||||
|
@ -406,19 +410,19 @@ QString LibFun::getFontInfo(QString path)
|
||||||
QString ret;
|
QString ret;
|
||||||
ret.clear();
|
ret.clear();
|
||||||
|
|
||||||
// 判断后缀
|
// // 判断后缀
|
||||||
if (!chooseFontFile(path)) {
|
// if (!chooseFontFile(path)) {
|
||||||
qDebug() << "判断字体文件后缀,字体文件损坏:" <<__FILE__<< ","<<__FUNCTION__<<","<<__LINE__;
|
// qDebug() << "判断字体文件后缀,字体文件损坏:" <<__FILE__<< ","<<__FUNCTION__<<","<<__LINE__;
|
||||||
ret = path;
|
// ret = path;
|
||||||
return ret;
|
// return ret;
|
||||||
}
|
// }
|
||||||
|
|
||||||
// 判断文件type类型
|
// 判断文件type类型
|
||||||
if (isFontFile(path) != true) {
|
// if (isFontFile(path) != true) {
|
||||||
qDebug() << "判断字体文件type类型,字体文件损坏:" <<__FILE__<< ","<<__FUNCTION__<<","<<__LINE__;
|
// qDebug() << "判断字体文件type类型,字体文件损坏:" <<__FILE__<< ","<<__FUNCTION__<<","<<__LINE__;
|
||||||
ret = path;
|
// ret = path;
|
||||||
return ret;
|
// return ret;
|
||||||
}
|
// }
|
||||||
|
|
||||||
std::string str = path.toStdString();
|
std::string str = path.toStdString();
|
||||||
FcChar8* file = (FcChar8*)(str.c_str());
|
FcChar8* file = (FcChar8*)(str.c_str());
|
||||||
|
@ -456,4 +460,4 @@ bool LibFun::isFontFile(QString path)
|
||||||
}
|
}
|
||||||
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
16
src/main.cc
16
src/main.cc
|
@ -6,6 +6,7 @@
|
||||||
#include <QLibraryInfo>
|
#include <QLibraryInfo>
|
||||||
#include <QTranslator>
|
#include <QTranslator>
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
#include <QFileInfo>
|
||||||
|
|
||||||
/* 适配SDK */
|
/* 适配SDK */
|
||||||
#include <singleapplication.h>
|
#include <singleapplication.h>
|
||||||
|
@ -23,10 +24,21 @@ int main(int argc , char *argv[])
|
||||||
::kabase::WindowManage::setScalingProperties();
|
::kabase::WindowManage::setScalingProperties();
|
||||||
|
|
||||||
//加在最上面的原因:防止QApplication将(-title)参数吞掉,导致拿不到
|
//加在最上面的原因:防止QApplication将(-title)参数吞掉,导致拿不到
|
||||||
QString fontFileName;
|
QString fontFileName = "";
|
||||||
if (argc > 1) {
|
if (argc > 1) {
|
||||||
fontFileName = argv[1];
|
for(int i=1; i<argc; i++) {
|
||||||
|
QString fontFile = argv[i];
|
||||||
|
QFileInfo f(fontFile);
|
||||||
|
if(f.isFile())
|
||||||
|
fontFileName = fontFileName + fontFile;
|
||||||
|
|
||||||
|
if (i < (argc - 1)) {
|
||||||
|
fontFileName = fontFileName + "/n/n";
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* 适配4K屏以及分数缩放 */
|
/* 适配4K屏以及分数缩放 */
|
||||||
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
#if (QT_VERSION >= QT_VERSION_CHECK(5, 12, 0))
|
||||||
|
|
|
@ -28,7 +28,7 @@ BasePreviewArea::~BasePreviewArea()
|
||||||
void BasePreviewArea::init()
|
void BasePreviewArea::init()
|
||||||
{
|
{
|
||||||
this->setMinimumWidth(m_width);
|
this->setMinimumWidth(m_width);
|
||||||
this->setMinimumHeight(m_height);
|
// this->setMinimumHeight(m_height);
|
||||||
this->setFocusPolicy(Qt::ClickFocus);
|
this->setFocusPolicy(Qt::ClickFocus);
|
||||||
|
|
||||||
m_previewEdit = new QLineEdit(this); /* 预览编辑框 */
|
m_previewEdit = new QLineEdit(this); /* 预览编辑框 */
|
||||||
|
@ -63,9 +63,25 @@ void BasePreviewArea::init()
|
||||||
|
|
||||||
m_fontSizeSlider->installEventFilter(this);
|
m_fontSizeSlider->installEventFilter(this);
|
||||||
|
|
||||||
|
switch (GlobalSizeData::getInstance()->m_currentMode)
|
||||||
|
{
|
||||||
|
case CurrentMode::PCMode:
|
||||||
|
slotChangePCSize();
|
||||||
|
break;
|
||||||
|
case CurrentMode::HMode:
|
||||||
|
slotChangeFaltSize();
|
||||||
|
break;
|
||||||
|
case CurrentMode::VMode:
|
||||||
|
slotChangeFaltSize();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
connect(m_fontSizeSlider, &QSlider::valueChanged, this, &BasePreviewArea::slotChangSize);
|
connect(m_fontSizeSlider, &QSlider::valueChanged, this, &BasePreviewArea::slotChangSize);
|
||||||
connect(m_previewEdit, &QLineEdit::textChanged, this, &BasePreviewArea::slotPreviewValue);
|
connect(m_previewEdit, &QLineEdit::textChanged, this, &BasePreviewArea::slotPreviewValue);
|
||||||
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontNameChange, this, &BasePreviewArea::slotChangeFontName);
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontNameChange, this, &BasePreviewArea::slotChangeFontName);
|
||||||
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigPCMode, this, &BasePreviewArea::slotChangePCSize);
|
||||||
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigHFlatMode, this, &BasePreviewArea::slotChangeFaltSize);
|
||||||
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigVFlatMode, this, &BasePreviewArea::slotChangeFaltSize);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -146,4 +162,18 @@ void BasePreviewArea::paintEvent(QPaintEvent *event)
|
||||||
p.drawRoundedRect(opt.rect, 0, 0);
|
p.drawRoundedRect(opt.rect, 0, 0);
|
||||||
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
style()->drawPrimitive(QStyle::PE_Widget, &opt, &p, this);
|
||||||
p.fillPath(rectPath, brush);
|
p.fillPath(rectPath, brush);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BasePreviewArea::slotChangeFaltSize()
|
||||||
|
{
|
||||||
|
this->setFixedHeight(80);
|
||||||
|
m_previewEdit->setFixedHeight(60);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void BasePreviewArea::slotChangePCSize()
|
||||||
|
{
|
||||||
|
this->setFixedHeight(50);
|
||||||
|
m_previewEdit->setFixedHeight(40);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -49,6 +49,8 @@ private slots:
|
||||||
public slots:
|
public slots:
|
||||||
void slotChangFont(QString fontName); /* 改变字体 */
|
void slotChangFont(QString fontName); /* 改变字体 */
|
||||||
void slotChangeFontName(); /* 改变字体名称 */
|
void slotChangeFontName(); /* 改变字体名称 */
|
||||||
|
void slotChangeFaltSize();
|
||||||
|
void slotChangePCSize();
|
||||||
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
|
@ -108,4 +108,14 @@ void BlankPage::changeTheme()
|
||||||
QIcon blankIcon = QIcon(":/data/image/dark.svg");
|
QIcon blankIcon = QIcon(":/data/image/dark.svg");
|
||||||
m_blankLabel->setPixmap(blankIcon.pixmap(blankIcon.actualSize(IMAGESIZE)));
|
m_blankLabel->setPixmap(blankIcon.pixmap(blankIcon.actualSize(IMAGESIZE)));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void BlankPage::changeSearchText()
|
||||||
|
{
|
||||||
|
m_blankTextLabel->setText(tr("No Search Results"));
|
||||||
|
}
|
||||||
|
|
||||||
|
void BlankPage::changeBlankText()
|
||||||
|
{
|
||||||
|
m_blankTextLabel->setText(tr("No Font"));
|
||||||
|
}
|
||||||
|
|
|
@ -22,6 +22,8 @@ public:
|
||||||
void initLayout(); /* 设置组件样式 */
|
void initLayout(); /* 设置组件样式 */
|
||||||
void initGsetting();
|
void initGsetting();
|
||||||
void changeTheme();
|
void changeTheme();
|
||||||
|
void changeSearchText(); /* 更改文案 */
|
||||||
|
void changeBlankText(); /* 更改文案 */
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void paintEvent(QPaintEvent *event) override; /* 绘制事件 */
|
void paintEvent(QPaintEvent *event) override; /* 绘制事件 */
|
||||||
|
|
|
@ -12,6 +12,10 @@
|
||||||
QPoint FontListDelegate::m_collectPoint = QPoint(0, 0);
|
QPoint FontListDelegate::m_collectPoint = QPoint(0, 0);
|
||||||
QSize FontListDelegate::m_collectSize = QSize(0, 0);
|
QSize FontListDelegate::m_collectSize = QSize(0, 0);
|
||||||
|
|
||||||
|
const QString COLLECT_ICON_W = QString(":/data/image/ukui-play-love-symbolic-w.svg");
|
||||||
|
const QString COLLECT_ICON_B = QString(":/data/image/ukui-play-love-symbolic-b.svg");
|
||||||
|
const QString COLLECT_ICON_R = QString(":/data/image/ukui-play-love-red.svg");
|
||||||
|
|
||||||
FontListDelegate::FontListDelegate(FontListView *fontList)
|
FontListDelegate::FontListDelegate(FontListView *fontList)
|
||||||
{
|
{
|
||||||
m_fontList = fontList;
|
m_fontList = fontList;
|
||||||
|
@ -159,6 +163,8 @@ void FontListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
|
||||||
painter->drawText(displayRect, fontDisplay, optionText);
|
painter->drawText(displayRect, fontDisplay, optionText);
|
||||||
painter->restore();
|
painter->restore();
|
||||||
|
|
||||||
|
painter->setRenderHints(QPainter::Antialiasing|QPainter::SmoothPixmapTransform);
|
||||||
|
|
||||||
// 收藏图标
|
// 收藏图标
|
||||||
QPoint collectPoint = QPoint(itemRect.right() - 35, itemRect.top() + 15);
|
QPoint collectPoint = QPoint(itemRect.right() - 35, itemRect.top() + 15);
|
||||||
QSize collectSize = QSize(18, 16);
|
QSize collectSize = QSize(18, 16);
|
||||||
|
@ -170,26 +176,68 @@ void FontListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
|
||||||
/* 深浅主题控件样式 */
|
/* 深浅主题控件样式 */
|
||||||
if (GlobalSizeData::THEME_COLOR == GlobalSizeData::UKUILight) {
|
if (GlobalSizeData::THEME_COLOR == GlobalSizeData::UKUILight) {
|
||||||
collectePixmap =
|
collectePixmap =
|
||||||
QPixmap(QIcon(":/data/image/ukui-play-love-symbolic-b.svg").pixmap(collecteRect.size()));
|
QPixmap(QIcon(COLLECT_ICON_B).pixmap(collecteRect.size()));
|
||||||
} else {
|
} else {
|
||||||
collectePixmap =
|
collectePixmap =
|
||||||
QPixmap(QIcon(":/data/image/ukui-play-love-symbolic-w.svg").pixmap(collecteRect.size()));
|
QPixmap(QIcon(COLLECT_ICON_W).pixmap(collecteRect.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
collectePixmap = QPixmap(QIcon(":/data/image/ukui-play-love-red.svg").pixmap(collecteRect.size()));
|
collectePixmap = QPixmap(QIcon(COLLECT_ICON_R).pixmap(collecteRect.size()));
|
||||||
}
|
}
|
||||||
|
|
||||||
painter->drawPixmap(collecteRect, collectePixmap);
|
painter->drawPixmap(collecteRect, collectePixmap);
|
||||||
QColor highLightColor = QApplication::palette().highlight().color();
|
QColor highLightColor = QApplication::palette().highlight().color();
|
||||||
|
QColor lightHoverColor = QColor("#EBEBEB");
|
||||||
|
QColor darkHoverColor = QColor("#333333");
|
||||||
|
|
||||||
// 鼠标悬停/选中,改变背景颜色
|
// 鼠标悬停/选中,改变背景颜色
|
||||||
if (option.state.testFlag(QStyle::State_MouseOver)) {
|
if (option.state.testFlag(QStyle::State_HasFocus) || fontInstall) {
|
||||||
|
FontListDelegate::m_collectPoint = collecteRectF.topLeft().toPoint();
|
||||||
|
FontListDelegate::m_collectSize = collecteRectF.size().toSize();
|
||||||
|
painter->fillPath(path, QBrush(highLightColor));
|
||||||
|
painter->setPen(QPen(Qt::white));
|
||||||
|
|
||||||
|
painter->setFont(QFont(painter->fontInfo().family(), 14));
|
||||||
|
optionText.setAlignment(Qt::AlignLeft | Qt::AlignBottom);
|
||||||
|
painter->drawText(infomationRect, fontInformation, optionText);
|
||||||
|
|
||||||
|
painter->setFont(textFont);
|
||||||
|
optionText.setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
||||||
|
painter->drawText(displayRect, fontDisplay, optionText);
|
||||||
|
|
||||||
|
if (fontCollect == GlobalSizeData::CollectType::NotCollected) {
|
||||||
|
collectePixmap =
|
||||||
|
QPixmap(QIcon(COLLECT_ICON_W).pixmap(collecteRect.size()));
|
||||||
|
} else {
|
||||||
|
collectePixmap = QPixmap(QIcon(COLLECT_ICON_R).pixmap(collecteRect.size()));
|
||||||
|
}
|
||||||
|
painter->drawPixmap(collecteRect, collectePixmap);
|
||||||
|
|
||||||
|
path.setFillRule(Qt::WindingFill);
|
||||||
|
path.addRoundedRect(itemRect, 0, 0);
|
||||||
|
} else if (option.state.testFlag(QStyle::State_MouseOver)) {
|
||||||
FontListDelegate::m_collectPoint = collecteRectF.topLeft().toPoint();
|
FontListDelegate::m_collectPoint = collecteRectF.topLeft().toPoint();
|
||||||
FontListDelegate::m_collectSize = collecteRectF.size().toSize();
|
FontListDelegate::m_collectSize = collecteRectF.size().toSize();
|
||||||
|
|
||||||
painter->fillPath(path, QBrush(highLightColor));
|
if (GlobalSizeData::getInstance()->THEME_COLOR == GlobalSizeData::ThemeColor::UKUILight) {
|
||||||
painter->setPen(QPen(Qt::white));
|
painter->fillPath(path, QBrush(lightHoverColor));
|
||||||
|
painter->setPen(QPen(Qt::black));
|
||||||
|
if (fontCollect == GlobalSizeData::CollectType::NotCollected) {
|
||||||
|
collectePixmap = QPixmap(QIcon(COLLECT_ICON_B).pixmap(collecteRect.size()));
|
||||||
|
} else {
|
||||||
|
collectePixmap = QPixmap(QIcon(COLLECT_ICON_R).pixmap(collecteRect.size()));
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
painter->fillPath(path, QBrush(darkHoverColor));
|
||||||
|
painter->setPen(QPen(Qt::white));
|
||||||
|
if (fontCollect == GlobalSizeData::CollectType::NotCollected) {
|
||||||
|
collectePixmap = QPixmap(QIcon(COLLECT_ICON_W).pixmap(collecteRect.size()));
|
||||||
|
} else {
|
||||||
|
collectePixmap = QPixmap(QIcon(COLLECT_ICON_R).pixmap(collecteRect.size()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
painter->drawPixmap(collecteRect, collectePixmap);
|
||||||
|
|
||||||
painter->setFont(QFont(painter->fontInfo().family(), 14));
|
painter->setFont(QFont(painter->fontInfo().family(), 14));
|
||||||
optionText.setAlignment(Qt::AlignLeft | Qt::AlignBottom);
|
optionText.setAlignment(Qt::AlignLeft | Qt::AlignBottom);
|
||||||
|
@ -199,39 +247,9 @@ void FontListDelegate::paint(QPainter *painter, const QStyleOptionViewItem &opti
|
||||||
optionText.setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
optionText.setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
||||||
painter->drawText(displayRect, fontDisplay, optionText);
|
painter->drawText(displayRect, fontDisplay, optionText);
|
||||||
|
|
||||||
if (fontCollect == GlobalSizeData::CollectType::NotCollected) {
|
|
||||||
collectePixmap =
|
|
||||||
QPixmap(QIcon(":/data/image/ukui-play-love-symbolic-w.svg").pixmap(collecteRect.size()));
|
|
||||||
} else {
|
|
||||||
collectePixmap = QPixmap(QIcon(":/data/image/ukui-play-love-red.svg").pixmap(collecteRect.size()));
|
|
||||||
}
|
|
||||||
painter->drawPixmap(collecteRect, collectePixmap);
|
|
||||||
|
|
||||||
path.setFillRule(Qt::WindingFill);
|
path.setFillRule(Qt::WindingFill);
|
||||||
path.addRoundedRect(itemRect, 0, 0);
|
path.addRoundedRect(itemRect, 0, 0);
|
||||||
|
|
||||||
} else if (option.state.testFlag(QStyle::State_HasFocus) || fontInstall) {
|
|
||||||
painter->fillPath(path, QBrush(highLightColor));
|
|
||||||
painter->setPen(QPen(Qt::white));
|
|
||||||
|
|
||||||
painter->setFont(QFont(painter->fontInfo().family(), 14));
|
|
||||||
optionText.setAlignment(Qt::AlignLeft | Qt::AlignBottom);
|
|
||||||
painter->drawText(infomationRect, fontInformation, optionText);
|
|
||||||
|
|
||||||
painter->setFont(textFont);
|
|
||||||
optionText.setAlignment(Qt::AlignLeft | Qt::AlignTop);
|
|
||||||
painter->drawText(displayRect, fontDisplay, optionText);
|
|
||||||
|
|
||||||
if (fontCollect == GlobalSizeData::CollectType::NotCollected) {
|
|
||||||
collectePixmap =
|
|
||||||
QPixmap(QIcon(":/data/image/ukui-play-love-symbolic-w.svg").pixmap(collecteRect.size()));
|
|
||||||
} else {
|
|
||||||
collectePixmap = QPixmap(QIcon(":/data/image/ukui-play-love-red.svg").pixmap(collecteRect.size()));
|
|
||||||
}
|
|
||||||
painter->drawPixmap(collecteRect, collectePixmap);
|
|
||||||
|
|
||||||
path.setFillRule(Qt::WindingFill);
|
|
||||||
path.addRoundedRect(itemRect, 0, 0);
|
|
||||||
}
|
}
|
||||||
painter->restore();
|
painter->restore();
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,6 +67,9 @@ void FontListView::setSlotConnet()
|
||||||
connect(m_exportFontAction, &QAction::triggered, this, &FontListView::slotExportFont);
|
connect(m_exportFontAction, &QAction::triggered, this, &FontListView::slotExportFont);
|
||||||
connect(m_collectFontAction, &QAction::triggered, this, &FontListView::slotCollectFont);
|
connect(m_collectFontAction, &QAction::triggered, this, &FontListView::slotCollectFont);
|
||||||
connect(m_checkFontAction, &QAction::triggered, this, &FontListView::slotCheckFont);
|
connect(m_checkFontAction, &QAction::triggered, this, &FontListView::slotCheckFont);
|
||||||
|
connect(m_fontModel, &FontListModel::sigGetAllFontOver, this, [=](){
|
||||||
|
m_firstOpen = false;
|
||||||
|
});
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -186,7 +189,11 @@ void FontListView::slotFilterFontByReg(QString fontSearch)
|
||||||
m_fontFilter->setFilterRegExp(QRegExp(fontSearch, Qt::CaseInsensitive, QRegExp::FixedString));
|
m_fontFilter->setFilterRegExp(QRegExp(fontSearch, Qt::CaseInsensitive, QRegExp::FixedString));
|
||||||
|
|
||||||
if (m_fontFilter->rowCount() == 0) {
|
if (m_fontFilter->rowCount() == 0) {
|
||||||
emit sigBlankPage();
|
if (m_fontSearch == "") {
|
||||||
|
emit sigBlankPage();
|
||||||
|
} else {
|
||||||
|
emit sigSearchFontBlankPage();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
emit sigFontPage();
|
emit sigFontPage();
|
||||||
}
|
}
|
||||||
|
@ -230,7 +237,8 @@ void FontListView::slotApplyFont()
|
||||||
// 将过滤index转换为model的index
|
// 将过滤index转换为model的index
|
||||||
QModelIndex fontIndex = m_fontFilter->mapToSource(this->currentIndex());
|
QModelIndex fontIndex = m_fontFilter->mapToSource(this->currentIndex());
|
||||||
QString fontName = fontIndex.data(GlobalSizeData::FontName).toString(); /* 获取字体Path */
|
QString fontName = fontIndex.data(GlobalSizeData::FontName).toString(); /* 获取字体Path */
|
||||||
Core::getInstance()->applyFont(fontName);
|
QString fontPath = fontIndex.data(GlobalSizeData::FontPath).toString();
|
||||||
|
Core::getInstance()->applyFont(fontName, fontPath);
|
||||||
|
|
||||||
this->update();
|
this->update();
|
||||||
|
|
||||||
|
@ -276,7 +284,11 @@ void FontListView::slotCollectFont()
|
||||||
QString fontPath = fontIndex.data(GlobalSizeData::FontPath).toString(); /* 获取字体path */
|
QString fontPath = fontIndex.data(GlobalSizeData::FontPath).toString(); /* 获取字体path */
|
||||||
m_fontModel->collectFont(fontPath);
|
m_fontModel->collectFont(fontPath);
|
||||||
if (m_fontFilter->rowCount() == 0) {
|
if (m_fontFilter->rowCount() == 0) {
|
||||||
emit sigBlankPage();
|
if (m_fontSearch == "") {
|
||||||
|
emit sigBlankPage();
|
||||||
|
} else {
|
||||||
|
emit sigSearchFontBlankPage();
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
emit sigFontPage();
|
emit sigFontPage();
|
||||||
}
|
}
|
||||||
|
@ -360,9 +372,10 @@ bool FontListView::isControlApplyFont()
|
||||||
|
|
||||||
void FontListView::clickFontFileInstall(QStringList fontList)
|
void FontListView::clickFontFileInstall(QStringList fontList)
|
||||||
{
|
{
|
||||||
m_fontList = fontList;
|
addFontByOtherWay(fontList);
|
||||||
|
|
||||||
|
// connect(m_fontModel, &FontListModel::sigGetAllFontOver,this, &FontListView::slotClickFontFile);
|
||||||
|
|
||||||
connect(m_fontModel, &FontListModel::sigGetAllFontOver,this, &FontListView::slotClickFontFile);
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -475,17 +488,53 @@ void FontListView::showFontTips()
|
||||||
|
|
||||||
void FontListView::addFontByOtherWay(QStringList list)
|
void FontListView::addFontByOtherWay(QStringList list)
|
||||||
{
|
{
|
||||||
if (Core::getInstance()->getSettingFontTips()) {
|
for (int i = 0; i < list.size(); i++) {
|
||||||
if (m_popupTips == nullptr) {
|
m_fontList<<list[i];
|
||||||
m_popupTips = new PopupTips(this);
|
}
|
||||||
}
|
if (m_firstOpen) {
|
||||||
m_popupTips->show();
|
connect(m_fontModel, &FontListModel::sigGetAllFontOver, this, [=](){
|
||||||
m_popupTips->disconnect();
|
m_firstOpen = false;
|
||||||
connect(m_popupTips, &PopupTips::signalWidgetClose, [=](){
|
showTipsByClickFontFile();
|
||||||
checkFontFile(list);
|
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
checkFontFile(list);
|
showTipsByClickFontFile();
|
||||||
}
|
}
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FontListView::showTipsByClickFontFile()
|
||||||
|
{
|
||||||
|
if (m_popupBox == nullptr) {
|
||||||
|
m_popupBox = new PopupMessage(this);
|
||||||
|
}
|
||||||
|
m_popupBox->show();
|
||||||
|
m_popupBox->disconnect();
|
||||||
|
connect(m_popupBox, &PopupMessage::signalClickYes, [=](){
|
||||||
|
|
||||||
|
if (Core::getInstance()->getSettingFontTips()) {
|
||||||
|
if (m_popupTips == nullptr) {
|
||||||
|
m_popupTips = new PopupTips(this);
|
||||||
|
}
|
||||||
|
m_popupTips->show();
|
||||||
|
m_popupTips->disconnect();
|
||||||
|
connect(m_popupTips, &PopupTips::signalWidgetClose, [=](){
|
||||||
|
slotClickFontFile();
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
slotClickFontFile();
|
||||||
|
}
|
||||||
|
if (m_popupBox != nullptr) {
|
||||||
|
delete m_popupBox;
|
||||||
|
m_popupBox = nullptr;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
connect(m_popupBox, &PopupMessage::signalClickNo, [=](){
|
||||||
|
m_fontList.clear();
|
||||||
|
if (m_popupBox != nullptr) {
|
||||||
|
delete m_popupBox;
|
||||||
|
m_popupBox = nullptr;
|
||||||
|
}
|
||||||
|
});
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@
|
||||||
#include "popupinstallfail.h"
|
#include "popupinstallfail.h"
|
||||||
#include "popupfontinfo.h"
|
#include "popupfontinfo.h"
|
||||||
#include "popuptips.h"
|
#include "popuptips.h"
|
||||||
|
#include "popupmessage.h"
|
||||||
|
|
||||||
class FontListDelegate;
|
class FontListDelegate;
|
||||||
class FontListView : public QListView
|
class FontListView : public QListView
|
||||||
|
@ -44,6 +45,7 @@ public:
|
||||||
void showFontTips();
|
void showFontTips();
|
||||||
void setFontTips(QStringList list);
|
void setFontTips(QStringList list);
|
||||||
void addFontByOtherWay(QStringList list);
|
void addFontByOtherWay(QStringList list);
|
||||||
|
void showTipsByClickFontFile();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QMenu *m_funcMenu = nullptr; /* 右键菜单 */
|
QMenu *m_funcMenu = nullptr; /* 右键菜单 */
|
||||||
|
@ -63,6 +65,7 @@ private:
|
||||||
PopupInstallFail *m_popupInstallFail = nullptr; /* 安装失败 */
|
PopupInstallFail *m_popupInstallFail = nullptr; /* 安装失败 */
|
||||||
PopupFontInfo *m_popupFontInfo = nullptr; /* 字体信息 */
|
PopupFontInfo *m_popupFontInfo = nullptr; /* 字体信息 */
|
||||||
PopupTips *m_popupTips = nullptr; /* 字体提示 */
|
PopupTips *m_popupTips = nullptr; /* 字体提示 */
|
||||||
|
PopupMessage *m_popupBox = nullptr; /* 安装字体提示 */
|
||||||
|
|
||||||
int m_fontSize = 24; /* 预览初始字号 */
|
int m_fontSize = 24; /* 预览初始字号 */
|
||||||
QString m_previewValue = tr("Build the core strength of Chinese operating system");
|
QString m_previewValue = tr("Build the core strength of Chinese operating system");
|
||||||
|
@ -71,12 +74,14 @@ private:
|
||||||
QStringList m_fontList;
|
QStringList m_fontList;
|
||||||
|
|
||||||
QStringList m_fontInstallList;
|
QStringList m_fontInstallList;
|
||||||
|
bool m_firstOpen = true;
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sigGetAllFont();
|
void sigGetAllFont();
|
||||||
void sigChangeFont(QString fontName);
|
void sigChangeFont(QString fontName);
|
||||||
void sigBlankPage();
|
void sigBlankPage();
|
||||||
void sigFontPage();
|
void sigFontPage();
|
||||||
|
void sigSearchFontBlankPage();
|
||||||
|
|
||||||
public slots:
|
public slots:
|
||||||
void slotFilterFontByReg(QString fontSearch); /* 根据字符串过滤字体 */
|
void slotFilterFontByReg(QString fontSearch); /* 根据字符串过滤字体 */
|
||||||
|
|
|
@ -30,6 +30,7 @@ void FontWidget::setWidgetUi()
|
||||||
// 堆栈窗口
|
// 堆栈窗口
|
||||||
m_stackedWid = new QStackedWidget(this);
|
m_stackedWid = new QStackedWidget(this);
|
||||||
m_blankPage = new BlankPage(this);
|
m_blankPage = new BlankPage(this);
|
||||||
|
m_searchBlankPage = new BlankPage(this);
|
||||||
|
|
||||||
m_fontView = new FontListView();
|
m_fontView = new FontListView();
|
||||||
|
|
||||||
|
@ -42,6 +43,7 @@ void FontWidget::setWidgetUi()
|
||||||
|
|
||||||
m_stackedWid->addWidget(m_blankPage);
|
m_stackedWid->addWidget(m_blankPage);
|
||||||
m_stackedWid->addWidget(m_fontView);
|
m_stackedWid->addWidget(m_fontView);
|
||||||
|
m_stackedWid->addWidget(m_searchBlankPage);
|
||||||
|
|
||||||
m_stackedWid->setCurrentIndex(1);
|
m_stackedWid->setCurrentIndex(1);
|
||||||
|
|
||||||
|
@ -86,6 +88,7 @@ void FontWidget::setSlotConnet()
|
||||||
/* 应用字体 */
|
/* 应用字体 */
|
||||||
connect(m_fontView, &FontListView::sigChangeFont, m_previewArea, &BasePreviewArea::slotChangFont);
|
connect(m_fontView, &FontListView::sigChangeFont, m_previewArea, &BasePreviewArea::slotChangFont);
|
||||||
connect(m_fontView, &FontListView::sigBlankPage, this, &FontWidget::slotShowBlankPage);
|
connect(m_fontView, &FontListView::sigBlankPage, this, &FontWidget::slotShowBlankPage);
|
||||||
|
connect(m_fontView, &FontListView::sigSearchFontBlankPage, this, &FontWidget::slotShowSearchBlankPage);
|
||||||
connect(m_fontView, &FontListView::sigFontPage, this, &FontWidget::slotShowFontPage);
|
connect(m_fontView, &FontListView::sigFontPage, this, &FontWidget::slotShowFontPage);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -182,40 +185,20 @@ void FontWidget::slotWindowState(QString state)
|
||||||
void FontWidget::useFontFileOpen(QString fontFile)
|
void FontWidget::useFontFileOpen(QString fontFile)
|
||||||
{
|
{
|
||||||
qDebug() << "使用字体文件打开:" <<__FILE__<< ","<<__FUNCTION__<<","<<__LINE__;
|
qDebug() << "使用字体文件打开:" <<__FILE__<< ","<<__FUNCTION__<<","<<__LINE__;
|
||||||
/* 添加 安装字体 SDK的打点 */
|
|
||||||
GlobalSizeData::getInstance()->addFontSDKPoint();
|
|
||||||
|
|
||||||
|
QStringList installFontList;
|
||||||
|
installFontList = fontFile.split("/n/n");
|
||||||
QStringList fontList;
|
QStringList fontList;
|
||||||
fontList.clear();
|
for (int i = 0; i < installFontList.size(); i++) {
|
||||||
QStringList unFontList;
|
if (getFontFile(installFontList[i])) {
|
||||||
unFontList.clear();
|
fontList << installFontList[i];
|
||||||
int num = 0;
|
}
|
||||||
|
}
|
||||||
if (fontFile.isEmpty()) {
|
if (fontList.size() == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
m_fontView->clickFontFileInstall(fontList);
|
||||||
|
|
||||||
QFileInfo fileinfo;
|
|
||||||
fileinfo = QFileInfo(fontFile);
|
|
||||||
QString fileName = fileinfo.fileName(); /* 文件名 */
|
|
||||||
|
|
||||||
if (getFontFile(fontFile)) {
|
|
||||||
if (Core::getInstance()->judgeBadFontFile(fontFile)) {
|
|
||||||
unFontList.insert(num, fileName);
|
|
||||||
} else {
|
|
||||||
fontList.insert(num, fontFile);
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
unFontList.insert(num, fileName);
|
|
||||||
}
|
|
||||||
|
|
||||||
if (unFontList.size() != 0) {
|
|
||||||
PopupInstallFail *m_popupInstallFail = new PopupInstallFail(unFontList, this);
|
|
||||||
m_popupInstallFail->show();
|
|
||||||
} else {
|
|
||||||
m_fontView->clickFontFileInstall(fontList);
|
|
||||||
}
|
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -228,9 +211,7 @@ bool FontWidget::getFontFile(QString fileName)
|
||||||
|
|
||||||
if (fileInfo.exists()) {
|
if (fileInfo.exists()) {
|
||||||
if (fileInfo.isFile()) {
|
if (fileInfo.isFile()) {
|
||||||
if (isFontFile(fileName)) {
|
return true;
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
|
@ -238,25 +219,25 @@ bool FontWidget::getFontFile(QString fileName)
|
||||||
|
|
||||||
void FontWidget::cilckFontFile(QString fontFile)
|
void FontWidget::cilckFontFile(QString fontFile)
|
||||||
{
|
{
|
||||||
qDebug() << "点击字体文件安装" <<__FILE__<< ","<<__FUNCTION__<<","<<__LINE__;
|
qDebug() << "点击字体文件安装 fontFile ==" << fontFile <<__FILE__<< ","<<__FUNCTION__<<","<<__LINE__;
|
||||||
|
|
||||||
/* 添加 安装字体 SDK的打点 */
|
/* 添加 安装字体 SDK的打点 */
|
||||||
GlobalSizeData::getInstance()->addFontSDKPoint();
|
// GlobalSizeData::getInstance()->addFontSDKPoint();
|
||||||
|
|
||||||
|
QStringList installFontList;
|
||||||
|
installFontList = fontFile.split("/n/n");
|
||||||
QStringList fontList;
|
QStringList fontList;
|
||||||
fontList.clear();
|
for (int i = 0; i < installFontList.size(); i++) {
|
||||||
QStringList unFontList;
|
if (getFontFile(installFontList[i])) {
|
||||||
unFontList.clear();
|
fontList << installFontList[i];
|
||||||
int num = 0;
|
}
|
||||||
|
}
|
||||||
if (fontFile.isEmpty()) {
|
if (fontList.size() == 0) {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
QStringList installFontList;
|
|
||||||
installFontList.insert(num, fontFile);
|
|
||||||
|
|
||||||
// m_fontView->checkFontFile(installFontList);
|
// m_fontView->checkFontFile(installFontList);
|
||||||
m_fontView->addFontByOtherWay(installFontList);
|
m_fontView->clickFontFileInstall(fontList);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -264,6 +245,7 @@ void FontWidget::cilckFontFile(QString fontFile)
|
||||||
void FontWidget::slotShowBlankPage()
|
void FontWidget::slotShowBlankPage()
|
||||||
{
|
{
|
||||||
m_stackedWid->setCurrentIndex(0);
|
m_stackedWid->setCurrentIndex(0);
|
||||||
|
m_blankPage->changeBlankText();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -271,4 +253,11 @@ void FontWidget::slotShowFontPage()
|
||||||
{
|
{
|
||||||
m_stackedWid->setCurrentIndex(1);
|
m_stackedWid->setCurrentIndex(1);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void FontWidget::slotShowSearchBlankPage()
|
||||||
|
{
|
||||||
|
m_stackedWid->setCurrentIndex(2);
|
||||||
|
m_searchBlankPage->changeSearchText();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -45,6 +45,7 @@ private:
|
||||||
//堆栈窗体
|
//堆栈窗体
|
||||||
QStackedWidget *m_stackedWid;
|
QStackedWidget *m_stackedWid;
|
||||||
BlankPage *m_blankPage = nullptr;
|
BlankPage *m_blankPage = nullptr;
|
||||||
|
BlankPage *m_searchBlankPage = nullptr;
|
||||||
|
|
||||||
int m_fontSize;
|
int m_fontSize;
|
||||||
|
|
||||||
|
@ -56,5 +57,6 @@ public slots:
|
||||||
void slotWindowState(QString state);
|
void slotWindowState(QString state);
|
||||||
void slotShowBlankPage();
|
void slotShowBlankPage();
|
||||||
void slotShowFontPage();
|
void slotShowFontPage();
|
||||||
|
void slotShowSearchBlankPage();
|
||||||
};
|
};
|
||||||
#endif // FONTWIDGET_H
|
#endif // FONTWIDGET_H
|
||||||
|
|
|
@ -16,6 +16,9 @@ GetFontThread::GetFontThread(QList<ViewData> allFontData, QList<ViewData> collec
|
||||||
void GetFontThread::run()
|
void GetFontThread::run()
|
||||||
{
|
{
|
||||||
for (int i = 0; i < m_allFontData.size(); i++) {
|
for (int i = 0; i < m_allFontData.size(); i++) {
|
||||||
|
if (!chooseFontFile(m_allFontData[i].path)) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
if (m_fontItemsHash.contains(m_allFontData[i].path)) {
|
if (m_fontItemsHash.contains(m_allFontData[i].path)) {
|
||||||
continue;
|
continue;
|
||||||
|
@ -48,4 +51,20 @@ void GetFontThread::run()
|
||||||
emit sigCreatItem(m_allFontData[i].path, newItem);
|
emit sigCreatItem(m_allFontData[i].path, newItem);
|
||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool GetFontThread::chooseFontFile(QString path)
|
||||||
|
{
|
||||||
|
QStringList list = path.split(".");
|
||||||
|
QString fontTypeTTF = "ttf";
|
||||||
|
QString fontTypeOTF = "otf";
|
||||||
|
QString fontType = list.at(list.size()-1);
|
||||||
|
|
||||||
|
if (fontType.compare(fontTypeTTF, Qt::CaseInsensitive) == 0) {
|
||||||
|
return true;
|
||||||
|
} else if (fontType.compare(fontTypeOTF, Qt::CaseInsensitive) == 0) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
|
@ -18,6 +18,8 @@ private:
|
||||||
QList<ViewData> m_collectFontData; /* 收藏字体 */
|
QList<ViewData> m_collectFontData; /* 收藏字体 */
|
||||||
QHash<QString, QStandardItem*> m_fontItemsHash; /* 字体hash <字体path, list的item>*/
|
QHash<QString, QStandardItem*> m_fontItemsHash; /* 字体hash <字体path, list的item>*/
|
||||||
int m_fontSize;
|
int m_fontSize;
|
||||||
|
|
||||||
|
bool chooseFontFile(QString path);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void sigCreatItem(QString path, QStandardItem *newItem);
|
void sigCreatItem(QString path, QStandardItem *newItem);
|
||||||
|
|
|
@ -81,12 +81,12 @@ void GlobalSizeData::getSystemTheme()
|
||||||
void GlobalSizeData::getSystemFontSize()
|
void GlobalSizeData::getSystemFontSize()
|
||||||
{
|
{
|
||||||
/* 获取系统初始字体 */
|
/* 获取系统初始字体 */
|
||||||
double systemFontSize = kdk::GsettingMonitor::getSystemFontSize().toDouble();
|
g_fontSize = kdk::GsettingMonitor::getSystemFontSize().toDouble();
|
||||||
qInfo() << "system systemFontSize : " << systemFontSize;
|
qInfo() << "system systemFontSize : " << g_fontSize;
|
||||||
|
|
||||||
g_font14pxToPt = (systemFontSize * (14.00 / 11)) - 3;
|
g_font14pxToPt = (g_fontSize * (14.00 / 11)) - 3;
|
||||||
g_font16pxToPt = (systemFontSize * (16.00 / 11)) - 3;
|
g_font16pxToPt = (g_fontSize * (16.00 / 11)) - 3;
|
||||||
g_font18pxToPt = (systemFontSize * (18.00 / 11)) - 3;
|
g_font18pxToPt = (g_fontSize * (18.00 / 11)) - 3;
|
||||||
|
|
||||||
qDebug() << "Info : system init font : 14 ---> " << g_font14pxToPt << "16 ---> " << g_font16pxToPt << "18 ---> " << g_font16pxToPt;
|
qDebug() << "Info : system init font : 14 ---> " << g_font14pxToPt << "16 ---> " << g_font16pxToPt << "18 ---> " << g_font16pxToPt;
|
||||||
|
|
||||||
|
@ -217,6 +217,7 @@ void GlobalSizeData::getSystemDBusInfo()
|
||||||
{
|
{
|
||||||
m_rotateChange = new RotateChangeInfo(this);
|
m_rotateChange = new RotateChangeInfo(this);
|
||||||
connect(m_rotateChange, &RotateChangeInfo::sigRotationChanged, this, &GlobalSizeData::slotChangeModel);
|
connect(m_rotateChange, &RotateChangeInfo::sigRotationChanged, this, &GlobalSizeData::slotChangeModel);
|
||||||
|
getCurrentMode();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -254,4 +255,4 @@ CurrentMode GlobalSizeData::getCurrentMode()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return m_currentMode;
|
return m_currentMode;
|
||||||
}
|
}
|
||||||
|
|
|
@ -62,7 +62,7 @@ public:
|
||||||
};
|
};
|
||||||
|
|
||||||
double g_transparency; /* 毛玻璃透明度 */
|
double g_transparency; /* 毛玻璃透明度 */
|
||||||
int g_fontSize; /* 字号 */
|
double g_fontSize; /* 字号 */
|
||||||
|
|
||||||
/* 字体监控 */
|
/* 字体监控 */
|
||||||
double g_font14pxToPt;
|
double g_font14pxToPt;
|
||||||
|
|
|
@ -189,11 +189,17 @@ void PopupFontInfo::setWidegtUi()
|
||||||
m_cancelBtn->setFixedHeight(36);
|
m_cancelBtn->setFixedHeight(36);
|
||||||
m_cancelBtn->setText(tr("Cancel"));
|
m_cancelBtn->setText(tr("Cancel"));
|
||||||
|
|
||||||
|
initWidgetStyle();
|
||||||
|
|
||||||
connect(m_cancelBtn, &QPushButton::clicked, this, &PopupFontInfo::slotCancelClick);
|
connect(m_cancelBtn, &QPushButton::clicked, this, &PopupFontInfo::slotCancelClick);
|
||||||
connect(m_continueBtn, &QPushButton::clicked, this, &PopupFontInfo::slotContinueClick);
|
connect(m_continueBtn, &QPushButton::clicked, this, &PopupFontInfo::slotContinueClick);
|
||||||
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontChange, this, &PopupFontInfo::changeFontSize);
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontChange, this, &PopupFontInfo::changeFontSize);
|
||||||
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontNameChange, this, &PopupFontInfo::slotChangeFontName);
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontNameChange, this, &PopupFontInfo::slotChangeFontName);
|
||||||
|
|
||||||
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigPCMode, this, &PopupFontInfo::slotChangePCSize);
|
||||||
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigHFlatMode, this, &PopupFontInfo::slotChangeFaltSize);
|
||||||
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigVFlatMode, this, &PopupFontInfo::slotChangeFaltSize);
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -241,7 +247,8 @@ void PopupFontInfo::setWidLayout()
|
||||||
m_widget->setLayout(m_vGridLayout);
|
m_widget->setLayout(m_vGridLayout);
|
||||||
|
|
||||||
m_scrollArea = new QScrollArea(this);
|
m_scrollArea = new QScrollArea(this);
|
||||||
m_scrollArea->setFixedSize(370, 300);
|
m_scrollArea->setFixedHeight( 300);
|
||||||
|
// m_scrollArea->setFixedSize(370, 300);
|
||||||
m_scrollArea->setWidget(m_widget);
|
m_scrollArea->setWidget(m_widget);
|
||||||
m_scrollArea->setWidgetResizable(true);
|
m_scrollArea->setWidgetResizable(true);
|
||||||
m_scrollArea->setFrameShape(QFrame::NoFrame);
|
m_scrollArea->setFrameShape(QFrame::NoFrame);
|
||||||
|
@ -257,6 +264,7 @@ void PopupFontInfo::setWidLayout()
|
||||||
m_hBtnLayout->addSpacing(10);
|
m_hBtnLayout->addSpacing(10);
|
||||||
m_hBtnLayout->addWidget(m_continueBtn);
|
m_hBtnLayout->addWidget(m_continueBtn);
|
||||||
m_hBtnLayout->setMargin(0);
|
m_hBtnLayout->setMargin(0);
|
||||||
|
m_hBtnLayout->setContentsMargins(0, 0, 24, 0);
|
||||||
|
|
||||||
/* 按钮和组件纵向布局 */
|
/* 按钮和组件纵向布局 */
|
||||||
m_vLayout = new QVBoxLayout();
|
m_vLayout = new QVBoxLayout();
|
||||||
|
@ -272,7 +280,6 @@ void PopupFontInfo::setWidLayout()
|
||||||
m_hMainLayout = new QHBoxLayout();
|
m_hMainLayout = new QHBoxLayout();
|
||||||
m_hMainLayout->addSpacing(24);
|
m_hMainLayout->addSpacing(24);
|
||||||
m_hMainLayout->addLayout(m_vLayout);
|
m_hMainLayout->addLayout(m_vLayout);
|
||||||
m_hMainLayout->addSpacing(24);
|
|
||||||
|
|
||||||
/* 整个窗体布局 */
|
/* 整个窗体布局 */
|
||||||
m_vMainLayout = new QVBoxLayout();
|
m_vMainLayout = new QVBoxLayout();
|
||||||
|
@ -282,6 +289,8 @@ void PopupFontInfo::setWidLayout()
|
||||||
m_vMainLayout->addLayout(m_hMainLayout);
|
m_vMainLayout->addLayout(m_hMainLayout);
|
||||||
m_vMainLayout->addStretch();
|
m_vMainLayout->addStretch();
|
||||||
m_vMainLayout->setMargin(0);
|
m_vMainLayout->setMargin(0);
|
||||||
|
m_vMainLayout->setContentsMargins(0, 0, 0, 20); // 设置外间距
|
||||||
|
|
||||||
this->setLayout(m_vMainLayout);
|
this->setLayout(m_vMainLayout);
|
||||||
|
|
||||||
/* 应用内居中 */
|
/* 应用内居中 */
|
||||||
|
@ -340,4 +349,33 @@ void PopupFontInfo::slotChangeFontName()
|
||||||
{
|
{
|
||||||
this->update();
|
this->update();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PopupFontInfo::initWidgetStyle()
|
||||||
|
{
|
||||||
|
switch (GlobalSizeData::getInstance()->m_currentMode)
|
||||||
|
{
|
||||||
|
case CurrentMode::PCMode:
|
||||||
|
slotChangePCSize();
|
||||||
|
break;
|
||||||
|
case CurrentMode::HMode:
|
||||||
|
slotChangeFaltSize();
|
||||||
|
break;
|
||||||
|
case CurrentMode::VMode:
|
||||||
|
slotChangeFaltSize();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupFontInfo::slotChangeFaltSize()
|
||||||
|
{
|
||||||
|
this->setFixedSize(410, 500);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupFontInfo::slotChangePCSize()
|
||||||
|
{
|
||||||
|
this->setFixedSize(410, 470);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
|
@ -22,6 +22,7 @@ public:
|
||||||
void setWidegtUi();
|
void setWidegtUi();
|
||||||
void setWidLayout();
|
void setWidLayout();
|
||||||
void changeFontSize();
|
void changeFontSize();
|
||||||
|
void initWidgetStyle();
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BasePopupTitle *m_titleBar = nullptr;
|
BasePopupTitle *m_titleBar = nullptr;
|
||||||
|
@ -70,6 +71,8 @@ public slots:
|
||||||
void slotContinueClick();
|
void slotContinueClick();
|
||||||
void slotCancelClick();
|
void slotCancelClick();
|
||||||
void slotChangeFontName();
|
void slotChangeFontName();
|
||||||
|
void slotChangeFaltSize();
|
||||||
|
void slotChangePCSize();
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // POPUPFONTINFO_H
|
#endif // POPUPFONTINFO_H
|
||||||
|
|
|
@ -48,7 +48,8 @@ void PopupInstallFail::setWidgetUi()
|
||||||
"QPushButton:Pressed{border:0px;border-radius:4px;background:transparent;}";
|
"QPushButton:Pressed{border:0px;border-radius:4px;background:transparent;}";
|
||||||
m_tipIcon->setStyleSheet(btnStyle);
|
m_tipIcon->setStyleSheet(btnStyle);
|
||||||
|
|
||||||
m_tipText->setFixedSize(300, 55);
|
// m_tipText->setFixedSize(300, 55);
|
||||||
|
m_tipText->setFixedWidth(300);
|
||||||
m_tipText->setText(tr("There is a problem with the font file. Installation failed!"));
|
m_tipText->setText(tr("There is a problem with the font file. Installation failed!"));
|
||||||
m_tipText->adjustSize();
|
m_tipText->adjustSize();
|
||||||
m_tipText->setWordWrap(true);
|
m_tipText->setWordWrap(true);
|
||||||
|
@ -104,7 +105,7 @@ void PopupInstallFail::setWidgetUi()
|
||||||
m_fontListWid->setDragEnabled(false);
|
m_fontListWid->setDragEnabled(false);
|
||||||
|
|
||||||
this->setFixedWidth(380);
|
this->setFixedWidth(380);
|
||||||
this->setFixedHeight(200 + m_fontListWid->height());
|
this->setFixedHeight(150 + m_fontListWid->height() + m_tipText->height());
|
||||||
|
|
||||||
connect(m_continueBtn, &QPushButton::clicked, this, &PopupInstallFail::slotContinueClick);
|
connect(m_continueBtn, &QPushButton::clicked, this, &PopupInstallFail::slotContinueClick);
|
||||||
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontChange, this, &PopupInstallFail::changeFontSize);
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontChange, this, &PopupInstallFail::changeFontSize);
|
||||||
|
@ -118,10 +119,17 @@ void PopupInstallFail::setWidLayout()
|
||||||
m_hMainLayout = new QHBoxLayout();
|
m_hMainLayout = new QHBoxLayout();
|
||||||
m_hBtnLayout = new QHBoxLayout();
|
m_hBtnLayout = new QHBoxLayout();
|
||||||
m_hTipLayout = new QHBoxLayout();
|
m_hTipLayout = new QHBoxLayout();
|
||||||
|
m_vIconLayout = new QVBoxLayout();
|
||||||
m_vLayout = new QVBoxLayout();
|
m_vLayout = new QVBoxLayout();
|
||||||
|
|
||||||
|
// m_vIconLayout->setMargin(0);
|
||||||
|
// m_vIconLayout->setSpacing(0);
|
||||||
|
m_vIconLayout->addWidget(m_tipIcon);
|
||||||
|
m_vIconLayout->addStretch();
|
||||||
|
|
||||||
/* 提示横向布局 */
|
/* 提示横向布局 */
|
||||||
m_hTipLayout->addWidget(m_tipIcon);
|
// m_hTipLayout->addWidget(m_tipIcon);
|
||||||
|
m_hTipLayout->addLayout(m_vIconLayout);
|
||||||
m_hTipLayout->addSpacing(10);
|
m_hTipLayout->addSpacing(10);
|
||||||
m_hTipLayout->addWidget(m_tipText);
|
m_hTipLayout->addWidget(m_tipText);
|
||||||
m_hTipLayout->addStretch();
|
m_hTipLayout->addStretch();
|
||||||
|
@ -130,10 +138,11 @@ void PopupInstallFail::setWidLayout()
|
||||||
m_hBtnLayout->addStretch();
|
m_hBtnLayout->addStretch();
|
||||||
m_hBtnLayout->addWidget(m_continueBtn);
|
m_hBtnLayout->addWidget(m_continueBtn);
|
||||||
m_hBtnLayout->setMargin(0);
|
m_hBtnLayout->setMargin(0);
|
||||||
|
m_hBtnLayout->setSpacing(0);
|
||||||
|
|
||||||
/* 按钮和组件纵向布局 */
|
/* 按钮和组件纵向布局 */
|
||||||
m_vLayout->addLayout(m_hTipLayout);
|
m_vLayout->addLayout(m_hTipLayout);
|
||||||
m_vLayout->addSpacing(7);
|
m_vLayout->addSpacing(10);
|
||||||
m_vLayout->addWidget(m_fontListWid);
|
m_vLayout->addWidget(m_fontListWid);
|
||||||
m_vLayout->addSpacing(24);
|
m_vLayout->addSpacing(24);
|
||||||
m_vLayout->addLayout(m_hBtnLayout);
|
m_vLayout->addLayout(m_hBtnLayout);
|
||||||
|
@ -166,6 +175,7 @@ void PopupInstallFail::changeFontSize()
|
||||||
font14.setPointSizeF(GlobalSizeData::getInstance()->g_font14pxToPt);
|
font14.setPointSizeF(GlobalSizeData::getInstance()->g_font14pxToPt);
|
||||||
m_tipText->setFont(font14);
|
m_tipText->setFont(font14);
|
||||||
m_continueBtn->setFont(font14);
|
m_continueBtn->setFont(font14);
|
||||||
|
this->setFixedHeight(150 + m_fontListWid->height() + m_tipText->height());
|
||||||
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -182,4 +192,4 @@ void PopupInstallFail::closeEvent(QCloseEvent *event)
|
||||||
emit signalWidgetClose();
|
emit signalWidgetClose();
|
||||||
event->ignore(); // 忽略不结束进程
|
event->ignore(); // 忽略不结束进程
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
|
@ -33,6 +33,7 @@ private:
|
||||||
QPushButton *m_continueBtn = nullptr;
|
QPushButton *m_continueBtn = nullptr;
|
||||||
|
|
||||||
QVBoxLayout *m_vLayout = nullptr;
|
QVBoxLayout *m_vLayout = nullptr;
|
||||||
|
QVBoxLayout *m_vIconLayout = nullptr;
|
||||||
QHBoxLayout *m_hTipLayout = nullptr;
|
QHBoxLayout *m_hTipLayout = nullptr;
|
||||||
QHBoxLayout *m_hBtnLayout = nullptr;
|
QHBoxLayout *m_hBtnLayout = nullptr;
|
||||||
QVBoxLayout *m_vMainLayout = nullptr;
|
QVBoxLayout *m_vMainLayout = nullptr;
|
||||||
|
|
|
@ -0,0 +1,135 @@
|
||||||
|
/* 适配组内SDK */
|
||||||
|
#include "windowmanage.hpp"
|
||||||
|
|
||||||
|
#include "popupmessage.h"
|
||||||
|
#include "globalsizedata.h"
|
||||||
|
#include "mainview.h"
|
||||||
|
|
||||||
|
PopupMessage::PopupMessage(QWidget *parent) : QWidget(parent)
|
||||||
|
{
|
||||||
|
setWidgetUi();
|
||||||
|
changeFontSize();
|
||||||
|
}
|
||||||
|
|
||||||
|
PopupMessage::~PopupMessage()
|
||||||
|
{
|
||||||
|
if (m_titleBar != nullptr) {
|
||||||
|
delete m_titleBar;
|
||||||
|
m_titleBar = nullptr;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupMessage::setWidgetUi()
|
||||||
|
{
|
||||||
|
this->setFixedSize(400, 200);
|
||||||
|
this->setWindowFlag(Qt::Tool);
|
||||||
|
this->setWindowModality(Qt::WindowModal);
|
||||||
|
this->setWindowModality(Qt::ApplicationModal);
|
||||||
|
this->setAutoFillBackground(true);
|
||||||
|
this->setBackgroundRole(QPalette::Base);
|
||||||
|
this->setAttribute(Qt::WA_DeleteOnClose,true);
|
||||||
|
|
||||||
|
/* 适配kysdk的窗管 */
|
||||||
|
::kabase::WindowManage::removeHeader(this);
|
||||||
|
|
||||||
|
m_titleBar = new BasePopupTitle();
|
||||||
|
m_tipText = new QLabel(this);
|
||||||
|
m_noBtn = new QPushButton(this);
|
||||||
|
m_yesBtn = new QPushButton(this);
|
||||||
|
m_vMainLayout = new QVBoxLayout();
|
||||||
|
m_hMainLayout = new QHBoxLayout();
|
||||||
|
m_vLayout = new QVBoxLayout();
|
||||||
|
m_hLayout = new QHBoxLayout();
|
||||||
|
|
||||||
|
/* 按钮横向布局 */
|
||||||
|
m_hLayout->addStretch();
|
||||||
|
m_hLayout->addWidget(m_yesBtn);
|
||||||
|
m_hLayout->addWidget(m_noBtn);
|
||||||
|
|
||||||
|
/* 按钮和组件纵向布局 */
|
||||||
|
m_vLayout->addWidget(m_tipText);
|
||||||
|
m_vLayout->addStretch();
|
||||||
|
m_vLayout->addLayout(m_hLayout);
|
||||||
|
m_vLayout->setSpacing(20);
|
||||||
|
m_vLayout->setMargin(0);
|
||||||
|
|
||||||
|
/* 组件居中 */
|
||||||
|
m_hMainLayout->addStretch();
|
||||||
|
m_hMainLayout->addLayout(m_vLayout);
|
||||||
|
m_hMainLayout->addStretch();
|
||||||
|
|
||||||
|
/* 整个窗体布局 */
|
||||||
|
m_vMainLayout->setSpacing(0);
|
||||||
|
m_vMainLayout->addWidget(m_titleBar);
|
||||||
|
m_vMainLayout->addSpacing(16);
|
||||||
|
m_vMainLayout->addLayout(m_hMainLayout);
|
||||||
|
m_vMainLayout->addSpacing(16);
|
||||||
|
// m_vMainLayout->addStretch();
|
||||||
|
m_vMainLayout->setMargin(0);
|
||||||
|
this->setLayout(m_vMainLayout);
|
||||||
|
|
||||||
|
m_tips = tr("Do you want to install the selected files?");
|
||||||
|
m_tipText->setFixedWidth(332);
|
||||||
|
m_tipText->setText(m_tips);
|
||||||
|
m_tipText->setMargin(0);
|
||||||
|
m_tipText->setAlignment(Qt::AlignTop);
|
||||||
|
m_tipText->adjustSize();
|
||||||
|
m_tipText->setWordWrap(true);
|
||||||
|
|
||||||
|
m_yesBtn->setFixedHeight(45);
|
||||||
|
m_yesBtn->setText(tr("Yes"));
|
||||||
|
m_yesBtn->setProperty("isImportant", true);
|
||||||
|
m_noBtn->setFixedHeight(45);
|
||||||
|
m_noBtn->setText(tr("No"));
|
||||||
|
|
||||||
|
// 应用内居中
|
||||||
|
this->move(MainView::getInstance()->geometry().center() - this->rect().center());
|
||||||
|
|
||||||
|
connect(m_yesBtn, &QPushButton::clicked, this, &PopupMessage::slotSureClick);
|
||||||
|
connect(m_noBtn, &QPushButton::clicked, this, &PopupMessage::slotNoClick);
|
||||||
|
connect(GlobalSizeData::getInstance(), &GlobalSizeData::sigFontChange, this, &PopupMessage::changeFontSize);
|
||||||
|
|
||||||
|
changeFontSize();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupMessage::changeFontSize()
|
||||||
|
{
|
||||||
|
QFont font14;
|
||||||
|
font14.setPointSizeF(GlobalSizeData::getInstance()->g_font14pxToPt);
|
||||||
|
m_tipText->setFont(font14);
|
||||||
|
m_yesBtn->setFont(font14);
|
||||||
|
m_noBtn->setFont(font14);
|
||||||
|
|
||||||
|
// QFontMetrics fontmts = QFontMetrics(font14);
|
||||||
|
// QString text = m_tips;
|
||||||
|
// if (fontmts.width(m_tips) > m_tipText->width()) {
|
||||||
|
// m_tipText->setToolTip(m_tips);
|
||||||
|
// text = fontmts.elidedText(text, Qt::ElideRight, m_tipText->width());
|
||||||
|
// }
|
||||||
|
// m_tipText->setText(text);
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupMessage::slotSureClick()
|
||||||
|
{
|
||||||
|
this->hide();
|
||||||
|
emit signalClickYes();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupMessage::slotNoClick()
|
||||||
|
{
|
||||||
|
this->window()->close();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
void PopupMessage::closeEvent(QCloseEvent *event)
|
||||||
|
{
|
||||||
|
this->hide();
|
||||||
|
emit signalClickNo();
|
||||||
|
event->ignore(); // 忽略不结束进程
|
||||||
|
|
||||||
|
return;
|
||||||
|
}
|
|
@ -0,0 +1,49 @@
|
||||||
|
#ifndef POPUPMESSAGE_H
|
||||||
|
#define POPUPMESSAGE_H
|
||||||
|
|
||||||
|
#include <QWidget>
|
||||||
|
#include <QPushButton>
|
||||||
|
#include <QLabel>
|
||||||
|
#include <QVBoxLayout>
|
||||||
|
#include <QHBoxLayout>
|
||||||
|
#include <QCheckBox>
|
||||||
|
|
||||||
|
#include "basepopuptitle.h"
|
||||||
|
#include "include/core.h"
|
||||||
|
|
||||||
|
/* 字体提示弹窗 */
|
||||||
|
class PopupMessage: public QWidget
|
||||||
|
{
|
||||||
|
Q_OBJECT
|
||||||
|
public:
|
||||||
|
PopupMessage(QWidget *parent = nullptr);
|
||||||
|
~PopupMessage();
|
||||||
|
void setWidgetUi();
|
||||||
|
void changeFontSize();
|
||||||
|
|
||||||
|
private:
|
||||||
|
BasePopupTitle *m_titleBar = nullptr; /* 标题栏 */
|
||||||
|
QLabel *m_tipText = nullptr; /* 提示信息 */
|
||||||
|
QPushButton *m_yesBtn = nullptr; /* 确认按钮 */
|
||||||
|
QPushButton *m_noBtn = nullptr; /* 确认按钮 */
|
||||||
|
QVBoxLayout *m_vMainLayout = nullptr;
|
||||||
|
QHBoxLayout *m_hMainLayout = nullptr;
|
||||||
|
QVBoxLayout *m_vLayout = nullptr;
|
||||||
|
QHBoxLayout *m_hLayout = nullptr;
|
||||||
|
|
||||||
|
QString m_tips;
|
||||||
|
|
||||||
|
protected:
|
||||||
|
void closeEvent(QCloseEvent *event) override;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void signalWidgetClose();
|
||||||
|
void signalClickYes();
|
||||||
|
void signalClickNo();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void slotSureClick();
|
||||||
|
void slotNoClick();
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
|
@ -22,7 +22,7 @@ TitleBar::~TitleBar() {}
|
||||||
|
|
||||||
void TitleBar::init()
|
void TitleBar::init()
|
||||||
{
|
{
|
||||||
this->setMinimumHeight(46);
|
// this->setMinimumHeight(40);
|
||||||
|
|
||||||
m_addFontBtn = new QPushButton(this);
|
m_addFontBtn = new QPushButton(this);
|
||||||
// m_searchArea = new BaseSearchEdit();
|
// m_searchArea = new BaseSearchEdit();
|
||||||
|
@ -103,7 +103,6 @@ void TitleBar::initWidgetStyle()
|
||||||
void TitleBar::initMenu()
|
void TitleBar::initMenu()
|
||||||
{
|
{
|
||||||
// 菜单按钮
|
// 菜单按钮
|
||||||
m_menuBtn->setFixedSize(BTN_SIZE);
|
|
||||||
m_menuBtn->setIcon(QIcon::fromTheme("open-menu-symbolic"));
|
m_menuBtn->setIcon(QIcon::fromTheme("open-menu-symbolic"));
|
||||||
m_menuBtn->setIconSize(QSize(16, 16));
|
m_menuBtn->setIconSize(QSize(16, 16));
|
||||||
m_menuBtn->setProperty("isWindowButton", 0x1);
|
m_menuBtn->setProperty("isWindowButton", 0x1);
|
||||||
|
@ -111,7 +110,7 @@ void TitleBar::initMenu()
|
||||||
m_menuBtn->setPopupMode(QToolButton::InstantPopup);
|
m_menuBtn->setPopupMode(QToolButton::InstantPopup);
|
||||||
m_menuBtn->setAutoRaise(true);
|
m_menuBtn->setAutoRaise(true);
|
||||||
m_menuBtn->setContentsMargins(4, 0, 4, 0);
|
m_menuBtn->setContentsMargins(4, 0, 4, 0);
|
||||||
m_menuBtn->setToolTip(tr("Menu"));
|
m_menuBtn->setToolTip(tr("Options"));
|
||||||
|
|
||||||
// 创建Action
|
// 创建Action
|
||||||
QAction *actionHelp = new QAction(m_menu);
|
QAction *actionHelp = new QAction(m_menu);
|
||||||
|
@ -133,9 +132,7 @@ void TitleBar::initLayout()
|
||||||
{
|
{
|
||||||
// 整体布局
|
// 整体布局
|
||||||
m_hlayout = new QHBoxLayout();
|
m_hlayout = new QHBoxLayout();
|
||||||
m_hlayout->setContentsMargins(4, 4, 4, 4);
|
|
||||||
m_hlayout->setSpacing(0);
|
m_hlayout->setSpacing(0);
|
||||||
m_hlayout->addSpacing(6);
|
|
||||||
m_hlayout->addWidget(m_addFontBtn);
|
m_hlayout->addWidget(m_addFontBtn);
|
||||||
m_hlayout->addStretch();
|
m_hlayout->addStretch();
|
||||||
m_hlayout->addWidget(m_searchArea);
|
m_hlayout->addWidget(m_searchArea);
|
||||||
|
@ -144,6 +141,7 @@ void TitleBar::initLayout()
|
||||||
m_hlayout->addWidget(m_minBtn);
|
m_hlayout->addWidget(m_minBtn);
|
||||||
m_hlayout->addWidget(m_maxBtn);
|
m_hlayout->addWidget(m_maxBtn);
|
||||||
m_hlayout->addWidget(m_closeBtn);
|
m_hlayout->addWidget(m_closeBtn);
|
||||||
|
m_hlayout->setContentsMargins(10, 4, 5, 4);
|
||||||
|
|
||||||
this->setLayout(m_hlayout);
|
this->setLayout(m_hlayout);
|
||||||
return;
|
return;
|
||||||
|
@ -318,4 +316,4 @@ void TitleBar::slotChangePCSize()
|
||||||
m_searchArea->setFixedSize(SEARCH_SIZE);
|
m_searchArea->setFixedSize(SEARCH_SIZE);
|
||||||
m_maxBtn->show();
|
m_maxBtn->show();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue