1
0
mirror of https://gitee.com/drabel/LibQQt.git synced 2025-01-04 10:18:44 +08:00
LibQQt/examples/qqtframe/qqtapp.cpp
2018-07-21 19:37:59 +08:00

159 lines
4.2 KiB
C++
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

#include "qqtapp.h"
#include "qqt-qt.h"
#include "qqtversion.h"
#include "qqtgui.h"
#include "qqtcore.h"
#include "qqtmsgbox.h"
#include "qqtframe.h"
#include "qqttcpclient.h"
#include "qqttcpserver.h"
#include "qqtserialport.h"
#include "qqtpluginwatcher.h"
/*
* 转移到Lan协议当中去。
*/
void QQTLanServer ( QObject* parent = 0 )
{
static QQtTcpServer* s = new QQtTcpServer ( parent );
s->listen ( QHostAddress::Any, 8000 );
//s->installedProtocol();
}
QQTApp::QQTApp ( int& argc, char** argv ) : QApplication ( argc, argv )
{
#if QT_VERSION < QT_VERSION_CHECK(5,0,0)
QTextCodec::setCodecForTr ( QTextCodec::codecForName ( "UTF-8" ) );
QTextCodec::setCodecForCStrings ( QTextCodec::codecForName ( "UTF-8" ) );
#endif
QTextCodec::setCodecForLocale ( QTextCodec::codecForName ( "UTF-8" ) );
QApplication::setOrganizationName ( "qqtframe" );
QApplication::setOrganizationDomain ( "www.qqtframe.com" ); // 专为Mac OS X 准备的
QApplication::setApplicationName ( "QQtFrame" );
QSettings::setPath ( QSettings::NativeFormat, QSettings::UserScope, CONFIG_PATH );
QSettings::setPath ( QSettings::NativeFormat, QSettings::SystemScope, CONFIG_PATH );
system ( "rm -f /tmp/LCK..ttyS*" );
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
/*
* 打印失真与否与此处无关
*/
QApplication::setGraphicsSystem ( "raster" );
#endif
#ifdef __EMBEDDED_LINUX__
//QApplication::setOverrideCursor(Qt::ArrowCursor);
QWSServer::setCursorVisible ( false );
#endif
#ifdef __EMBEDDED_LINUX__
QFontDatabase db;
#if 0
int heitiFontID = db.addApplicationFont ( "/usr/lib/fonts/heiti.ttf" );
QString heiti = db.applicationFontFamilies ( heitiFontID ).at ( 0 );
pline() << heiti;
#else
int wenquanyiFontID = db.addApplicationFont ( "/usr/lib/fonts/wenquanyi.ttf" );
QString wenquanyi = db.applicationFontFamilies ( wenquanyiFontID ).at ( 0 );
pline() << wenquanyi;
#endif
QFont font ( wenquanyi, 11 );
QApplication::setFont ( font );
#endif
pline() << qApp->applicationDirPath();
language = new QTranslator ( this );
setLanguage();
#if 0
/*
* 打开方法数据库
*/
managerDB = newDatabaseConn();
setDatabaseName ( managerDB, DB_MANAGER );
#endif
#if 1
/*
* Could not parse application stylesheet 告警 可以忽略
* 关于选中项的颜色暂且按照默认后来更改整体UI颜色和效果
* 可以实现橙色一行选中
* 肯定也能实现表头透明和QQT效果。
*/
QFile styleFile ( "./skin/default.qss" );
styleFile.open ( QIODevice::ReadOnly );
QString styleString ( styleFile.readAll() );;
styleFile.close();
setStyleSheet ( styleString );
/*
* 设置所有默认颜色
*/
//setPalette(QPalette(QColor("#F0F0F0")));
#endif
qsrand ( QTime ( 0, 0, 0 ).secsTo ( QTime::currentTime() ) );
#ifdef __PLUGINSUPPORT__
QObject::connect ( QQtPluginWatcher::Instance(), SIGNAL ( storageChanged ( int ) ),
this, SLOT ( slotUPanAutoRun ( int ) ) );
#endif
//QQtTcpClient
//QQTCloudClientInstance(this);
#ifdef __EMBEDDED_LINUX__
//QQTEthManager
QQtEthenetManager::Instance ( this );
#endif
//QQtTcpServer
//QQTPeerPort
//QQTPeerPortInstance(this);
//QQtSerialPort
//QQTUserSerialPortInstance(this);
}
QQTApp::~QQTApp() {}
void QQTApp::setLanguage()
{
/*
* 公司或组织名
* 应用程序名
*/
QSettings setting;
QString qm;
qm = setting.value ( "Language" ).toInt() ? "./lang/en_US.qm" : "./lang/zh_CN.qm";
language->load ( qm );
pline() << "currentLanguage" << qm;
installTranslator ( language );
}
void QQTApp::slotUPanAutoRun ( int status )
{
#ifdef __PLUGINSUPPORT__
if ( QQtPluginWatcher::E_ADD == status )
{
QString mP = QQtPluginWatcher::Instance()->upanMountPath();
QString app = QString ( "%1/autorun.sh" ).arg ( mP );
QFile file ( app );
if ( file.exists() )
if ( QDialog::Rejected == QQtMsgBox::question ( 0, tr ( "Some app want to run in u disk!accepted?" ) ) )
return;
QProcess* p = new QProcess ( this );
p->setWorkingDirectory ( mP );
p->start ( app );
}
#else
#endif
}