Missed one file
[pierogi] / forms / pirpowersearchform.cpp
1 #include "pirpowersearchform.h"
2 #include "ui_pirpowersearchform.h"
3
4 #include "mainwindow.h"
5 #include "pirkeysetmanager.h"
6
7 #include <QTimer>
8 #include <QMutex>
9
10 // Debugging includes:
11 #include <iostream>
12
13 // Check if a command is running:
14 extern bool commandInFlight;
15 extern QMutex commandIFMutex;
16
17 /*
18 PIRPowerSearchForm::PIRPowerSearchForm(QWidget *parent) :
19   QWidget(parent),
20   ui(new Ui::PIRPowerSearchForm)
21 {
22   ui->setupUi(this);
23 }
24 */
25
26
27 PIRPowerSearchForm::PIRPowerSearchForm(
28   MainWindow *mw)
29   : QWidget(0),
30     ui(new Ui::PIRPowerSearchForm),
31     mainWindow(mw),
32     advanceTimer(0)
33 {
34   ui->setupUi(this);
35 }
36
37
38 PIRPowerSearchForm::~PIRPowerSearchForm()
39 {
40   delete ui;
41   if (advanceTimer) delete advanceTimer;
42 }
43
44 void PIRPowerSearchForm::setKeysetName(
45   QString name)
46 {
47   ui->keysetNameLabel->setText(name);
48 }
49
50 void PIRPowerSearchForm::on_stepBackwardButton_pressed()
51 {
52   if (mainWindow->selectPrevKeyset())
53   {
54     mainWindow->startRepeating(Power_Key);
55   }
56 }
57
58 void PIRPowerSearchForm::on_stepBackwardButton_released()
59 {
60   mainWindow->stopRepeating();
61 }
62
63 void PIRPowerSearchForm::on_stepForwardKey_pressed()
64 {
65   if (mainWindow->selectNextKeyset())
66   {
67     mainWindow->startRepeating(Power_Key);
68   }
69 }
70
71 void PIRPowerSearchForm::on_stepForwardKey_released()
72 {
73   mainWindow->stopRepeating();
74 }
75
76 void PIRPowerSearchForm::on_fastBackwardButton_pressed()
77 {
78   if (!mainWindow->selectPrevKeyset())
79   {
80     return;
81   }
82
83   mainWindow->startRepeating(Power_Key);
84
85   advanceTimer = new QTimer();
86   connect(advanceTimer, SIGNAL(timeout()), this, SLOT(gotoPrevKeyset()));
87   advanceTimer->start(100);
88 }
89
90 void PIRPowerSearchForm::on_fastBackwardButton_released()
91 {
92   delete advanceTimer;
93   advanceTimer = 0;
94   mainWindow->stopRepeating();
95 }
96
97 void PIRPowerSearchForm::on_fastForwardButton_pressed()
98 {
99   if (!mainWindow->selectNextKeyset())
100   {
101     return;
102   }
103
104   mainWindow->startRepeating(Power_Key);
105
106   advanceTimer = new QTimer();
107   connect(advanceTimer, SIGNAL(timeout()), this, SLOT(gotoNextKeyset()));
108   advanceTimer->start(50);
109 }
110
111
112 void PIRPowerSearchForm::on_fastForwardButton_released()
113 {
114   delete advanceTimer;
115   advanceTimer = 0;
116   mainWindow->stopRepeating();
117 }
118
119
120 void PIRPowerSearchForm::gotoPrevKeyset()
121 {
122   if (checkMutex())
123   {
124     mainWindow->stopRepeating();
125   }
126   else
127   {
128     if (mainWindow->selectPrevKeyset())
129     {
130       mainWindow->startRepeating(Power_Key);
131     }
132     else
133     {
134       delete advanceTimer;
135       advanceTimer = 0;
136     }
137   }
138 }
139
140
141 void PIRPowerSearchForm::gotoNextKeyset()
142 {
143   if (checkMutex())
144   {
145     mainWindow->stopRepeating();
146   }
147   else
148   {
149     if (mainWindow->selectNextKeyset())
150     {
151       mainWindow->startRepeating(Power_Key);
152     }
153     else
154     {
155       delete advanceTimer;
156       advanceTimer = 0;
157     }
158   }
159 }
160
161
162 bool PIRPowerSearchForm::checkMutex()
163 {
164   QMutexLocker locker(&commandIFMutex);
165   return commandInFlight;
166 }