f588aa273
김태훈
부가 기능 로직 추가
|
1
2
|
#include "favoritenamepopup.h"
#include "ui_favoritenamepopup.h"
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
3
|
#include <QKeyEvent>
|
bbd7d8f29
김태훈
버튼 음향 추가
|
4
|
#include "soundplayer.h"
|
f588aa273
김태훈
부가 기능 로직 추가
|
5
|
#include "primewindow.h"
|
e00c6a2a9
김태훈
기능 추가 구현
|
6
|
#include "mainwindow.h"
|
f588aa273
김태훈
부가 기능 로직 추가
|
7
8
9
10
11
12
|
FavoriteNamePopup::FavoriteNamePopup(QWidget *parent) :
QWidget(parent),
ui(new Ui::FavoriteNamePopup)
{
ui->setupUi(this);
|
f5634ecc7
김태훈
엔코더 구현
|
13
14
15
16
17
|
connect(ui->keyboard, SIGNAL(onOkKeyClicked()), ui->keyboard, SLOT(focusOutKeyboard()));
connect(ui->keyboard, SIGNAL(onCancelKeyClicked()), ui->keyboard, SLOT(focusOutKeyboard()));
connect(ui->keyboard, SIGNAL(onCancelKeyClicked()), SLOT(revert()));
ui->lineEdit->installEventFilter(this);
|
f588aa273
김태훈
부가 기능 로직 추가
|
18
19
|
ui->lineEdit->setFocus();
ui->lineEdit->selectAll();
|
bbd7d8f29
김태훈
버튼 음향 추가
|
20
21
22
|
connect(ui->okButton, &QPushButton::pressed, SoundPlayer::playClick);
connect(ui->cancelButton, &QPushButton::pressed, SoundPlayer::playClick);
|
f588aa273
김태훈
부가 기능 로직 추가
|
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
|
}
FavoriteNamePopup::FavoriteNamePopup(QWidget *parent, ManualCookSetting setting) : FavoriteNamePopup(parent)
{
type = Manual;
manualSetting = setting;
}
FavoriteNamePopup::FavoriteNamePopup(QWidget *parent, AutoCookSetting setting) : FavoriteNamePopup(parent)
{
type = Auto;
autoSetting = setting;
}
FavoriteNamePopup::~FavoriteNamePopup()
{
delete ui;
}
|
f5634ecc7
김태훈
엔코더 구현
|
41
42
43
44
45
46
47
48
49
50
51
52
53
|
bool FavoriteNamePopup::eventFilter(QObject */*watched*/, QEvent *event)
{
switch (event->type())
{
case QEvent::FocusIn:
lastLine = ui->lineEdit->text();
break;
default:
break;
}
return false;
}
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
54
55
56
57
|
void FavoriteNamePopup::keyPressEvent(QKeyEvent *event)
{
switch (event->key())
{
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
58
|
case 0x01000032: // Turn left
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
59
60
61
62
63
|
onEncoderLeft();
break;
case 0x01000031: // Push
pushed = focusWidget();
break;
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
64
|
case 0x01000030: // Turn right
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
65
66
67
68
69
70
71
72
73
|
onEncoderRight();
break;
}
}
void FavoriteNamePopup::keyReleaseEvent(QKeyEvent *event)
{
switch (event->key())
{
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
74
|
case 0x01000032: // Turn left
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
75
76
77
78
79
80
81
82
|
onEncoderLeft();
break;
case 0x01000031: // Push
if (focusWidget() == pushed)
onEncoderClicked(pushed);
pushed = NULL;
break;
|
01249f413
김태훈
엔코더 방향 반전. 하드웨어가 변경됨
|
83
|
case 0x01000030: // Turn right
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
84
85
86
87
|
onEncoderRight();
break;
}
}
|
f588aa273
김태훈
부가 기능 로직 추가
|
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
void FavoriteNamePopup::ok()
{
int id;
switch (type)
{
case Manual:
id = CookHistory::addFavorite(manualSetting, ui->lineEdit->text());
break;
case Auto:
id = CookHistory::addFavorite(autoSetting, ui->lineEdit->text());
break;
default:
return;
}
|
e00c6a2a9
김태훈
기능 추가 구현
|
102
|
PrimeWindow *w = new PrimeWindow(MainWindow::getInstance());
|
f588aa273
김태훈
부가 기능 로직 추가
|
103
104
105
106
107
|
w->setWindowModality(Qt::WindowModal);
w->listFavorites();
w->focusFavorite(id);
w->showFullScreen();
w->raise();
|
e00c6a2a9
김태훈
기능 추가 구현
|
108
|
MainWindow::jump(w);
|
f588aa273
김태훈
부가 기능 로직 추가
|
109
110
111
112
113
114
|
}
void FavoriteNamePopup::cancel()
{
deleteLater();
}
|
f5634ecc7
김태훈
엔코더 구현
|
115
116
117
118
119
120
121
|
void FavoriteNamePopup::revert()
{
ui->lineEdit->setText(lastLine);
if (focusWidget() == ui->lineEdit)
ui->lineEdit->selectAll();
}
|
f588aa273
김태훈
부가 기능 로직 추가
|
122
123
124
125
126
127
128
129
130
|
void FavoriteNamePopup::on_okButton_clicked()
{
ok();
}
void FavoriteNamePopup::on_cancelButton_clicked()
{
cancel();
}
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
131
132
133
|
void FavoriteNamePopup::onEncoderLeft()
{
|
f5634ecc7
김태훈
엔코더 구현
|
134
135
136
137
|
if (focusWidget() == ui->lineEdit)
ui->cancelButton->setFocus();
else
focusPreviousChild();
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
138
139
140
141
|
}
void FavoriteNamePopup::onEncoderRight()
{
|
f5634ecc7
김태훈
엔코더 구현
|
142
143
144
145
146
147
148
|
if (focusWidget() == ui->cancelButton)
{
ui->lineEdit->setFocus();
ui->lineEdit->selectAll();
}
else
focusNextChild();
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
149
150
151
152
|
}
void FavoriteNamePopup::onEncoderClicked(QWidget *clicked)
{
|
f5634ecc7
김태훈
엔코더 구현
|
153
154
155
156
157
158
159
160
161
|
QPushButton *b = qobject_cast<QPushButton *>(clicked);
if (b)
b->click();
else
{
QLineEdit *e = qobject_cast<QLineEdit *>(clicked);
if (e)
ui->keyboard->focusInKeyboard();
}
|
9e1f8d093
김태훈
엔코더 구현 대비 선행 수정
|
162
|
}
|