Files
BPI-M2C/source_sync_rls_25c/source/unisoc/graphic/qtlauncher/main.cpp
T
2026-09-22 09:38:26 +08:00

79 lines
2.2 KiB
C++

/*
* SPDX-FileCopyrightText: 2023 Unisoc (Shanghai) Technologies Co., Ltd.
*
* SPDX-License-Identifier: LicenseRef-Unisoc-General-1.0
*/
#include "mainwindow.h"
#include "appmanager.h"
#include <QApplication>
#include <QFontDatabase>
#include <QtGlobal>
#include <QString>
#include <QByteArray>
#include <QDebug>
#include <QScreen>
#include <cstdio>
#include <syslog.h>
// Handler for Qt log messages that sends output to syslog as well as standard error.
void SyslogMessageHandler(QtMsgType type, const QMessageLogContext &context, const QString &msg)
{
Q_UNUSED(context)
QByteArray localMsg = msg.toLocal8Bit();
switch (type) {
case QtDebugMsg:
syslog(LOG_DEBUG, "(debug): %s", localMsg.constData());
break;
case QtInfoMsg:
syslog(LOG_INFO, "(info): %s", localMsg.constData());
break;
case QtWarningMsg:
syslog(LOG_WARNING, "(warning): %s", localMsg.constData());
break;
case QtCriticalMsg:
syslog(LOG_CRIT, "(critical): %s", localMsg.constData());
break;
case QtFatalMsg:
syslog(LOG_ALERT, "(alert): %s", localMsg.constData());
break;
}
}
static QString fontpath = "/usr/share/fonts/ttf/LiberationMono-Regular.ttf";
int main(int argc, char *argv[])
{
// Install our message handler.
qInstallMessageHandler(SyslogMessageHandler);
QApplication a(argc, argv);
QRect rect = QGuiApplication::primaryScreen()->geometry();
int width = rect.size().width();
int height = rect.size().height();
qDebug() << width << height;
int index = QFontDatabase::addApplicationFont(fontpath);
if (index == -1) {
qDebug("Cannot open font ttf");
} else {
QString family = QFontDatabase::applicationFontFamilies(index).at(0);
QFont afont(family);
if(width > 480 && height > 720){
afont.setPixelSize(24);
}
a.setFont(afont);
}
MainWindow w;
w.setWindowFlags(Qt::Dialog|Qt::FramelessWindowHint|Qt::WindowStaysOnBottomHint);
//w.setWindowFlags(Qt::Dialog|Qt::WindowMaximizeButtonHint);
w.setWindowState(Qt::WindowMaximized);
w.show();
return a.exec();
}