File indexing completed on 2024-05-12 05:47:13

0001 #include "Bindings.h"
0002 
0003 #include "ui_main.h"
0004 
0005 extern "C" {
0006    int main_cpp(const char* app);
0007 }
0008 
0009 int main_cpp(const char* appPath)
0010 {
0011     int argc = 1;
0012     char* argv[1] = { (char*)appPath };
0013     QApplication app(argc, argv);
0014 
0015     Simple simple; // This is the Rust object
0016 
0017     QMainWindow main;
0018     Ui_MainWindow ui;
0019     ui.setupUi(&main);
0020 
0021     // Quit the application by...
0022     // * Using the mouse to select File->Quit
0023     // * Pressing <alt>+F, <alt>+Q
0024     // * Pressing <ctrl>+Q
0025     QObject::connect(ui.action_Quit, &QAction::triggered, &app, &QApplication::closeAllWindows);
0026 
0027     // Update the status message whenever the rust message changes
0028     simple.connect(&simple, &Simple::messageChanged, ui.statusbar, [&simple, &ui]() {
0029           ui.statusbar->showMessage(simple.message());
0030     });
0031 
0032     // Update the rust message when the button is clicked
0033     ui.statusButton->connect(ui.statusButton, &QPushButton::clicked, &simple, [&simple, &ui]() {
0034           simple.setMessage(ui.statusEdit->text());
0035     });
0036 
0037     // Initialize gui/model state
0038     ui.statusEdit->setText("Hello World!");
0039     ui.statusButton->clicked();
0040 
0041     main.show();
0042 
0043     return app.exec();
0044 }