Subversion Repositories Code-Repo

Rev

Rev 353 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 353 Rev 354
Line 5... Line 5...
5
{
5
{
6
    // Set central widget
6
    // Set central widget
7
    centralWidget = new QWidget();
7
    centralWidget = new QWidget();
8
    setCentralWidget(centralWidget);
8
    setCentralWidget(centralWidget);
9
 
9
 
10
    // Serial data UI
-
 
11
    groupSerialData = new QGroupBox("Data");
-
 
12
    textSerialData = new QTextEdit();
-
 
13
    textSerialData->setCurrentFont(QFont("Consolas", 8));
-
 
14
    textSerialData->append("Waiting for serial connection...");
-
 
15
    textSerialData->setMinimumHeight(100);
-
 
16
    textSerialData->setReadOnly(true);
-
 
17
    textSerialTransmit = new QLineEdit();
-
 
18
    textSerialTransmit->setFont(QFont("Consolas", 8));
-
 
19
    btnSerialTransmit = new QPushButton("&Send");
-
 
20
    btnSerialClear = new QPushButton("Clear");
-
 
21
 
-
 
22
    QHBoxLayout *serialTransmitLayout = new QHBoxLayout();
-
 
23
    serialTransmitLayout->addWidget(textSerialTransmit);
-
 
24
    serialTransmitLayout->addWidget(btnSerialTransmit);
-
 
25
    serialTransmitLayout->addWidget(btnSerialClear);
-
 
26
    QVBoxLayout *serialDataLayout = new QVBoxLayout();
-
 
27
    serialDataLayout->addWidget(textSerialData);
-
 
28
    serialDataLayout->addLayout(serialTransmitLayout);
-
 
29
    groupSerialData->setLayout(serialDataLayout);
-
 
30
 
-
 
31
    // Macro controller
10
    // Misc button group
32
    groupMacro = new QGroupBox("Other");
11
    groupMacro = new QGroupBox("Other");
33
    btnMacro = new QPushButton("&Macros");
12
    btnMacro = new QPushButton("&Macros");
34
    QHBoxLayout *macroLayout = new QHBoxLayout();
13
    QHBoxLayout *macroLayout = new QHBoxLayout();
35
    macroLayout->addWidget(btnMacro);
14
    macroLayout->addWidget(btnMacro);
36
    groupMacro->setLayout(macroLayout);
15
    groupMacro->setLayout(macroLayout);
37
 
16
 
38
    // Initialize serial controller
17
    // Initialize serial widget
39
    serialController = new SerialController();
18
    serialInitWidget = new SerialWidget();
40
    groupSerialInit = new QGroupBox("Serial Connection");
19
    groupSerialInit = new QGroupBox("Serial Connection");
41
    QGridLayout *serialInitLayout = new QGridLayout();
20
    QGridLayout *serialInitLayout = new QGridLayout();
42
    serialInitLayout->setContentsMargins(0, 0, 0, 0);
21
    serialInitLayout->setContentsMargins(0, 0, 0, 0);
43
    serialInitLayout->addWidget(serialController);
22
    serialInitLayout->addWidget(serialInitWidget);
44
    groupSerialInit->setLayout(serialInitLayout);
23
    groupSerialInit->setLayout(serialInitLayout);
45
    connect(serialController, SIGNAL(UpdateStatus(QString)), this, SLOT(UpdateSerialStatus(QString)));
24
    connect(serialInitWidget, SIGNAL(UpdateStatus(QString)), this, SLOT(UpdateSerialStatus(QString)));
-
 
25
 
-
 
26
    // Initialize data widget
-
 
27
    textIOWidget = new TextIOWidget();
-
 
28
    groupSerialData = new QGroupBox("Data");
-
 
29
    QGridLayout *serialDataLayout = new QGridLayout();
-
 
30
    serialDataLayout->setContentsMargins(0, 0, 0, 0);
-
 
31
    serialDataLayout->addWidget(textIOWidget);
-
 
32
    groupSerialData->setLayout(serialDataLayout);
-
 
33
    connect(serialInitWidget, SIGNAL(Serial_ReceivedByte(char)), textIOWidget, SLOT(Serial_ReceivedByte(char)));
-
 
34
    connect(serialInitWidget, SIGNAL(Serial_Connected()), textIOWidget, SLOT(Serial_EnableTransmit()));
-
 
35
    connect(serialInitWidget, SIGNAL(Serial_Disconnected()), textIOWidget, SLOT(Serial_DisableTransmit()));
-
 
36
    connect(textIOWidget, SIGNAL(Serial_TransmitByteArray(QByteArray)), serialInitWidget, SIGNAL(Serial_TransmitByteArray(QByteArray)));
46
 
37
 
47
    // Initialize macro controller
38
    // Initialize macro widget
48
    macroDockWidget = new QDockWidget("Macro Controller", this);
39
    macroDockWidget = new QDockWidget("Macro Controller", this);
49
    macroController = new MacroController(macroDockWidget);
40
    macroWidget = new MacroWidget(macroDockWidget);
50
    macroDockWidget->setWidget(macroController);
41
    macroDockWidget->setWidget(macroWidget);
51
    macroDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
42
    macroDockWidget->setAllowedAreas(Qt::LeftDockWidgetArea | Qt::RightDockWidgetArea);
52
    macroDockWidget->hide();
43
    macroDockWidget->hide();
53
    addDockWidget(Qt::RightDockWidgetArea, macroDockWidget);
44
    addDockWidget(Qt::RightDockWidgetArea, macroDockWidget);
54
    connect(macroController, SIGNAL(Macro_TransmitText(QString)), this, SLOT(Serial_PrepareTransmit(QString)));
45
    connect(macroWidget, SIGNAL(Macro_TransmitText(QByteArray)), textIOWidget, SLOT(Serial_PrepareTransmit(QByteArray)));
55
    connect(serialController, SIGNAL(Serial_Connected()), macroController, SLOT(Macro_EnableTransmit()));
46
    connect(serialInitWidget, SIGNAL(Serial_Connected()), macroWidget, SLOT(Macro_EnableTransmit()));
56
    connect(serialController, SIGNAL(Serial_Disconnected()), macroController, SLOT(Macro_DisableTransmit()));
47
    connect(serialInitWidget, SIGNAL(Serial_Disconnected()), macroWidget, SLOT(Macro_DisableTransmit()));
57
 
48
 
58
    // Connect local widgets
49
    // Connect local widgets
59
    connect(btnSerialTransmit, SIGNAL(clicked()), this, SLOT(Serial_PrepareTransmit()));
-
 
60
    connect(textSerialTransmit, SIGNAL(returnPressed()), btnSerialTransmit, SIGNAL(clicked()));
-
 
61
    connect(btnSerialClear, SIGNAL(clicked()), this, SLOT(Serial_ClearBtn()));
-
 
62
    connect(btnMacro, SIGNAL(clicked()), macroDockWidget->toggleViewAction(), SLOT(trigger()));
50
    connect(btnMacro, SIGNAL(clicked()), macroDockWidget->toggleViewAction(), SLOT(trigger()));
63
 
51
 
64
    // Main layout
52
    // Main layout
65
    QGridLayout *mainLayout = new QGridLayout();
53
    QGridLayout *mainLayout = new QGridLayout();
66
    mainLayout->addWidget(groupSerialInit, 0, 0, 1, 1, Qt::AlignLeft);
54
    mainLayout->addWidget(groupSerialInit, 0, 0, 1, 1, Qt::AlignLeft);
Line 71... Line 59...
71
    centralWidget->setLayout(mainLayout);
59
    centralWidget->setLayout(mainLayout);
72
 
60
 
73
    setWindowTitle("Marlin Controller");
61
    setWindowTitle("Marlin Controller");
74
    setWindowIcon(QIcon(":/External/Resources/Icon_16.bmp"));
62
    setWindowIcon(QIcon(":/External/Resources/Icon_16.bmp"));
75
 
63
 
76
    labelSerialStatus = new QLabel("Serial: Disconnected");
64
    labelSerialStatus = new QLabel("Disconnected");
77
    statusBar()->addPermanentWidget(labelSerialStatus);
65
    statusBar()->addPermanentWidget(labelSerialStatus);
78
}
66
}
79
 
67
 
80
MainWindow::~MainWindow()
68
MainWindow::~MainWindow()
81
{
69
{
82
 
70
 
83
}
71
}
84
 
72
 
85
void MainWindow::Serial_PrepareTransmit(QString string)
-
 
86
{
-
 
87
    if (string == "") {
-
 
88
        string = textSerialTransmit->text();
-
 
89
        textSerialTransmit->setText("");
-
 
90
    }
-
 
91
    emit Serial_TransmitString(string);
-
 
92
    textSerialData->setTextColor(Qt::darkBlue);
-
 
93
 
-
 
94
    QStringList cmds = string.split('\n');
-
 
95
    for (int i = 0; i < cmds.size(); i++) {
-
 
96
        textSerialData->append("TX:  " + cmds[i]);
-
 
97
    }
-
 
98
}
-
 
99
 
-
 
100
void MainWindow::Serial_ClearBtn()
-
 
101
{
-
 
102
    textSerialData->clear();
-
 
103
}
-
 
104
 
-
 
105
void MainWindow::Serial_ReceivedString(QString string)
-
 
106
{
-
 
107
    textSerialData->setTextColor(Qt::darkRed);
-
 
108
    textSerialData->append("RX:  " + string);
-
 
109
}
-
 
110
 
-
 
111
void MainWindow::UpdateStatus(QString string)
73
void MainWindow::UpdateStatus(QString string)
112
{
74
{
113
    statusBar()->showMessage(string, STATUS_TIMEOUT_MS);
75
    statusBar()->showMessage(string, STATUS_TIMEOUT_MS);
114
}
76
}
115
 
77