15
16
* You should have received a copy of the GNU General Public License
16
17
* along with this program; if not, write to the Free Software
17
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
18
* Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA 02110-1335, USA.
20
21
#include "Dialog.hpp"
51
52
ui->setupUi(dialog);
52
53
double jd = StelApp::getInstance().getCore()->getJDay();
53
setDateTime(jd + (StelApp::getInstance().getLocaleMgr().getGMTShift(jd)/24.0)); // UTC -> local tz
55
setDateTime(jd + (StelApp::getInstance().getLocaleMgr().getGMTShift(jd)/24.0));
55
connect(&StelApp::getInstance(), SIGNAL(languageChanged()), this, SLOT(languageChanged()));
57
connect(&StelApp::getInstance(), SIGNAL(languageChanged()), this, SLOT(retranslate()));
56
58
connect(ui->closeStelWindow, SIGNAL(clicked()), this, SLOT(close()));
60
connectSpinnerEvents();
63
void DateTimeDialog::connectSpinnerEvents() const
58
65
connect(ui->spinner_year, SIGNAL(valueChanged(int)), this, SLOT(yearChanged(int)));
59
66
connect(ui->spinner_month, SIGNAL(valueChanged(int)), this, SLOT(monthChanged(int)));
60
67
connect(ui->spinner_day, SIGNAL(valueChanged(int)), this, SLOT(dayChanged(int)));
61
68
connect(ui->spinner_hour, SIGNAL(valueChanged(int)), this, SLOT(hourChanged(int)));
62
69
connect(ui->spinner_minute, SIGNAL(valueChanged(int)), this, SLOT(minuteChanged(int)));
63
70
connect(ui->spinner_second, SIGNAL(valueChanged(int)), this, SLOT(secondChanged(int)));
65
connect(this, SIGNAL(dateTimeChanged(double)), StelApp::getInstance().getCore(), SLOT(setJDay(double)));
73
void DateTimeDialog::disconnectSpinnerEvents()const
75
disconnect(ui->spinner_year, SIGNAL(valueChanged(int)), this, SLOT(yearChanged(int)));
76
disconnect(ui->spinner_month, SIGNAL(valueChanged(int)), this, SLOT(monthChanged(int)));
77
disconnect(ui->spinner_day, SIGNAL(valueChanged(int)), this, SLOT(dayChanged(int)));
78
disconnect(ui->spinner_hour, SIGNAL(valueChanged(int)), this, SLOT(hourChanged(int)));
79
disconnect(ui->spinner_minute, SIGNAL(valueChanged(int)), this, SLOT(minuteChanged(int)));
80
disconnect(ui->spinner_second, SIGNAL(valueChanged(int)), this, SLOT(secondChanged(int)));
68
84
//! take in values, adjust for calendrical correctness if needed, and push to
69
85
//! the widgets and signals
72
88
int dy, dm, dd, dh, dmin, ds;
74
if ( ! StelUtils::changeDateTimeForRollover(y, m, d, h, min, s, &dy, &dm, &dd, &dh, &dmin, &ds) )
90
if (!StelUtils::changeDateTimeForRollover(y, m, d, h, min, s, &dy, &dm, &dd, &dh, &dmin, &ds)) {
161
177
void DateTimeDialog::pushToWidgets()
163
ui->spinner_year->setValue(year);
164
ui->spinner_month->setValue(month);
165
ui->spinner_day->setValue(day);
166
ui->spinner_hour->setValue(hour);
167
if (!ui->spinner_minute->hasFocus() || (ui->spinner_minute->value() == -1) || (ui->spinner_minute->value() == 60))
168
ui->spinner_minute->setValue(minute);
169
if (!ui->spinner_second->hasFocus() || (ui->spinner_second->value() == -1) || (ui->spinner_second->value() == 60))
170
ui->spinner_second->setValue(second);
179
disconnectSpinnerEvents();
180
ui->spinner_year->setValue(year);
181
ui->spinner_month->setValue(month);
182
ui->spinner_day->setValue(day);
183
ui->spinner_hour->setValue(hour);
184
if (!ui->spinner_minute->hasFocus()
185
|| (ui->spinner_minute->value() == -1)
186
|| (ui->spinner_minute->value() == 60)) {
187
ui->spinner_minute->setValue(minute);
189
if (!ui->spinner_second->hasFocus()
190
|| (ui->spinner_second->value() == -1)
191
|| (ui->spinner_second->value() == 60)) {
192
ui->spinner_second->setValue(second);
194
connectSpinnerEvents();
173
197
/************************************************************************
175
199
************************************************************************/
176
200
void DateTimeDialog::setDateTime(double newJd)
178
newJd += (StelApp::getInstance().getLocaleMgr().getGMTShift(newJd)/24.0); // UTC -> local tz
179
StelUtils::getDateFromJulianDay(newJd, &year, &month, &day);
180
StelUtils::getTimeFromJulianDay(newJd, &hour, &minute, &second);
202
if (this->visible()) {
203
newJd += (StelApp::getInstance().getLocaleMgr().getGMTShift(newJd)/24.0); // UTC -> local tz
204
StelUtils::getDateFromJulianDay(newJd, &year, &month, &day);
205
StelUtils::getTimeFromJulianDay(newJd, &hour, &minute, &second);