Changeset View
Changeset View
Standalone View
Standalone View
src/widgets/atcoreinstancewidget.cpp
Show All 24 Lines | |||||
25 | #include "choosefiledialog.h" | 25 | #include "choosefiledialog.h" | ||
26 | 26 | | |||
27 | AtCoreInstanceWidget::AtCoreInstanceWidget(QWidget *parent): | 27 | AtCoreInstanceWidget::AtCoreInstanceWidget(QWidget *parent): | ||
28 | QWidget(parent), | 28 | QWidget(parent), | ||
29 | m_mainToolBar(nullptr), | 29 | m_mainToolBar(nullptr), | ||
30 | m_toolBar(nullptr), | 30 | m_toolBar(nullptr), | ||
31 | m_printAction(nullptr) | 31 | m_printAction(nullptr) | ||
32 | { | 32 | { | ||
33 | m_theme = palette().text().color().value() >= QColor(Qt::lightGray).value() ? QString("dark") : QString("light") ; | ||||
33 | ui = new Ui::AtCoreInstanceWidget; | 34 | ui = new Ui::AtCoreInstanceWidget; | ||
34 | ui->setupUi(this); | 35 | ui->setupUi(this); | ||
35 | | ||||
36 | ui->printProgressWidget->setVisible(false); | 36 | ui->printProgressWidget->setVisible(false); | ||
37 | buildMainToolbar(); | 37 | buildMainToolbar(); | ||
38 | buildToolbar(); | 38 | buildToolbar(); | ||
39 | buildConnectionToolbar(); | 39 | buildConnectionToolbar(); | ||
40 | enableControls(false); | 40 | enableControls(false); | ||
41 | updateProfileData(); | 41 | updateProfileData(); | ||
42 | initConnectsToAtCore(); | 42 | initConnectsToAtCore(); | ||
43 | m_mainToolBar->setHidden(true); | 43 | m_mainToolBar->setHidden(true); | ||
44 | | ||||
44 | } | 45 | } | ||
45 | 46 | | |||
46 | AtCoreInstanceWidget::~AtCoreInstanceWidget() | 47 | AtCoreInstanceWidget::~AtCoreInstanceWidget() | ||
47 | { | 48 | { | ||
48 | m_core.closeConnection(); | 49 | m_core.closeConnection(); | ||
49 | delete ui; | 50 | delete ui; | ||
50 | } | 51 | } | ||
51 | 52 | | |||
52 | void AtCoreInstanceWidget::buildToolbar() | 53 | void AtCoreInstanceWidget::buildToolbar() | ||
53 | { | 54 | { | ||
54 | m_toolBar = new QToolBar(); | 55 | m_toolBar = new QToolBar(); | ||
55 | 56 | | |||
56 | auto lb = new QAction; | 57 | auto lb = new QAction; | ||
57 | lb->setIcon(QIcon::fromTheme("go-home", style()->standardIcon(QStyle::SP_DirHomeIcon))); | 58 | lb->setIcon(QIcon::fromTheme("go-home", QIcon(QString(":/%1/home").arg(m_theme)))); | ||
59 | | ||||
58 | lb->setDisabled(true); | 60 | lb->setDisabled(true); | ||
59 | m_toolBar->addAction(lb); | 61 | m_toolBar->addAction(lb); | ||
60 | 62 | | |||
61 | auto homeAll = new QAction("All"); | 63 | auto homeAll = new QAction("All"); | ||
62 | connect(homeAll, &QAction::triggered, [this]{ | 64 | connect(homeAll, &QAction::triggered, [this]{ | ||
63 | m_core.home(); | 65 | m_core.home(); | ||
64 | }); | 66 | }); | ||
65 | m_toolBar->addAction(homeAll); | 67 | m_toolBar->addAction(homeAll); | ||
▲ Show 20 Lines • Show All 43 Lines • ▼ Show 20 Line(s) | 106 | connect(m_printAction, &QAction::triggered, [ this ](){ | |||
109 | if (m_core.state() == AtCore::IDLE){ | 111 | if (m_core.state() == AtCore::IDLE){ | ||
110 | print(); | 112 | print(); | ||
111 | } else if (m_core.state() == AtCore::PAUSE) { | 113 | } else if (m_core.state() == AtCore::PAUSE) { | ||
112 | m_core.resume(); | 114 | m_core.resume(); | ||
113 | } | 115 | } | ||
114 | }); | 116 | }); | ||
115 | m_mainToolBar->addAction(m_printAction); | 117 | m_mainToolBar->addAction(m_printAction); | ||
116 | 118 | | |||
117 | auto stopAction = new QAction(QIcon::fromTheme("media-playback-stop", style()->standardIcon(QStyle::SP_MediaStop)), i18n("Stop")); | 119 | auto stopAction = new QAction(QIcon::fromTheme("media-playback-stop", QIcon(QString(":/%1/stop").arg(m_theme))), i18n("Stop")); | ||
120 | | ||||
118 | connect(stopAction, &QAction::triggered, this, &AtCoreInstanceWidget::stopPrint); | 121 | connect(stopAction, &QAction::triggered, this, &AtCoreInstanceWidget::stopPrint); | ||
119 | connect(stopAction, &QAction::triggered, [this](){ | 122 | connect(stopAction, &QAction::triggered, [this](){ | ||
120 | m_printAction->setText(i18n("Print")); | 123 | m_printAction->setText(i18n("Print")); | ||
121 | m_printAction->setIcon(QIcon::fromTheme("media-playback-start", style()->standardIcon(QStyle::SP_MediaPlay))); | 124 | m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QString(":/%1/start").arg(m_theme)))); | ||
122 | }); | 125 | }); | ||
123 | m_mainToolBar->addAction(stopAction); | 126 | m_mainToolBar->addAction(stopAction); | ||
124 | 127 | | |||
125 | auto disableMotorsAction = new QAction(style()->standardIcon(QStyle::SP_MediaStop),i18n("Disable Motors")); | 128 | auto disableMotorsAction = new QAction(style()->standardIcon(QStyle::SP_MediaStop),i18n("Disable Motors")); | ||
126 | connect(disableMotorsAction, &QAction::triggered, this, &AtCoreInstanceWidget::disableMotors); | 129 | connect(disableMotorsAction, &QAction::triggered, this, &AtCoreInstanceWidget::disableMotors); | ||
127 | m_mainToolBar->addAction(disableMotorsAction); | 130 | m_mainToolBar->addAction(disableMotorsAction); | ||
128 | 131 | | |||
129 | ui->mainToolBarLayout->addWidget(m_mainToolBar); | 132 | ui->mainToolBarLayout->addWidget(m_mainToolBar); | ||
Show All 19 Lines | 136 | { | |||
149 | QHBoxLayout *connectLayout = new QHBoxLayout; | 152 | QHBoxLayout *connectLayout = new QHBoxLayout; | ||
150 | connectLayout->addLayout(deviceLayout,50); | 153 | connectLayout->addLayout(deviceLayout,50); | ||
151 | connectLayout->addLayout(profileLayout,50); | 154 | connectLayout->addLayout(profileLayout,50); | ||
152 | 155 | | |||
153 | m_connectWidget = new QWidget(); | 156 | m_connectWidget = new QWidget(); | ||
154 | m_connectWidget->setLayout(connectLayout); | 157 | m_connectWidget->setLayout(connectLayout); | ||
155 | m_connectToolBar->addWidget(m_connectWidget); | 158 | m_connectToolBar->addWidget(m_connectWidget); | ||
156 | 159 | | |||
157 | m_connectButton = new QPushButton(QIcon::fromTheme("network-connect", style()->standardIcon(QStyle::SP_DialogCloseButton)), i18n("Connect")); | 160 | m_connectButton = new QPushButton(QIcon::fromTheme("network-connect", QIcon(QString(":/%1/connect").arg(m_theme))), i18n("Connect")); | ||
158 | m_connectButton->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); | 161 | m_connectButton->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed); | ||
159 | connect(this, &AtCoreInstanceWidget::disableDisconnect, m_connectButton, &QPushButton::setDisabled); | 162 | connect(this, &AtCoreInstanceWidget::disableDisconnect, m_connectButton, &QPushButton::setDisabled); | ||
160 | connect(m_connectButton, &QPushButton::clicked, this, &AtCoreInstanceWidget::connectButtonClicked); | 163 | connect(m_connectButton, &QPushButton::clicked, this, &AtCoreInstanceWidget::connectButtonClicked); | ||
161 | ui->mainToolBarLayout->addWidget(m_connectToolBar); | 164 | ui->mainToolBarLayout->addWidget(m_connectToolBar); | ||
162 | ui->mainToolBarLayout->addWidget(m_connectButton); | 165 | ui->mainToolBarLayout->addWidget(m_connectButton); | ||
163 | 166 | | |||
164 | } | 167 | } | ||
165 | 168 | | |||
▲ Show 20 Lines • Show All 140 Lines • ▼ Show 20 Line(s) | |||||
306 | 309 | | |||
307 | void AtCoreInstanceWidget::handlePrinterStatusChanged(AtCore::STATES newState) | 310 | void AtCoreInstanceWidget::handlePrinterStatusChanged(AtCore::STATES newState) | ||
308 | { | 311 | { | ||
309 | static QString stateString; | 312 | static QString stateString; | ||
310 | switch (newState) { | 313 | switch (newState) { | ||
311 | case AtCore::CONNECTING: { | 314 | case AtCore::CONNECTING: { | ||
312 | m_core.setSerialTimerInterval(0); | 315 | m_core.setSerialTimerInterval(0); | ||
313 | m_connectButton->setText(i18n("Disconnect")); | 316 | m_connectButton->setText(i18n("Disconnect")); | ||
314 | m_connectButton->setIcon(QIcon::fromTheme("network-disconnect")); | 317 | m_connectButton->setIcon(QIcon::fromTheme("network-disconnect", QIcon(QString(":/%1/disconnect").arg(m_theme)))); | ||
315 | m_connectToolBar->setHidden(true); | 318 | m_connectToolBar->setHidden(true); | ||
316 | m_mainToolBar->setHidden(false); | 319 | m_mainToolBar->setHidden(false); | ||
317 | stateString = i18n("Connecting..."); | 320 | stateString = i18n("Connecting..."); | ||
318 | connect(&m_core, &AtCore::receivedMessage, this, &AtCoreInstanceWidget::checkReceivedCommand); | 321 | connect(&m_core, &AtCore::receivedMessage, this, &AtCoreInstanceWidget::checkReceivedCommand); | ||
319 | connect(m_core.serial(), &SerialLayer::pushedCommand, this, &AtCoreInstanceWidget::checkPushedCommands); | 322 | connect(m_core.serial(), &SerialLayer::pushedCommand, this, &AtCoreInstanceWidget::checkPushedCommands); | ||
320 | } break; | 323 | } break; | ||
321 | case AtCore::IDLE: { | 324 | case AtCore::IDLE: { | ||
322 | stateString = i18n("Connected to ") + m_core.serial()->portName(); | 325 | stateString = i18n("Connected to ") + m_core.serial()->portName(); | ||
323 | emit extruderCountChanged(m_core.extruderCount()); | 326 | emit extruderCountChanged(m_core.extruderCount()); | ||
324 | ui->logWidget->addLog(i18n("Serial connected")); | 327 | ui->logWidget->addLog(i18n("Serial connected")); | ||
325 | emit disableDisconnect(false); | 328 | emit disableDisconnect(false); | ||
326 | enableControls(true); | 329 | enableControls(true); | ||
327 | } break; | 330 | } break; | ||
328 | case AtCore::DISCONNECTED: { | 331 | case AtCore::DISCONNECTED: { | ||
329 | stateString = i18n("Not Connected"); | 332 | stateString = i18n("Not Connected"); | ||
330 | disconnect(&m_core, &AtCore::receivedMessage, this, &AtCoreInstanceWidget::checkReceivedCommand); | 333 | disconnect(&m_core, &AtCore::receivedMessage, this, &AtCoreInstanceWidget::checkReceivedCommand); | ||
331 | disconnect(m_core.serial(), &SerialLayer::pushedCommand, this, &AtCoreInstanceWidget::checkPushedCommands); | 334 | disconnect(m_core.serial(), &SerialLayer::pushedCommand, this, &AtCoreInstanceWidget::checkPushedCommands); | ||
332 | ui->logWidget->addLog(i18n("Serial disconnected")); | 335 | ui->logWidget->addLog(i18n("Serial disconnected")); | ||
333 | m_core.setSerialTimerInterval(100); | 336 | m_core.setSerialTimerInterval(100); | ||
334 | m_connectButton->setText(i18n("Connect")); | 337 | m_connectButton->setText(i18n("Connect")); | ||
335 | m_connectButton->setIcon(QIcon::fromTheme("network-connect")); | 338 | m_connectButton->setIcon(QIcon::fromTheme("network-connect",QIcon(QString(":/%1/connect").arg(m_theme)))); | ||
336 | m_connectToolBar->setHidden(false); | 339 | m_connectToolBar->setHidden(false); | ||
337 | m_mainToolBar->setHidden(true); | 340 | m_mainToolBar->setHidden(true); | ||
338 | enableControls(false); | 341 | enableControls(false); | ||
339 | } break; | 342 | } break; | ||
340 | case AtCore::STARTPRINT: { | 343 | case AtCore::STARTPRINT: { | ||
341 | stateString = i18n("Starting Print"); | 344 | stateString = i18n("Starting Print"); | ||
342 | ui->printProgressWidget->setVisible(true); | 345 | ui->printProgressWidget->setVisible(true); | ||
343 | connect(&m_core, &AtCore::printProgressChanged, ui->printProgressWidget, &PrintProgressWidget::updateProgressBar); | 346 | connect(&m_core, &AtCore::printProgressChanged, ui->printProgressWidget, &PrintProgressWidget::updateProgressBar); | ||
344 | } break; | 347 | } break; | ||
345 | case AtCore::FINISHEDPRINT: { | 348 | case AtCore::FINISHEDPRINT: { | ||
346 | stateString = i18n("Finished Print"); | 349 | stateString = i18n("Finished Print"); | ||
347 | ui->printProgressWidget->setVisible(false); | 350 | ui->printProgressWidget->setVisible(false); | ||
348 | disconnect(&m_core, &AtCore::printProgressChanged, ui->printProgressWidget, &PrintProgressWidget::updateProgressBar); | 351 | disconnect(&m_core, &AtCore::printProgressChanged, ui->printProgressWidget, &PrintProgressWidget::updateProgressBar); | ||
349 | m_printAction->setText(i18n("Print")); | 352 | m_printAction->setText(i18n("Print")); | ||
350 | m_printAction->setIcon(QIcon::fromTheme("document-edit", style()->standardIcon(QStyle::SP_MediaPlay))); | 353 | m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QString(":/%1/start").arg(m_theme)))); | ||
351 | } break; | 354 | } break; | ||
352 | case AtCore::BUSY: { | 355 | case AtCore::BUSY: { | ||
353 | stateString = i18n("Printing"); | 356 | stateString = i18n("Printing"); | ||
354 | emit disableDisconnect(true); | 357 | emit disableDisconnect(true); | ||
355 | m_printAction->setText(i18n("Pause")); | 358 | m_printAction->setText(i18n("Pause")); | ||
356 | m_printAction->setIcon(QIcon::fromTheme("media-playback-pause", style()->standardIcon(QStyle::SP_MediaPause))); | 359 | m_printAction->setIcon(QIcon::fromTheme("media-playback-pause", QIcon(QString(":/%1/pause").arg(m_theme)))); | ||
357 | } break; | 360 | } break; | ||
358 | case AtCore::PAUSE: { | 361 | case AtCore::PAUSE: { | ||
359 | stateString = i18n("Paused"); | 362 | stateString = i18n("Paused"); | ||
360 | m_printAction->setText(i18n("Resume")); | 363 | m_printAction->setText(i18n("Resume")); | ||
361 | m_printAction->setIcon(QIcon::fromTheme("media-playback-start", style()->standardIcon(QStyle::SP_MediaPlay))); | 364 | m_printAction->setIcon(QIcon::fromTheme("media-playback-start", QIcon(QString(":/%1/start").arg(m_theme)))); | ||
362 | } break; | 365 | } break; | ||
363 | case AtCore::STOP: { | 366 | case AtCore::STOP: { | ||
364 | stateString = i18n("Stoping Print"); | 367 | stateString = i18n("Stoping Print"); | ||
365 | } break; | 368 | } break; | ||
366 | case AtCore::ERRORSTATE: { | 369 | case AtCore::ERRORSTATE: { | ||
367 | stateString = i18n("Error"); | 370 | stateString = i18n("Error"); | ||
368 | } break; | 371 | } break; | ||
369 | default: | 372 | default: | ||
▲ Show 20 Lines • Show All 95 Lines • Show Last 20 Lines |