0,0 → 1,212 |
#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.html |
QIcon 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() |
{ |
|
} |
|