gui: single instance mode.
This commit is contained in:
@@ -12,11 +12,11 @@ set(CMAKE_CXX_STANDARD_REQUIRED ON)
|
||||
find_package(QT NAMES Qt6 Qt5 REQUIRED COMPONENTS Core Network)
|
||||
find_package(Qt${QT_VERSION_MAJOR} REQUIRED COMPONENTS Core Network)
|
||||
|
||||
add_executable(frelayConsole Console.h Console.cpp main.cpp Helper.h Helper.cpp ../Res/ico.rc)
|
||||
add_executable(frelayConsole Console.h Console.cpp main.cpp ../Res/ico.rc)
|
||||
target_link_libraries(frelayConsole PRIVATE Protocol Util ClientCore)
|
||||
|
||||
if(NOT DEFINED COMPILER_USE_MINGW)
|
||||
target_link_libraries(frelayConsole PRIVATE crashelper)
|
||||
endif()
|
||||
|
||||
target_link_libraries(frelayConsole PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)
|
||||
target_link_libraries(frelayConsole PRIVATE Qt${QT_VERSION_MAJOR}::Core Qt${QT_VERSION_MAJOR}::Network)
|
||||
|
||||
@@ -1,9 +1,38 @@
|
||||
#include "Console.h"
|
||||
|
||||
RelayConsole::RelayConsole(QObject* parent) : QObject(parent)
|
||||
ConsoleHelper::ConsoleHelper(QObject* parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
RelayConsole::~RelayConsole()
|
||||
ConsoleHelper::~ConsoleHelper()
|
||||
{
|
||||
}
|
||||
|
||||
void ConsoleHelper::RunWorker(ClientCore* clientCore)
|
||||
{
|
||||
clientCore_ = clientCore;
|
||||
|
||||
sockWorker_ = new SocketWorker(clientCore_, nullptr);
|
||||
clientCore_->moveToThread(sockWorker_);
|
||||
|
||||
connect(clientCore_, &ClientCore::conSuccess, this, [this]() { qInfo() << QString(tr("Connected.")); });
|
||||
connect(clientCore_, &ClientCore::conFailed, this, [this]() { qInfo() << QString(tr("Connect failed.")); });
|
||||
connect(clientCore_, &ClientCore::connecting, this, [this]() { qInfo() << QString(tr("Connecting...")); });
|
||||
connect(clientCore_, &ClientCore::sigDisconnect, this, [this]() { qInfo() << QString(tr("Disconnected.")); });
|
||||
connect(this, &ConsoleHelper::sigDoConnect, clientCore_, &ClientCore::DoConnect);
|
||||
connect(sockWorker_, &QThread::finished, sockWorker_, &QObject::deleteLater);
|
||||
|
||||
sockWorker_->start();
|
||||
}
|
||||
|
||||
void ConsoleHelper::SetIpPort(const QString& ip, quint16 port)
|
||||
{
|
||||
ip_ = ip;
|
||||
port_ = port;
|
||||
qDebug() << "SetIpPort:" << ip_ << port_;
|
||||
}
|
||||
|
||||
void ConsoleHelper::Connect()
|
||||
{
|
||||
emit sigDoConnect(ip_, port_);
|
||||
}
|
||||
|
||||
@@ -1,15 +1,29 @@
|
||||
#ifndef FRELAY_CONSOLE_H
|
||||
#define FRELAY_CONSOLE_H
|
||||
#ifndef CONSOLE_H
|
||||
#define CONSOLE_H
|
||||
|
||||
#include <ClientCore.h>
|
||||
|
||||
class RelayConsole : public QObject
|
||||
class ConsoleHelper : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
RelayConsole(QObject* parent = nullptr);
|
||||
~RelayConsole() override;
|
||||
ConsoleHelper(QObject* parent = nullptr);
|
||||
~ConsoleHelper() override;
|
||||
|
||||
public:
|
||||
void RunWorker(ClientCore* clientCore);
|
||||
void SetIpPort(const QString& ip, quint16 port);
|
||||
void Connect();
|
||||
|
||||
signals:
|
||||
void sigDoConnect(const QString& ip, quint16 port);
|
||||
|
||||
private:
|
||||
QString ip_;
|
||||
quint16 port_{};
|
||||
SocketWorker* sockWorker_{};
|
||||
ClientCore* clientCore_;
|
||||
};
|
||||
|
||||
#endif // FRELAY_CONSOLE_H
|
||||
#endif // CONSOLE_H
|
||||
|
||||
@@ -1,38 +0,0 @@
|
||||
#include "Helper.h"
|
||||
|
||||
ConsoleHelper::ConsoleHelper(QObject* parent) : QObject(parent)
|
||||
{
|
||||
}
|
||||
|
||||
ConsoleHelper::~ConsoleHelper()
|
||||
{
|
||||
}
|
||||
|
||||
void ConsoleHelper::RunWorker(ClientCore* clientCore)
|
||||
{
|
||||
clientCore_ = clientCore;
|
||||
|
||||
sockWorker_ = new SocketWorker(clientCore_, nullptr);
|
||||
clientCore_->moveToThread(sockWorker_);
|
||||
|
||||
connect(clientCore_, &ClientCore::conSuccess, this, [this]() { qInfo() << QString(tr("Connected.")); });
|
||||
connect(clientCore_, &ClientCore::conFailed, this, [this]() { qInfo() << QString(tr("Connect failed.")); });
|
||||
connect(clientCore_, &ClientCore::connecting, this, [this]() { qInfo() << QString(tr("Connecting...")); });
|
||||
connect(clientCore_, &ClientCore::sigDisconnect, this, [this]() { qInfo() << QString(tr("Disconnected.")); });
|
||||
connect(this, &ConsoleHelper::sigDoConnect, clientCore_, &ClientCore::DoConnect);
|
||||
connect(sockWorker_, &QThread::finished, sockWorker_, &QObject::deleteLater);
|
||||
|
||||
sockWorker_->start();
|
||||
}
|
||||
|
||||
void ConsoleHelper::SetIpPort(const QString& ip, quint16 port)
|
||||
{
|
||||
ip_ = ip;
|
||||
port_ = port;
|
||||
qDebug() << "SetIpPort:" << ip_ << port_;
|
||||
}
|
||||
|
||||
void ConsoleHelper::Connect()
|
||||
{
|
||||
emit sigDoConnect(ip_, port_);
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
#ifndef CONSOLE_HELPER_H
|
||||
#define CONSOLE_HELPER_H
|
||||
|
||||
#include <ClientCore.h>
|
||||
|
||||
class ConsoleHelper : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
ConsoleHelper(QObject* parent = nullptr);
|
||||
~ConsoleHelper() override;
|
||||
|
||||
public:
|
||||
void RunWorker(ClientCore* clientCore);
|
||||
void SetIpPort(const QString& ip, quint16 port);
|
||||
void Connect();
|
||||
|
||||
signals:
|
||||
void sigDoConnect(const QString& ip, quint16 port);
|
||||
|
||||
private:
|
||||
QString ip_;
|
||||
quint16 port_{};
|
||||
SocketWorker* sockWorker_{};
|
||||
ClientCore* clientCore_;
|
||||
};
|
||||
|
||||
#endif // CONSOLE_HELPER_H
|
||||
@@ -2,7 +2,6 @@
|
||||
#include <Util.h>
|
||||
|
||||
#include "Console.h"
|
||||
#include "Helper.h"
|
||||
|
||||
#ifndef COMPILER_USE_MINGW
|
||||
#include <crashelper.h>
|
||||
@@ -21,7 +20,7 @@ int main(int argc, char* argv[])
|
||||
backward::SetDumpFileSavePath(configDir + "/dumpfile");
|
||||
backward::SetDumpLogSavePath(configDir + "/dumplog");
|
||||
#else
|
||||
backward::SetDumpLogSavePath(configDir + QDir::separator() + "dumplog");
|
||||
backward::SetDumpLogSavePath(configDir + "/dumplog");
|
||||
#endif
|
||||
#endif
|
||||
|
||||
@@ -38,4 +37,4 @@ int main(int argc, char* argv[])
|
||||
helper->Connect();
|
||||
|
||||
return app.exec();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user