diff --git a/CMakeLists.txt b/CMakeLists.txt index 40e36117b..97a67d1ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -1,6 +1,6 @@ cmake_minimum_required(VERSION 3.5) -project(CPEditor LANGUAGES CXX VERSION 4.0.3) +project(CPEditor LANGUAGES CXX VERSION 4.1.0) set(CMAKE_INCLUDE_CURRENT_DIR ON) @@ -63,6 +63,8 @@ add_executable(CPEditor ui/preferencewindow.ui include/EditorTheme.hpp src/editortheme.cpp + include/cftools.hpp + src/cftools.cpp ${CMAKE_BINARY_DIR}/generated/version.hpp diff --git a/include/CompanionServer.hpp b/include/CompanionServer.hpp index c8ef5892a..afe04a14b 100644 --- a/include/CompanionServer.hpp +++ b/include/CompanionServer.hpp @@ -49,6 +49,7 @@ class CompanionServer : public QObject public: CompanionServer(int port); void setMessageLogger(MessageLogger *log); + void checkServer(); void updatePort(int port); ~CompanionServer(); diff --git a/include/appwindow.hpp b/include/appwindow.hpp index 0b7512fc9..ae3f13c25 100644 --- a/include/appwindow.hpp +++ b/include/appwindow.hpp @@ -95,6 +95,7 @@ class AppWindow : public QMainWindow void allocate(); void applySettings(); void saveSettings(); + bool diagonistics; QVector hotkeyObjects; void maybeSetHotkeys(); }; diff --git a/include/cftools.hpp b/include/cftools.hpp new file mode 100644 index 000000000..71f3ff454 --- /dev/null +++ b/include/cftools.hpp @@ -0,0 +1,22 @@ +#ifndef CFTOOLS_HPP +#define CFTOOLS_HPP + +#include +namespace Network +{ + class CFTools + { + public: + CFTools(); + + void submit(); + void killProcess(); + + static bool check(); + ~CFTools(); + private: + QProcess* cftool = nullptr; + + }; +} +#endif // CFTOOLS_HPP diff --git a/include/mainwindow.hpp b/include/mainwindow.hpp index 623c0a633..e7acba283 100644 --- a/include/mainwindow.hpp +++ b/include/mainwindow.hpp @@ -68,7 +68,7 @@ class MainWindow : public QMainWindow void maybeLoadTemplate(); void setLanguage(QString lang); - void setSettingsData(Settings::SettingsData data); + void setSettingsData(Settings::SettingsData data, bool); MessageLogger *getLogger(); QFile *getOpenFile(); diff --git a/src/CompanionServer.cpp b/src/CompanionServer.cpp index 52a4cc2ac..f2fe7129b 100644 --- a/src/CompanionServer.cpp +++ b/src/CompanionServer.cpp @@ -19,6 +19,10 @@ CompanionServer::CompanionServer(int port) void CompanionServer::setMessageLogger(MessageLogger *log) { this->log = log; +} + +void CompanionServer::checkServer() +{ if (log != nullptr) { @@ -29,8 +33,8 @@ void CompanionServer::setMessageLogger(MessageLogger *log) } else { - log->info("Companion", "Listening for request on " + server->serverAddress().toString().toStdString() + - std::to_string(server->serverPort())); + log->info("Companion", "Listening for requests on " + server->serverAddress().toString().toStdString() + ":" + + std::to_string(server->serverPort())); } } } diff --git a/src/appwindow.cpp b/src/appwindow.cpp index 845a46815..8b99af51d 100644 --- a/src/appwindow.cpp +++ b/src/appwindow.cpp @@ -377,7 +377,11 @@ void AppWindow::onTabChanged(int index) activeLogger = tmp->getLogger(); server->setMessageLogger(activeLogger); - tmp->setSettingsData(settingManager->toData()); + if(settingManager->isCompetitiveCompanionActive()) + server->checkServer(); + + tmp->setSettingsData(settingManager->toData(), diagonistics); + diagonistics = false; tmp->maybeLoadTemplate(); if (!splitterState.isEmpty()) @@ -441,14 +445,14 @@ void AppWindow::onSettingsApplied() if (settingManager->isCompetitiveCompanionActive()) companionEditorConnections = connect(server, &Network::CompanionServer::onRequestArrived, this, &AppWindow::onIncomingCompanionRequest); - + diagonistics = true; onTabChanged(ui->tabWidget->currentIndex()); } void AppWindow::onIncomingCompanionRequest(Network::CompanionData data) { auto newTab = new MainWindow(ui->tabWidget->currentIndex(), ""); - newTab->setSettingsData(settingManager->toData()); + newTab->setSettingsData(settingManager->toData(), true); newTab->maybeLoadTemplate(); newTab->applyCompanion(data); ui->tabWidget->addTab(newTab, newTab->fileName()); diff --git a/src/cftools.cpp b/src/cftools.cpp new file mode 100644 index 000000000..3af578fdd --- /dev/null +++ b/src/cftools.cpp @@ -0,0 +1,10 @@ +#include "cftools.hpp" + +namespace Network { + +CFTools::CFTools() +{ + +} + +} diff --git a/src/mainwindow.cc b/src/mainwindow.cc index 21dedde75..d2570f067 100644 --- a/src/mainwindow.cc +++ b/src/mainwindow.cc @@ -340,7 +340,7 @@ void MainWindow::applyCompanion(Network::CompanionData data) } onTextChangedTriggered(); } -void MainWindow::setSettingsData(Settings::SettingsData data) +void MainWindow::setSettingsData(Settings::SettingsData data, bool shouldPerformDigonistic) { this->data = data; formatter->updateCommand(data.formatCommand); @@ -369,17 +369,17 @@ void MainWindow::setSettingsData(Settings::SettingsData data) if(data.viewMode == Settings::ViewMode::FULL_EDITOR) { - ui->splitter->restoreState(""); + ui->splitter->restoreGeometry(""); ui->splitter->setSizes({1,0}); } else if(data.viewMode == Settings::ViewMode::FULL_IO) { - ui->splitter->restoreState(""); + ui->splitter->restoreGeometry(""); ui->splitter->setSizes({0,1}); } else { - ui->splitter->restoreState(""); + ui->splitter->restoreGeometry(""); ui->splitter->setSizes({1,1}); } @@ -414,9 +414,8 @@ void MainWindow::setSettingsData(Settings::SettingsData data) if (!isLanguageSet) { setLanguage(data.defaultLanguage); - isLanguageSet = true; } - else + if(shouldPerformDigonistic) performCoreDiagonistics(); } void MainWindow::save(bool force) diff --git a/win-setup.iss b/win-setup.iss index 65e82979e..7670c5d86 100644 --- a/win-setup.iss +++ b/win-setup.iss @@ -2,7 +2,7 @@ ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName "CP Editor" -#define MyAppVersion "4.0.3" +#define MyAppVersion "4.1.0" #define MyAppPublisher "Ashar Khan " #define MyAppURL "https://github.com/coder3101/cp-editor2" #define MyAppExeName "CPEditor.exe"