-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathshiftop.cpp
103 lines (91 loc) · 3.48 KB
/
shiftop.cpp
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
/******************************************************************************
**
** bits - an application to arithmeticall and logically combine and
** manipulate bit patterns and their corresponding hex numbers.
**
** Tony Camuso
** Created December, 2011
**
** bits (bitview) is free software. You can redistribute it and/or modify
** it under the terms of the GNU General Public License as published by
** the Free Software Foundation, either version 3 of the License, or
** (at your option) any later version.
**
** This program is distributed in the hope that it will be useful,
** but WITHOUT ANY WARRANTY; without even the implied warranty of
** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
** GNU General Public License for more details.
**
** GNU General Public License http://www.gnu.org/licenses/gpl.html
**
** Copyright (c) 2011-2014 by Tony Camuso.
**
******************************************************************************/
#include "shiftop.h"
/*////////////////////////////////////////////////////////////////////////////
*/
ShiftOpGroup::ShiftOpGroup(QPoint *start, QWidget *parent) :
QWidget(parent)
{
const int x = start->x()+7;
const int y = start->y();
const int sbw = 38;
const int sbh = 26;
const int margin = 3;
shiftBox = new QLineEdit(parent);
shiftBox->setGeometry(x, y, sbw, sbh);
shiftBox->setObjectName("ShiftBox");
shiftBox->setInputMask(" 00 ");
// Set up the initial shift value and the edit box to display it.
//
currentShiftVal = 1;
QString text = QString("1");
shiftBox->setText(text);
// Create the shift operator push buttons as a ControlGroup.
//
const int shlx = start->x();
const int shly = start->y()+sbh + margin;
const int shlw = 24;
const int shlh = 20;
const int shrx = shlx + margin + shlw;
tw = new Twidget;
tw->objName = QString("shifters");
tw->objText << "<<" << ">>";
tw->sizes << QSize(shlw, shlh);
tw->layout << QPoint(shlx, shly) << QPoint(shrx, shly);
tw->grouped = true;
quint64 getBits();
pShiftButtons = new ControlGroup <QPushButton>(tw, parent);
// Create the Rotate checkbox
//
const int crx = start->x();
const int cry = shly + shlh;
const int crw = 70;
const int crh = 24;
chkRotate = new QCheckBox(parent);
chkRotate->setObjectName("chkRotate");;
chkRotate->setGeometry(crx, cry, crw, crh);
chkRotate->setText("Rotate");
chkRotate->show();
// Allow the shift buttons to autorepeat.
//
pShiftButtons->widgetList[0]->setAutoRepeat(true);
pShiftButtons->widgetList[1]->setAutoRepeat(true);
// Connect the signal from the shiftbuttons to the "shift" signal in this
// class.
// The parent class of this class will connect the "shift" signal from
// here to one of its slots. Because the signals are coming from a button
// group, they will be indexed and we will be able to determine wheter
// it was the left or right button that was pressed.
//
connect(tw->buttonGroup, SIGNAL(buttonClicked(int)),
this, SIGNAL(shift(int)));
connect(shiftBox, SIGNAL(textEdited(QString)),
this, SLOT(onTextEdited(QString)));
}
int ShiftOpGroup::getCurrentShiftVal() {return currentShiftVal;}
void ShiftOpGroup::onTextEdited(QString text)
{
bool ok;
currentShiftVal = text.toInt(&ok);
}