mirror of
https://github.com/EdgeTX/edgetx.git
synced 2025-07-23 16:25:12 +03:00
[Simulator] New main UI window, debug console, separate outputs window, more. (#4385)
* [package] Add QtSvg support DLLs for Windows. * [Simulator] Add images/css resources for new version; Create SimulatorIcon and SimulatorStyle classes; Build with SVG support, remove unused bitmaps. * [Simulator] Improve and simplify VirtualJoystickWidget resize event (sticks maintain X/Y position) & improve values layout w/out trims. * [Simulator] Refactor Trainer simulator to use VirtualJoystickWidget, gains lock/hold buttons and X/Y position readout. * [Simulator] More compact layout for Telemetry simulator, reduces min. width and adds scrolling columns to allow smaller window sizes. * [Simulator] Add new SimulatorMainWindow and RadioOutputsWidget UI classes. * [storage] Add non-persistent sessionId() to AppData for tracking currently active radio profile ID. * [Simulator] Major UI updates: * Use a MainWindow interface with dockable/floatable windows, proper toolbar & menu; * Persistent size/layout state of all windows/docks/etc between uses, per radio profile; * Completely separate radio Outputs window with configurable layout (also persistent between uses); * Translations now enabled in standalone Simulator, follows main Companion setting (they need a lot of updates); * New custom icons throughout, toolbar icon sizes adhere to user preference in Companion. * [Simulator] Debug Output console updates: * New filter feature with optional full RegEx support, can work in inclusive or exclusive modes (full help text is included in UI); * Up to 50 user-defined filters are saved to permanent settings, also a few predefined filters are provided; * Saves/restores the last filter used and if it was en/disabled; * Added word wrap and clear screen features; * Configurable scroll-back buffer size; * Increased efficiency & performance of the buffering/printing process. * [Simulator][OSX] Visual UI tweaks for OS X. * [Simulator] Fix some debug console settings not being restored properly. * [Simulator] Add ability to hide/show menu bar; Persist view state of menu bar and radio title bar; Reduce font size on OS X; Other small visual tweaks and improvements. * [build] Add QtSvg to Linux build scripts (a guess for Dockerfile). * [build] Fix for Qt 5.3. * Add OpenTx headers to new files. * [Companion][storage] Update GeneralSettings() initializer to use current sessionId for profile data retrieval, removes workaround for standalone Simulator being started with arbitrary profile; AppData: always update sessionId when global id() changes. * [X10] Fixes for new simulator
This commit is contained in:
parent
b493973d7d
commit
2f9d9c1a99
62 changed files with 6357 additions and 3095 deletions
|
@ -32,7 +32,7 @@
|
|||
#include "appdata.h"
|
||||
#include "helpers.h"
|
||||
#include "modeledit/modeledit.h"
|
||||
#include "simulatordialog.h"
|
||||
#include "simulatormainwindow.h"
|
||||
#include "storage/sdcard.h"
|
||||
|
||||
Stopwatch gStopwatch("global");
|
||||
|
@ -823,7 +823,7 @@ void startSimulation(QWidget * parent, RadioData & radioData, int modelIdx)
|
|||
simuData->setCurrentModel(modelIdx);
|
||||
}
|
||||
|
||||
SimulatorDialog * dialog = new SimulatorDialog(parent, simulator, flags);
|
||||
SimulatorMainWindow * dialog = new SimulatorMainWindow(parent, simulator, flags);
|
||||
if (IS_HORUS(getCurrentBoard()) && !dialog->useTempDataPath(true)) {
|
||||
QMessageBox::critical(NULL, QObject::tr("Data Load Error"), QObject::tr("Error: Could not create temporary directory in '%1'").arg(QDir::tempPath()));
|
||||
delete dialog;
|
||||
|
@ -831,12 +831,15 @@ void startSimulation(QWidget * parent, RadioData & radioData, int modelIdx)
|
|||
return;
|
||||
}
|
||||
dialog->setRadioData(simuData);
|
||||
qDebug() << __FILE__ << __LINE__ << "Starting" << getCurrentFirmware()->getName() << "simulation with SD path" << dialog->getSdPath() << "and models/settings path" << dialog->getDataPath();
|
||||
dialog->setWindowModality(Qt::ApplicationModal);
|
||||
dialog->setAttribute(Qt::WA_DeleteOnClose);
|
||||
dialog->start();
|
||||
dialog->exec();
|
||||
delete dialog;
|
||||
// TODO Horus tmp directory is deleted on simulator close OR we could use it to get back data from the simulation
|
||||
delete simuData; // TODO same with simuData, could read it back and update the file data
|
||||
dialog->show();
|
||||
|
||||
QObject::connect(dialog, &SimulatorMainWindow::destroyed, [simuData] (void) {
|
||||
// TODO simuData and Horus tmp directory is deleted on simulator close OR we could use it to get back data from the simulation
|
||||
delete simuData;
|
||||
});
|
||||
}
|
||||
else {
|
||||
QMessageBox::warning(NULL,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue