Advance Wayland and KDE package bring-up
Ultraworked with [Sisyphus](https://github.com/code-yeongyu/oh-my-openagent) Co-authored-by: Sisyphus <clio-agent@sisyphuslabs.ai>
This commit is contained in:
@@ -0,0 +1,360 @@
|
||||
#include "krulertest.h"
|
||||
|
||||
#include <KRuler>
|
||||
|
||||
#include <QApplication>
|
||||
#include <QButtonGroup>
|
||||
#include <QDoubleSpinBox>
|
||||
#include <QGroupBox>
|
||||
#include <QKeyEvent>
|
||||
#include <QLabel>
|
||||
#include <QLayout>
|
||||
#include <QSpinBox>
|
||||
|
||||
/*
|
||||
void
|
||||
MyCheckBox::mouseReleaseEvent(QMouseEvent *e )
|
||||
{
|
||||
QButton::mouseReleaseEvent(e);
|
||||
if ();
|
||||
}
|
||||
*/
|
||||
|
||||
MouseWidget::MouseWidget(QWidget *parent)
|
||||
: QFrame(parent)
|
||||
{
|
||||
}
|
||||
|
||||
void MouseWidget::mousePressEvent(QMouseEvent *e)
|
||||
{
|
||||
mouseButtonDown = true;
|
||||
Q_EMIT newXPos(qRound(e->position().x()));
|
||||
Q_EMIT newYPos(qRound(e->position().y()));
|
||||
}
|
||||
|
||||
void MouseWidget::mouseReleaseEvent(QMouseEvent *)
|
||||
{
|
||||
mouseButtonDown = false;
|
||||
}
|
||||
|
||||
void MouseWidget::mouseMoveEvent(QMouseEvent *e)
|
||||
{
|
||||
if (mouseButtonDown) {
|
||||
Q_EMIT newXPos(qRound(e->position().x()));
|
||||
Q_EMIT newYPos(qRound(e->position().y()));
|
||||
}
|
||||
}
|
||||
|
||||
void MouseWidget::resizeEvent(QResizeEvent *r)
|
||||
{
|
||||
Q_EMIT newWidth(r->size().width());
|
||||
Q_EMIT newHeight(r->size().height());
|
||||
}
|
||||
|
||||
KRulerTest::KRulerTest()
|
||||
: QWidget(nullptr)
|
||||
{
|
||||
QVBoxLayout *topLayout = new QVBoxLayout(this);
|
||||
mainframe = new QFrame(this);
|
||||
topLayout->addWidget(mainframe);
|
||||
|
||||
layout = new QGridLayout(mainframe);
|
||||
|
||||
miniwidget = new QFrame(mainframe);
|
||||
miniwidget->setFrameStyle(QFrame::WinPanel | QFrame::Raised);
|
||||
bigwidget = new MouseWidget(mainframe);
|
||||
bigwidget->setFrameStyle(QFrame::WinPanel | QFrame::Sunken);
|
||||
|
||||
// QRect bwrect = bigwidget->frameRect();
|
||||
// qDebug("big rect: top%i left%i bottom%i right%i",
|
||||
// bwrect.top(), bwrect.left(), bwrect.bottom(), bwrect.right());
|
||||
hruler = new KRuler(Qt::Horizontal, mainframe);
|
||||
// hruler->setRange( bwrect.left(), bwrect.right() );
|
||||
hruler->setRange(0, 1000);
|
||||
// hruler->setOffset( bwrect.left() - bigwidget->frameRect().left() );
|
||||
hruler->setOffset(0);
|
||||
|
||||
vruler = new KRuler(Qt::Vertical, mainframe);
|
||||
vruler->setOffset(0);
|
||||
vruler->setRange(0, 1000);
|
||||
|
||||
connect(bigwidget, &MouseWidget::newXPos, hruler, &KRuler::slotNewValue);
|
||||
connect(bigwidget, &MouseWidget::newYPos, vruler, &KRuler::slotNewValue);
|
||||
connect(bigwidget, &MouseWidget::newWidth, this, &KRulerTest::slotNewWidth);
|
||||
connect(bigwidget, &MouseWidget::newHeight, this, &KRulerTest::slotNewHeight);
|
||||
|
||||
layout->addWidget(miniwidget, 0, 0);
|
||||
layout->addWidget(hruler, 0, 1);
|
||||
layout->addWidget(vruler, 1, 0);
|
||||
layout->addWidget(bigwidget, 1, 1);
|
||||
|
||||
mouse_message = new QLabel(QStringLiteral("Press and hold mouse button\nfor pointer movement"), bigwidget);
|
||||
mouse_message->adjustSize();
|
||||
mouse_message->move(4, 4);
|
||||
|
||||
showMarks = new QGroupBox(QStringLiteral("Show which marks ?"), bigwidget);
|
||||
showMarks->setFixedSize(140, 160);
|
||||
showMarks->move(330, 4);
|
||||
showTM = new QCheckBox(QStringLiteral("show tiny marks"), showMarks);
|
||||
showTM->adjustSize();
|
||||
showTM->move(5, 15);
|
||||
showTM->setChecked(true);
|
||||
connect(showTM, &QCheckBox::toggled, this, &KRulerTest::slotSetTinyMarks);
|
||||
showLM = new QCheckBox(QStringLiteral("show little marks"), showMarks);
|
||||
showLM->adjustSize();
|
||||
showLM->move(5, 35);
|
||||
showLM->setChecked(true);
|
||||
connect(showLM, &QCheckBox::toggled, this, &KRulerTest::slotSetLittleMarks);
|
||||
showMM = new QCheckBox(QStringLiteral("show medium marks"), showMarks);
|
||||
showMM->adjustSize();
|
||||
showMM->move(5, 55);
|
||||
showMM->setChecked(true);
|
||||
connect(showMM, &QCheckBox::toggled, this, &KRulerTest::slotSetMediumMarks);
|
||||
showBM = new QCheckBox(QStringLiteral("show big marks"), showMarks);
|
||||
showBM->adjustSize();
|
||||
showBM->move(5, 75);
|
||||
showBM->setChecked(true);
|
||||
connect(showBM, &QCheckBox::toggled, this, &KRulerTest::slotSetBigMarks);
|
||||
showEM = new QCheckBox(QStringLiteral("show end marks"), showMarks);
|
||||
showEM->adjustSize();
|
||||
showEM->move(5, 95);
|
||||
showEM->setChecked(true);
|
||||
connect(showEM, &QCheckBox::toggled, this, &KRulerTest::slotSetEndMarks);
|
||||
showPT = new QCheckBox(QStringLiteral("show ruler pointer"), showMarks);
|
||||
showPT->adjustSize();
|
||||
showPT->move(5, 115);
|
||||
showPT->setChecked(true);
|
||||
connect(showPT, &QCheckBox::toggled, this, &KRulerTest::slotSetRulerPointer);
|
||||
fixLen = new QCheckBox(QStringLiteral("fix ruler length"), showMarks);
|
||||
fixLen->adjustSize();
|
||||
fixLen->move(5, 135);
|
||||
fixLen->setChecked(true);
|
||||
connect(fixLen, &QCheckBox::toggled, this, &KRulerTest::slotFixRulerLength);
|
||||
connect(fixLen, &QCheckBox::toggled, this, &KRulerTest::slotCheckLength);
|
||||
|
||||
lineEdit = new QGroupBox(QStringLiteral("Value of begin/end"), bigwidget);
|
||||
lineEdit->setFixedSize(140, 80);
|
||||
lineEdit->move(330, 4 + 160);
|
||||
beginMark = new QSpinBox(lineEdit);
|
||||
beginMark->setValue(0);
|
||||
beginMark->setRange(-1000, 1000);
|
||||
beginMark->move(5, 15);
|
||||
beginMark->setFixedSize(beginMark->sizeHint());
|
||||
connect(beginMark, qOverload<int>(&QSpinBox::valueChanged), hruler, &KRuler::slotNewOffset);
|
||||
connect(beginMark, qOverload<int>(&QSpinBox::valueChanged), vruler, &KRuler::slotNewOffset);
|
||||
endMark = new QSpinBox(lineEdit);
|
||||
endMark->setValue(0);
|
||||
endMark->setRange(-1000, 1000);
|
||||
endMark->move(5, 35);
|
||||
endMark->setFixedSize(endMark->sizeHint());
|
||||
connect(endMark, qOverload<int>(&QSpinBox::valueChanged), hruler, &KRuler::slotEndOffset);
|
||||
connect(endMark, qOverload<int>(&QSpinBox::valueChanged), vruler, &KRuler::slotEndOffset);
|
||||
lengthInput = new QSpinBox(lineEdit);
|
||||
lengthInput->setValue(0);
|
||||
lengthInput->setRange(-1000, 1000);
|
||||
lengthInput->move(5, 55);
|
||||
lengthInput->setFixedSize(lengthInput->sizeHint());
|
||||
connect(lengthInput, qOverload<int>(&QSpinBox::valueChanged), hruler, &KRuler::slotEndOffset);
|
||||
connect(lengthInput, qOverload<int>(&QSpinBox::valueChanged), vruler, &KRuler::slotEndOffset);
|
||||
|
||||
vertrot = new QGroupBox(QStringLiteral("Value of rotate translate for Vert."), bigwidget);
|
||||
vertrot->setFixedSize(140, 80);
|
||||
vertrot->move(330, 4 + 160 + 80 + 4);
|
||||
transX = new QDoubleSpinBox(vertrot);
|
||||
transX->setValue(0.0);
|
||||
transX->setRange(-1000, 1000);
|
||||
transX->setSingleStep(1);
|
||||
transX->move(5, 15);
|
||||
transX->setFixedSize(transX->sizeHint());
|
||||
// transX->setLabel("transx", AlignLeft);
|
||||
connect(transX, qOverload<double>(&QDoubleSpinBox::valueChanged), this, &KRulerTest::slotSetXTrans);
|
||||
transY = new QDoubleSpinBox(vertrot);
|
||||
transY->setValue(-12.0);
|
||||
transY->setRange(-1000, 1000);
|
||||
transY->setSingleStep(1);
|
||||
transY->move(5, 35);
|
||||
transY->setFixedSize(transY->sizeHint());
|
||||
// transY->setLabel("transy", AlignLeft);
|
||||
connect(transY, qOverload<double>(&QDoubleSpinBox::valueChanged), this, &KRulerTest::slotSetYTrans);
|
||||
rotV = new QDoubleSpinBox(vertrot);
|
||||
rotV->setValue(90.0);
|
||||
rotV->setRange(-1000, 1000);
|
||||
rotV->setSingleStep(1);
|
||||
rotV->move(5, 55);
|
||||
rotV->setFixedSize(rotV->sizeHint());
|
||||
// rotV->setLabel("rot", AlignLeft);
|
||||
connect(rotV, qOverload<double>(&QDoubleSpinBox::valueChanged), this, &KRulerTest::slotSetRotate);
|
||||
|
||||
metricstyle = new QGroupBox(QStringLiteral("metric styles"), bigwidget);
|
||||
|
||||
QButtonGroup *metricstyleButtons = new QButtonGroup(bigwidget);
|
||||
|
||||
metricstyle->setFixedSize(100, 120);
|
||||
metricstyle->move(330 - 110, 4);
|
||||
pixelmetric = new QRadioButton(QStringLiteral("pixel"), metricstyle);
|
||||
pixelmetric->adjustSize();
|
||||
pixelmetric->move(5, 15);
|
||||
metricstyleButtons->addButton(pixelmetric, (int)KRuler::Pixel);
|
||||
inchmetric = new QRadioButton(QStringLiteral("inch"), metricstyle);
|
||||
inchmetric->adjustSize();
|
||||
inchmetric->move(5, 35);
|
||||
metricstyleButtons->addButton(inchmetric, (int)KRuler::Inch);
|
||||
mmmetric = new QRadioButton(QStringLiteral("millimeter"), metricstyle);
|
||||
mmmetric->adjustSize();
|
||||
mmmetric->move(5, 55);
|
||||
metricstyleButtons->addButton(mmmetric, (int)KRuler::Millimetres);
|
||||
cmmetric = new QRadioButton(QStringLiteral("centimeter"), metricstyle);
|
||||
cmmetric->adjustSize();
|
||||
cmmetric->move(5, 75);
|
||||
metricstyleButtons->addButton(cmmetric, (int)KRuler::Centimetres);
|
||||
mmetric = new QRadioButton(QStringLiteral("meter"), metricstyle);
|
||||
mmetric->adjustSize();
|
||||
mmetric->move(5, 95);
|
||||
metricstyleButtons->addButton(mmetric, (int)KRuler::Metres);
|
||||
connect(metricstyleButtons, &QButtonGroup::buttonClicked, this, [this, metricstyleButtons](QAbstractButton *button) {
|
||||
slotSetMStyle(metricstyleButtons->id(button));
|
||||
});
|
||||
|
||||
slotUpdateShowMarks();
|
||||
}
|
||||
|
||||
KRulerTest::~KRulerTest()
|
||||
{
|
||||
delete layout;
|
||||
delete hruler;
|
||||
delete vruler;
|
||||
delete miniwidget;
|
||||
delete bigwidget;
|
||||
delete mainframe;
|
||||
}
|
||||
|
||||
void KRulerTest::slotNewWidth(int width)
|
||||
{
|
||||
hruler->setMaximum(width);
|
||||
}
|
||||
|
||||
void KRulerTest::slotNewHeight(int height)
|
||||
{
|
||||
vruler->setMaximum(height);
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetTinyMarks(bool set)
|
||||
{
|
||||
hruler->setShowTinyMarks(set);
|
||||
vruler->setShowTinyMarks(set);
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetLittleMarks(bool set)
|
||||
{
|
||||
hruler->setShowLittleMarks(set);
|
||||
vruler->setShowLittleMarks(set);
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetMediumMarks(bool set)
|
||||
{
|
||||
hruler->setShowMediumMarks(set);
|
||||
vruler->setShowMediumMarks(set);
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetBigMarks(bool set)
|
||||
{
|
||||
hruler->setShowBigMarks(set);
|
||||
vruler->setShowBigMarks(set);
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetEndMarks(bool set)
|
||||
{
|
||||
hruler->setShowEndMarks(set);
|
||||
vruler->setShowEndMarks(set);
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetRulerPointer(bool set)
|
||||
{
|
||||
hruler->setShowPointer(set);
|
||||
vruler->setShowPointer(set);
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetRulerLength(int len)
|
||||
{
|
||||
hruler->setLength(len);
|
||||
vruler->setLength(len);
|
||||
}
|
||||
|
||||
void KRulerTest::slotFixRulerLength(bool fix)
|
||||
{
|
||||
hruler->setLengthFixed(fix);
|
||||
vruler->setLengthFixed(fix);
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetMStyle(int style)
|
||||
{
|
||||
hruler->setRulerMetricStyle((KRuler::MetricStyle)style);
|
||||
vruler->setRulerMetricStyle((KRuler::MetricStyle)style);
|
||||
slotUpdateShowMarks();
|
||||
}
|
||||
|
||||
void KRulerTest::slotUpdateShowMarks()
|
||||
{
|
||||
showTM->setChecked(hruler->showTinyMarks());
|
||||
showLM->setChecked(hruler->showLittleMarks());
|
||||
showMM->setChecked(hruler->showMediumMarks());
|
||||
showBM->setChecked(hruler->showBigMarks());
|
||||
showEM->setChecked(hruler->showEndMarks());
|
||||
}
|
||||
|
||||
void KRulerTest::slotCheckLength(bool fixlen)
|
||||
{
|
||||
Q_UNUSED(fixlen);
|
||||
beginMark->setValue(hruler->offset());
|
||||
endMark->setValue(hruler->endOffset());
|
||||
lengthInput->setValue(hruler->length());
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetRotate(double d)
|
||||
{
|
||||
Q_UNUSED(d);
|
||||
#ifdef KRULER_ROTATE_TEST
|
||||
vruler->rotate = d;
|
||||
vruler->update();
|
||||
// debug("rotate %.1f", d);
|
||||
#endif
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetXTrans(double d)
|
||||
{
|
||||
Q_UNUSED(d);
|
||||
#ifdef KRULER_ROTATE_TEST
|
||||
vruler->xtrans = d;
|
||||
vruler->update();
|
||||
// debug("trans x %.1f", d);
|
||||
#endif
|
||||
}
|
||||
|
||||
void KRulerTest::slotSetYTrans(double d)
|
||||
{
|
||||
Q_UNUSED(d);
|
||||
#ifdef KRULER_ROTATE_TEST
|
||||
vruler->ytrans = d;
|
||||
vruler->update();
|
||||
// debug("trans y %.1f", d);
|
||||
#endif
|
||||
}
|
||||
|
||||
/* --- MAIN -----------------------*/
|
||||
int main(int argc, char **argv)
|
||||
{
|
||||
QApplication::setApplicationName(QStringLiteral("test"));
|
||||
QApplication *testapp;
|
||||
KRulerTest *window;
|
||||
|
||||
testapp = new QApplication(argc, argv);
|
||||
testapp->setFont(QFont(QStringLiteral("Helvetica"), 12));
|
||||
|
||||
window = new KRulerTest();
|
||||
window->setWindowTitle(QStringLiteral("KRulerTest"));
|
||||
window->resize(800, 600);
|
||||
window->show();
|
||||
return testapp->exec();
|
||||
}
|
||||
|
||||
#include "moc_krulertest.cpp"
|
||||
Reference in New Issue
Block a user