From 7c74b4dcf7b4fe833480cb6cab7c3ad84399b65c Mon Sep 17 00:00:00 2001 From: KnCRJNET Date: Fri, 23 May 2025 19:45:29 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=B0=86=E9=A1=B9=E7=9B=AE=E7=AE=80?= =?UTF-8?q?=E5=8D=95=E5=9C=B0=E8=BF=81=E7=A7=BB=E5=88=B0=E4=BA=86Qt6=20?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E4=BA=86=E9=80=80=E5=87=BA=E6=97=B6=E9=80=92?= =?UTF-8?q?=E5=BD=92=E8=B0=83=E7=94=A8=E5=AF=BC=E8=87=B4=E6=A0=88=E6=BA=A2?= =?UTF-8?q?=E5=87=BA=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 5 ++++- dogcom.cpp | 4 ++-- main.cpp | 2 +- mainwindow.cpp | 12 +++++++----- mainwindow.h | 4 ++-- mainwindow.ui | 12 ++++++------ singleinstance/singleapplication.cpp | 8 +++++--- 7 files changed, 27 insertions(+), 20 deletions(-) diff --git a/.gitignore b/.gitignore index e61c916..47a6527 100644 --- a/.gitignore +++ b/.gitignore @@ -47,4 +47,7 @@ CMakeLists.txt.user* .vs .vscode *.code-workspace -*.zip \ No newline at end of file +*.zip + +# Build +build/ \ No newline at end of file diff --git a/dogcom.cpp b/dogcom.cpp index d9e0de6..d12cdd7 100644 --- a/dogcom.cpp +++ b/dogcom.cpp @@ -45,7 +45,7 @@ void DogCom::run() // qDebug()<<"account:"< #include #include -#include +#include #include #include #include "constants.h" @@ -15,6 +15,7 @@ #include #include #include +#include MainWindow::MainWindow(SingleApplication *parentApp, QWidget *parent) : QDialog(parent), @@ -94,7 +95,7 @@ MainWindow::MainWindow(SingleApplication *parentApp, QWidget *parent) : this, &MainWindow::HandleIpAddress); // 验证手动输入的mac地址 - macValidator = new QRegExpValidator(QRegExp("[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}")); + macValidator = new QRegularExpressionValidator(QRegularExpression("[0-9a-fA-F]{2}(:[0-9a-fA-F]{2}){5}"), this); ui->lineEditMAC->setValidator(macValidator); // 尚未登录 不可注销 @@ -158,8 +159,8 @@ void MainWindow::RestartDrcom() void MainWindow::QuitDrcom() { // 退出之前恢复重试计数 - QSettings s(SETTINGS_FILE_NAME); - s.setValue(ID_RESTART_TIMES, 0); + QSettings s(SETTINGS_FILE_NAME, QSettings::IniFormat); + s.setValue(ID_RESTART_TIMES, 0); qDebug() << "reset restartTimes"; qDebug() << "QuitDrcom"; @@ -168,7 +169,8 @@ void MainWindow::QuitDrcom() if(CURR_STATE==STATE_ONLINE) dogcomController->LogOut(); else if(CURR_STATE==STATE_OFFLINE) - qApp->quit(); + // qApp->quit(); + QTimer::singleShot(0, qApp, SLOT(quit())); else if(CURR_STATE==STATE_LOGGING) ;// 正在登录时候退出,假装没看到,不理 diff --git a/mainwindow.h b/mainwindow.h index 19350da..963ed4e 100644 --- a/mainwindow.h +++ b/mainwindow.h @@ -3,7 +3,7 @@ #include #include -#include +#include #include #include #include "singleapplication.h" @@ -61,7 +61,7 @@ public slots: // 用于在未登录时关闭窗口就退出 int CURR_STATE; - QRegExpValidator *macValidator; + QValidator *macValidator; DogcomController *dogcomController; // 设置托盘中的注销按钮的可用性 diff --git a/mainwindow.ui b/mainwindow.ui index 9a80bb5..4f283c1 100644 --- a/mainwindow.ui +++ b/mainwindow.ui @@ -6,7 +6,7 @@ 0 0 - 242 + 250 237 @@ -47,7 +47,7 @@ - QLineEdit::Password + QLineEdit::EchoMode::Password @@ -60,7 +60,7 @@ MAC - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -70,7 +70,7 @@ Account - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -86,7 +86,7 @@ Password - Qt::AlignCenter + Qt::AlignmentFlag::AlignCenter @@ -137,7 +137,7 @@ Your IP address will be shown here - Qt::AlignHCenter|Qt::AlignTop + Qt::AlignmentFlag::AlignHCenter|Qt::AlignmentFlag::AlignTop diff --git a/singleinstance/singleapplication.cpp b/singleinstance/singleapplication.cpp index a797231..56e211d 100644 --- a/singleinstance/singleapplication.cpp +++ b/singleinstance/singleapplication.cpp @@ -26,6 +26,8 @@ #include #include +#include + #include "singleapplication.h" #include "singleapplication_p.h" @@ -75,7 +77,7 @@ SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSeconda } InstancesInfo* inst = static_cast( d->memory->data() ); - QTime time; + QElapsedTimer time; time.start(); // Make sure the shared memory block is initialised and in consistent state @@ -92,8 +94,8 @@ SingleApplication::SingleApplication( int &argc, char *argv[], bool allowSeconda d->memory->unlock(); // Random sleep here limits the probability of a collision between two racing apps - qsrand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits::max() ); - QThread::sleep( 8 + static_cast ( static_cast ( qrand() ) / RAND_MAX * 10 ) ); + srand( QDateTime::currentMSecsSinceEpoch() % std::numeric_limits::max() ); + QThread::sleep( 8 + static_cast ( static_cast ( rand() ) / RAND_MAX * 10 ) ); } if( inst->primary == false) { From d81c1dbef8d14ab06ece3e0151a50f2d6afbb125 Mon Sep 17 00:00:00 2001 From: KnCRJNET Date: Sat, 24 May 2025 20:36:50 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E8=A7=A3=E5=86=B3=E4=BA=86=E8=BF=81?= =?UTF-8?q?=E7=A7=BB=E5=88=B0Qt6=E5=90=8E=EF=BC=8C=E7=94=B1=E4=BA=8E?= =?UTF-8?q?=E6=97=A7=E7=89=B9=E6=80=A7=E5=BC=83=E7=94=A8=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84Warning?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- dogcom.cpp | 2 +- main.cpp | 6 ++++-- mainwindow.cpp | 8 ++++---- singleinstance/singleapplication_p.cpp | 10 +++++----- 4 files changed, 14 insertions(+), 12 deletions(-) diff --git a/dogcom.cpp b/dogcom.cpp index d12cdd7..6d7abf0 100644 --- a/dogcom.cpp +++ b/dogcom.cpp @@ -27,7 +27,7 @@ void DogCom::FillConfig(QString a, QString p, QString m) mac_addr = m; } -void DogCom::print_packet(const char msg[], const unsigned char *packet, int length) +void DogCom::print_packet(const char* msg, const unsigned char *packet, int length) { if (!log) return; diff --git a/main.cpp b/main.cpp index 1c890e7..241f042 100644 --- a/main.cpp +++ b/main.cpp @@ -72,7 +72,7 @@ int main(int argc, char *argv[]) #endif SingleApplication::setQuitOnLastWindowClosed(false); - SingleApplication::setAttribute(Qt::AA_EnableHighDpiScaling); + // SingleApplication::setAttribute(Qt::AA_EnableHighDpiScaling); qDebug() << "...main..."; @@ -82,7 +82,9 @@ int main(int argc, char *argv[]) a.setFont(font); QTranslator translator; - translator.load(":/ts/DrCOM_zh_CN.qm"); + if (!translator.load(":/ts/DrCOM_zh_CN.qm")) { + qWarning() << "Failed to load translation file!"; + } a.installTranslator(&translator); MainWindow w(&a); diff --git a/mainwindow.cpp b/mainwindow.cpp index f5e5fee..fa8b839 100644 --- a/mainwindow.cpp +++ b/mainwindow.cpp @@ -152,8 +152,8 @@ void MainWindow::RestartDrcom() QProcess::startDetached(qApp->arguments()[0], qApp->arguments()); qDebug() << "Restart done."; } - else if(CURR_STATE==STATE_LOGGING) - ;// 正在登录时候退出,假装没看到,不理 + // else if(CURR_STATE==STATE_LOGGING) + // 正在登录时候退出,假装没看到,不理 } void MainWindow::QuitDrcom() @@ -171,8 +171,8 @@ void MainWindow::QuitDrcom() else if(CURR_STATE==STATE_OFFLINE) // qApp->quit(); QTimer::singleShot(0, qApp, SLOT(quit())); - else if(CURR_STATE==STATE_LOGGING) - ;// 正在登录时候退出,假装没看到,不理 + // else if(CURR_STATE==STATE_LOGGING) + // 正在登录时候退出,假装没看到,不理 // qApp->quit()调用放到了注销响应那块 } diff --git a/singleinstance/singleapplication_p.cpp b/singleinstance/singleapplication_p.cpp index de4945e..fd64d64 100644 --- a/singleinstance/singleapplication_p.cpp +++ b/singleinstance/singleapplication_p.cpp @@ -83,7 +83,7 @@ SingleApplicationPrivate::~SingleApplicationPrivate() void SingleApplicationPrivate::genBlockServerName() { QCryptographicHash appData( QCryptographicHash::Sha256 ); - appData.addData( "SingleApplication", 17 ); + appData.addData( "SingleApplication"); appData.addData( SingleApplication::app_t::applicationName().toUtf8() ); appData.addData( SingleApplication::app_t::organizationName().toUtf8() ); appData.addData( SingleApplication::app_t::organizationDomain().toUtf8() ); @@ -217,7 +217,7 @@ void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne writeStream << blockServerName.toLatin1(); writeStream << static_cast(connectionType); writeStream << instanceNumber; - quint16 checksum = qChecksum(initMsg.constData(), static_cast(initMsg.length())); + quint16 checksum = qChecksum(QByteArrayView(initMsg.constData(), static_cast(initMsg.length()))); writeStream << checksum; // The header indicates the message length that follows @@ -239,8 +239,8 @@ void SingleApplicationPrivate::connectToPrimary( int msecs, ConnectionType conne quint16 SingleApplicationPrivate::blockChecksum() { return qChecksum( - static_cast ( memory->data() ), - offsetof( InstancesInfo, checksum ) + QByteArrayView((static_cast (memory->data())), + offsetof( InstancesInfo, checksum )) ); } @@ -365,7 +365,7 @@ void SingleApplicationPrivate::readInitMessageBody( QLocalSocket *sock ) quint16 msgChecksum = 0; readStream >> msgChecksum; - const quint16 actualChecksum = qChecksum( msgBytes.constData(), static_cast( msgBytes.length() - sizeof( quint16 ) ) ); + const quint16 actualChecksum = qChecksum( QByteArrayView(msgBytes.constData(), static_cast( msgBytes.length() - sizeof( quint16 ) )) ); bool isValid = readStream.status() == QDataStream::Ok && QLatin1String(latin1Name) == blockServerName &&