Move layout code into separate ui file. Compile layout using uic
[vlp.git] / src / kernel / kernel.cpp
index b63a148ae4fba69ca2edd47b7fffaba7d49be9f8..49c9314e6e1482bc6dcea88f2a0eed92a1573beb 100644 (file)
@@ -64,6 +64,7 @@
 #include <libconfig.h>
 
 #include "kernel.h"
+#include "kernelwindow.h"
 
 /* File resides in top directory (where are Makefiles)*/
 #include "../../config.h"
@@ -83,7 +84,7 @@ void QKernel::closeEvent(QCloseEvent * e)
        e->ignore();
 
        if (!LOCKED) {
-               QuitProc();
+               on_actionQuit_triggered();
        }
 }
 
@@ -91,19 +92,21 @@ void QKernel::setLocked(bool locked)
 {
        LOCKED = locked;
 
-       quitAction->setDisabled(locked);
-       programExecuteAction->setDisabled(locked);
-       programKillAction->setDisabled(locked);
-       machineMessageAction->setDisabled(locked);
-       machineConnectAction->setDisabled(locked);
-       machineDisconnectAction->setDisabled(locked);
-       machineInfoAction->setDisabled(locked);
+       actionQuit->setDisabled(locked);
+
+       actionExecute->setDisabled(locked);
+       actionKill->setDisabled(locked);
+       actionMessage->setDisabled(locked);
+       actionConnect->setDisabled(locked);
+       actionDisconnect->setDisabled(locked);
+       actionInfo->setDisabled(locked);
+
 
        /* Enable only menu entry for unlocking */
-       toolsEditorAction->setDisabled(locked);
-       toolsOptionsAction->setDisabled(locked);
-       toolsLockAction->setDisabled(locked);
-       toolsUnlockAction->setEnabled(locked);
+       actionEditor->setDisabled(locked);
+       actionOptions->setDisabled(locked);
+       actionLock_console->setDisabled(locked);
+       actionUnlock_console->setDisabled(!locked);
 }
 
 /**
@@ -112,6 +115,8 @@ void QKernel::setLocked(bool locked)
  */
 QKernel::QKernel()
 {
+       setupUi(this);
+
        QDir q(REMOTE_PATH);
        char ss[255];
 
@@ -125,35 +130,8 @@ QKernel::QKernel()
 
        setWindowTitle(PACKAGE_NAME);
 
-       QMenu * programMenu = NULL;
-       programMenu = menuBar()->addMenu("&Program");
-       programExecuteAction = programMenu->addAction("Execute", this, SLOT(Run_Prog()));
-       programKillAction = programMenu->addAction("Kill", this, SLOT(KillInterpreter()));
-
-       machineMenu = menuBar()->addMenu("&Machine");
-       machineMessageAction = machineMenu->addAction("Message", this, SLOT(MessageToNode()));
-       machineMenu->addSeparator();
-       machineConnectAction = machineMenu->addAction("Connect", this, SLOT(Connect()));
-       machineDisconnectAction = machineMenu->addAction("Disconnect", this, SLOT(Disconnect()));
-       machineInfoAction = machineMenu->addAction("Info", this, SLOT(Info()));
-
-       toolsMenu = menuBar()->addMenu("&Tools");
-       toolsEditorAction = toolsMenu->addAction("Editor", this, SLOT(Edit()));
-       toolsMenu->addAction("Help", this, SLOT(Help()));
-       toolsMenu->addSeparator(); 
-       toolsOptionsAction = toolsMenu->addAction("Options", this, SLOT(SetOptions()));
-       toolsInfoAction = toolsMenu->addAction("Info messages", this, SLOT(SetMessages()));
-       toolsInfoAction->setCheckable(TRUE);
-       toolsInfoAction->setChecked(TRUE);
-       toolsMenu->addSeparator();
-       toolsLockAction = toolsMenu->addAction("Lock console", this, SLOT(LockConsole()));
-       toolsUnlockAction = toolsMenu->addAction("Unlock console", this, 
-                                                       SLOT(UnlockConsole()));
-       toolsUnlockAction->setDisabled(TRUE);
        LOCKED = FALSE;
 
-       quitAction = menuBar()->addAction("&Quit", this, SLOT(QuitProc()));
-
        desktop = new QTextEdit(this);
        desktop->setReadOnly(TRUE);
        QVBoxLayout * layout = new QVBoxLayout();
@@ -303,7 +281,7 @@ void QKernel::LoadConfig(char * fname)
  * Executes program.
  * Additional window id displayed to set which code to execute.
  */
-void QKernel::Run_Prog()
+void QKernel::on_actionExecute_triggered()
 {
        int i;
        QString s = QFileDialog::getOpenFileName(this, "Execute", progdir, "*.log");
@@ -321,7 +299,7 @@ void QKernel::Run_Prog()
 /**
  * Invokes editor program
  */
-void QKernel::Edit()
+void QKernel::on_actionEditor_triggered()
 {
        char cmd[255];
        sprintf(cmd, "%s/modules/logedit %s %s %s %s %s %s &", HomeDir, HomeDir, 
@@ -332,7 +310,7 @@ void QKernel::Edit()
 /**
  * Invokes help program
  */
-void QKernel::Help()
+void QKernel::on_actionHelp_triggered()
 {
        char cmd[255];
        sprintf(cmd, "%s/modules/loghelp %s/doc %s %s %s %s %s &", HomeDir,
@@ -390,14 +368,14 @@ void QKernel::RunNetModule()
                        WriteMessage("Cannot connect NETWORK resources");
                        WriteMessage("Exiting...");
                        sleep(2);
-                       QuitProc(); 
+                       on_actionQuit_triggered();
                }
        /* system OK */
        } else {
                WriteMessage("Cannot connect NETWORK resources");
                WriteMessage("Exiting...");
                sleep(2);
-               QuitProc(); 
+               on_actionQuit_triggered();
        }
 }
 
@@ -405,7 +383,7 @@ void QKernel::RunNetModule()
  * Connects to the specified address
  * Additional window is displayed to connect to the specified address
  */
-void QKernel::Connect()
+void QKernel::on_actionConnect_triggered()
 {
        QDialog d(this, Qt::Dialog);
        QLabel lab("IP Address:", &d);
@@ -437,7 +415,7 @@ void QKernel::Connect()
 /**
  * Disconnects from virtual machine
  */
-void QKernel::Disconnect()
+void QKernel::on_actionDisconnect_triggered()
 {
        MESSAGE msg;
 
@@ -452,7 +430,7 @@ void QKernel::Disconnect()
 /**
  * Quits process. Closes VLP. Shows additional window to confirm exit. 
  */
-void QKernel::QuitProc()
+void QKernel::on_actionQuit_triggered()
 {
        MESSAGE msg;
 
@@ -526,7 +504,7 @@ void QKernel::DelAddress()
  * Additional window is displayed to set Node Number of node where send message,
  * and textfield to enter message.
  */
-void QKernel::MessageToNode()
+void QKernel::on_actionMessage_triggered()
 {
        QDialog *dlg;
        QLineEdit *nodenr;
@@ -579,7 +557,7 @@ void QKernel::MessageToNode()
  * Additional window is displayed to get ID of interpreter which should be
  * killed.
  */
-void QKernel::KillInterpreter()
+void QKernel::on_actionKill_triggered()
 {
        QDialog *dlg;
        QLineEdit *nodenr;
@@ -840,13 +818,13 @@ void QKernel::WriteMessage(char *msg)
  * Adds checkbox to menu item. If it is checked additional info messages are
  * shown.
  */
-void QKernel::SetMessages()
+void QKernel::on_actionInfo_messages_triggered()
 {
        if (toolsMenu != NULL) {
-               toolsInfoAction->setChecked(!toolsInfoAction->isChecked());
-//             toolsInfoAction->toggle();
-               info_messages = toolsInfoAction->isChecked();
-               fprintf(stderr, "Info is checked? %s\n", toolsInfoAction->isChecked() ? "yes" : "no");
+               actionInfo_messages->setChecked(!actionInfo_messages->isChecked());
+//             actionInfo_messages->toggle();
+               info_messages = actionInfo_messages->isChecked();
+               fprintf(stderr, "Info is checked? %s\n", actionInfo_messages->isChecked() ? "yes" : "no");
        }
 //     menuBar()->repaint();
 }
@@ -856,7 +834,7 @@ void QKernel::SetMessages()
  * Additional window is displayed to set kernel options which are saved in 
  * vlp.cfg file in kernel executable directory.
  */
-void QKernel::SetOptions()
+void QKernel::on_actionOptions_triggered()
 {
        QDialog dlg(this, Qt::Dialog);
        dlg.setWindowTitle("Options");
@@ -995,7 +973,7 @@ void QKernel::SetOptions()
  * Additional window is displayed to enter password and retype it. If both are
  * same kernel window is locked.
  */
-void QKernel::LockConsole()
+void QKernel::on_actionLock_console_triggered()
 {
        QDialog d(this, Qt::Dialog);
        d.setWindowTitle("Lock console");
@@ -1054,7 +1032,7 @@ void QKernel::LockConsole()
  * Additional window is displayed to enter password. If it is correct, kernel 
  * window is unlocked
  */
-void QKernel::UnlockConsole()
+void QKernel::on_actionUnlock_console_triggered()
 {
        QDialog d(this, Qt::Dialog);
        d.setWindowTitle("Enter password");
@@ -1346,7 +1324,7 @@ void QKernel::CloseInstances(InterpEntry *e)
 /**
  * Displays information about virtual machine
  */
-void QKernel::Info()
+void QKernel::on_actionInfo_triggered()
 {
        MESSAGE m;