MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); currentScene = NULL; zoomToolSpinBox = NULL; ui->statusBar->addPermanentWidget(new MemoryMonitor(this)); // Variable editor VariableDelegate* delegate = new VariableDelegate(this); ui->variableView->setItemDelegate(delegate); //Set delegate for query editor ui->queryView->setItemDelegateForColumn(1, new ProgressViewDelegate(this)); // Add actions for toggling dockwidgets QAction* toggleVariablesDock = ui->variableDock->toggleViewAction(); toggleVariablesDock->setText(tr("Show variables")); ui->menuView->addAction(toggleVariablesDock); QAction* toggleQueryDock = ui->queryDock->toggleViewAction(); toggleQueryDock->setText(tr("Show queries")); ui->menuView->addAction(toggleQueryDock); QAction* toggleValidationDock = ui->validationDock->toggleViewAction(); toggleValidationDock->setText(tr("Show validation issues")); ui->menuView->addAction(toggleValidationDock); //Hide validation dock initially ui->validationDock->hide(); // Decide which dock-widget gets the corners this->setCorner(Qt::BottomLeftCorner, Qt::LeftDockWidgetArea); this->setCorner(Qt::BottomRightCorner, Qt::RightDockWidgetArea); this->setCorner(Qt::TopLeftCorner, Qt::LeftDockWidgetArea); this->setCorner(Qt::TopRightCorner, Qt::RightDockWidgetArea); // Action group for editing mode ui->InsertPlaceModeAction->setProperty("Mode", PetriNetScene::InsertPlaceMode); ui->PointerModeAction->setProperty("Mode", PetriNetScene::PointerMode); ui->InsertTransitionModeAction->setProperty("Mode", PetriNetScene::InsertTransitionMode); ui->InsertArcModeAction->setProperty("Mode", PetriNetScene::InsertArcMode); this->modeActionGroup = new QActionGroup(this); this->modeActionGroup->addAction(ui->InsertPlaceModeAction); this->modeActionGroup->addAction(ui->PointerModeAction); this->modeActionGroup->addAction(ui->InsertTransitionModeAction); this->modeActionGroup->addAction(ui->InsertArcModeAction); this->modeActionGroup->setExclusive(true); connect(this->modeActionGroup, SIGNAL(triggered(QAction*)), this, SLOT(modeActionGroup_triggered(QAction*))); createUndoActions(); createToggleToolsbars(); createZoomTool(); // Listen for clean state changed connect(&undoGroup, SIGNAL(cleanChanged(bool)), this, SLOT(updateWindowTitle())); // Create new document on_NewPNDVAction_triggered(); //Load settings loadSettings(); }
PowerGui::PowerGui(): PowerGui_class() { setupUi(this); windowMapper = new QSignalMapper(this); splash->showMessage("Loading user menu...",Qt::AlignLeft | Qt::AlignBottom); loadUserMenus(); splash->showMessage("Loading libraries...",Qt::AlignLeft | Qt::AlignBottom); loadLibrary(); addDockWidget(Qt::LeftDockWidgetArea, &dockLib); createRecentFiles(); updateRecentFiles(); #ifdef UNDO createUndoActions(); #endif updateMenus(); connect(mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(updateMenus())); #ifdef UNDO connect(mdiArea, SIGNAL(subWindowActivated(QMdiSubWindow*)), this, SLOT(setActiveUndoStack())); #endif connect(windowMapper, SIGNAL(mapped(QWidget*)), this, SLOT(setActiveSubWindow(QWidget*))); QString scilabPath = getSetting("scilabPath").toString(); bool startScilab = getSetting("startScilab").toBool(); if (startScilab) { splash->showMessage("Starting Scilab...",Qt::AlignLeft | Qt::AlignBottom); QString outputPath = getSetting("Path/outputPath").toString(); qDebug() << "Starting Scilab from " << scilabPath << " in directory " << outputPath << " with arg " << getSetting("scilabArg").toString(); #ifndef Q_OS_WIN32 bool scilabRunning = system("ps -e | grep scilab") == 0; if (scilabRunning) { struct sockaddr_in service; int sock=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP); service.sin_family = AF_INET; service.sin_addr.s_addr = inet_addr("127.0.0.1"); int actual_port = 27020+(getuid() % 10000); service.sin_port = htons(actual_port); if (::connect(sock,(struct sockaddr*)&service,sizeof(service)) == -1) { scilabRunning=false; } ::close(sock); } #else bool scilabRunning = false; #endif if (!scilabRunning) { if (getSetting("scilabArg").toString().trimmed().size()) QProcess::startDetached(scilabPath, QStringList() << "-f" << getSetting("scilabArg").toString().replace("$HOMEAPP",QCoreApplication::applicationDirPath()), outputPath); else QProcess::startDetached(scilabPath, QStringList(), outputPath); } else { qDebug() << "Scilab is already running"; } } }