Blame | Last modification | View Log | Download | RSS feed
#include "PasteController.h"PasteController::PasteController(QWidget *parent) : QWidget(parent){QString helpString = "";helpString.append("XY Control: Arrow Keys or H/J/K/L\n");helpString.append("Z Control: PgUp/PgDown\n");helpString.append("Extruder Control: Space");labelHelp = new QLabel(helpString);QVBoxLayout *helpLayout = new QVBoxLayout();helpLayout->addWidget(labelHelp);QGroupBox *helpBox = new QGroupBox("Hotkeys:");helpBox->setLayout(helpLayout);btnEnableHotkeys = new QPushButton("Enable Hotkeys");btnInit = new QPushButton("Initialize Printer");btnHome = new QPushButton("Home Printhead");QVBoxLayout *miscBtnLayout = new QVBoxLayout();miscBtnLayout->addWidget(btnEnableHotkeys);miscBtnLayout->addWidget(btnInit);miscBtnLayout->addWidget(btnHome);QGroupBox *miscBtnBox = new QGroupBox("Preset Commands");miscBtnBox->setLayout(miscBtnLayout);miscBtnBox->setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Maximum);// Icons from http://ikons.piotrkwiatkowski.co.uk/index.htmlQIcon iconUp(":/External/Resources/arrow_up.png");QIcon iconDown(":/External/Resources/arrow_down.png");QIcon iconLeft(":/External/Resources/arrow_left.png");QIcon iconRight(":/External/Resources/arrow_right.png");QIcon iconAdd(":/External/Resources/upload.png");QIcon iconRemove(":/External/Resources/download.png");QIcon iconDelete(":/External/Resources/close.png");btnForward = new QToolButton();btnForward->setIcon(iconUp);btnForward->setIconSize(QSize(BTN_ICON_SIZE,BTN_ICON_SIZE));btnForward->setAutoRaise(true);btnBackward = new QToolButton();btnBackward->setIcon(iconDown);btnBackward->setIconSize(QSize(BTN_ICON_SIZE,BTN_ICON_SIZE));btnBackward->setAutoRaise(true);btnLeft = new QToolButton();btnLeft->setIcon(iconLeft);btnLeft->setIconSize(QSize(BTN_ICON_SIZE,BTN_ICON_SIZE));btnLeft->setAutoRaise(true);btnRight = new QToolButton();btnRight->setIcon(iconRight);btnRight->setIconSize(QSize(BTN_ICON_SIZE,BTN_ICON_SIZE));btnRight->setAutoRaise(true);btnUp = new QToolButton();btnUp->setIcon(iconAdd);btnUp->setIconSize(QSize(BTN_ICON_SIZE,BTN_ICON_SIZE));btnUp->setAutoRaise(true);btnDown = new QToolButton();btnDown->setIcon(iconRemove);btnDown->setIconSize(QSize(BTN_ICON_SIZE,BTN_ICON_SIZE));btnDown->setAutoRaise(true);btnExtrude = new QToolButton();btnExtrude->setIcon(iconDelete);btnExtrude->setIconSize(QSize(BTN_ICON_SIZE,BTN_ICON_SIZE));btnExtrude->setAutoRaise(true);QGridLayout *btnXYELayout = new QGridLayout();btnXYELayout->addWidget(btnForward, 0, 1, 1, 1);btnXYELayout->addWidget(btnLeft, 1, 0, 1, 1);btnXYELayout->addWidget(btnExtrude, 1, 1, 1, 1);btnXYELayout->addWidget(btnRight, 1, 2, 1, 1);btnXYELayout->addWidget(btnBackward, 2, 1, 1, 1);QVBoxLayout *btnZLayout = new QVBoxLayout();btnZLayout->addWidget(btnUp);btnZLayout->addWidget(btnDown);QHBoxLayout *btnNavLayout = new QHBoxLayout();btnNavLayout->addLayout(btnXYELayout);btnNavLayout->addLayout(btnZLayout);QGroupBox *controlBox = new QGroupBox("Manual Printer Control");controlBox->setLayout(btnNavLayout);controlBox->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);labelXPos = new QLabel("X :");labelXPos->setFont(QFont("", 14, 1));labelYPos = new QLabel("Y :");labelYPos->setFont(QFont("", 14, 1));labelZPos = new QLabel("Z :");labelZPos->setFont(QFont("", 14, 1));textXValue = new QLineEdit();textXValue->setReadOnly(true);textXValue->setMaximumWidth(60);textYValue = new QLineEdit();textYValue->setReadOnly(true);textYValue->setMaximumWidth(60);textZValue = new QLineEdit();textZValue->setReadOnly(true);textZValue->setMaximumWidth(60);QHBoxLayout *posValueLayout = new QHBoxLayout();posValueLayout->addWidget(labelXPos);posValueLayout->addWidget(textXValue);posValueLayout->addWidget(labelYPos);posValueLayout->addWidget(textYValue);posValueLayout->addWidget(labelZPos);posValueLayout->addWidget(textZValue);QGroupBox *toolheadPosBox = new QGroupBox("Toolhead Position");toolheadPosBox->setLayout(posValueLayout);toolheadPosBox->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Maximum);labelXYSpeed = new QLabel("XY Axis Speed:");sliderXYSpeed = new QSlider(Qt::Horizontal);textXYSpeed = new QSpinBox();textXYSpeed->setMinimumWidth(60);labelXYAmount = new QLabel("XY Axis Steps:");sliderXYAmount = new QSlider(Qt::Horizontal);textXYAmount = new QSpinBox();textXYAmount->setMinimumWidth(60);labelZSpeed = new QLabel("Z Axis Speed:");sliderZSpeed = new QSlider(Qt::Horizontal);textZSpeed = new QSpinBox();textZSpeed->setMinimumWidth(60);labelZAmount = new QLabel("Z Axis Steps:");sliderZAmount = new QSlider(Qt::Horizontal);textZAmount = new QSpinBox();textZAmount->setMinimumWidth(60);labelRepeatDelay = new QLabel("Repeat Delay:");sliderRepeatDelay = new QSlider(Qt::Horizontal);textRepeatDelay = new QSpinBox();textRepeatDelay->setMinimumWidth(60);QGridLayout *xyRepeatLayout = new QGridLayout();xyRepeatLayout->addWidget(labelXYAmount, 0, 0);xyRepeatLayout->addWidget(sliderXYAmount, 0, 1);xyRepeatLayout->addWidget(textXYAmount, 0, 2);xyRepeatLayout->addWidget(labelXYSpeed, 1, 0);xyRepeatLayout->addWidget(sliderXYSpeed, 1, 1);xyRepeatLayout->addWidget(textXYSpeed, 1, 2);xyRepeatLayout->addWidget(labelZAmount, 2, 0);xyRepeatLayout->addWidget(sliderZAmount, 2, 1);xyRepeatLayout->addWidget(textZAmount, 2, 2);xyRepeatLayout->addWidget(labelZSpeed, 3, 0);xyRepeatLayout->addWidget(sliderZSpeed, 3, 1);xyRepeatLayout->addWidget(textZSpeed, 3, 2);xyRepeatLayout->addWidget(labelRepeatDelay, 4, 0);xyRepeatLayout->addWidget(sliderRepeatDelay, 4, 1);xyRepeatLayout->addWidget(textRepeatDelay, 4, 2);QGroupBox *xyRepeatBox = new QGroupBox("Movement Settings");xyRepeatBox->setLayout(xyRepeatLayout);labelEForwardSpeed = new QLabel("Extrude Speed:");sliderEForwardSpeed = new QSlider(Qt::Horizontal);textEForwardSpeed = new QSpinBox();textEForwardSpeed->setMinimumWidth(60);labelEBackwardSpeed = new QLabel("Retract Speed:");sliderEBackwardSpeed = new QSlider(Qt::Horizontal);textEBackwardSpeed = new QSpinBox();textEBackwardSpeed->setMinimumWidth(60);labelEForwardAmount = new QLabel("Extrude Steps:");sliderEForwardAmount = new QSlider(Qt::Horizontal);textEForwardAmount = new QSpinBox();textEForwardAmount->setMinimumWidth(60);labelEBackwardAmount = new QLabel("Retract Steps:");sliderEBackwardAmount = new QSlider(Qt::Horizontal);textEBackwardAmount = new QSpinBox();textEBackwardAmount->setMinimumWidth(60);QGridLayout *extruderLayout = new QGridLayout();extruderLayout->addWidget(labelEForwardAmount, 0, 0);extruderLayout->addWidget(sliderEForwardAmount, 0, 1);extruderLayout->addWidget(textEForwardAmount, 0, 2);extruderLayout->addWidget(labelEForwardSpeed, 1, 0);extruderLayout->addWidget(sliderEForwardSpeed, 1, 1);extruderLayout->addWidget(textEForwardSpeed, 1, 2);extruderLayout->addWidget(labelEBackwardAmount, 2, 0);extruderLayout->addWidget(sliderEBackwardAmount, 2, 1);extruderLayout->addWidget(textEBackwardAmount, 2, 2);extruderLayout->addWidget(labelEBackwardSpeed, 4, 0);extruderLayout->addWidget(sliderEBackwardSpeed, 4, 1);extruderLayout->addWidget(textEBackwardSpeed, 4, 2);QGroupBox *extruderBox = new QGroupBox("Extruder Settings");extruderBox->setLayout(extruderLayout);QVBoxLayout *column1Layout = new QVBoxLayout();column1Layout->addWidget(controlBox, 0, Qt::AlignTop);column1Layout->addWidget(miscBtnBox, 0, Qt::AlignTop);column1Layout->addWidget(helpBox, 1, Qt::AlignTop);QVBoxLayout *column2Layout = new QVBoxLayout();column2Layout->addWidget(toolheadPosBox);column2Layout->addWidget(xyRepeatBox);column2Layout->addWidget(extruderBox);QHBoxLayout *mainLayout = new QHBoxLayout();mainLayout->addLayout(column1Layout);mainLayout->addLayout(column2Layout);setLayout(mainLayout);setFixedSize(sizeHint());}PasteController::~PasteController(){}