+
+
+void MainWidget::updateSize ()
+{
+ QSize minSize (0, 80);
+
+ if (_settings->check (Settings::C_ShowLight))
+ minSize += QSize (80, 0);
+ if (_settings->check (Settings::C_ShowHint))
+ minSize += QSize (270, 0);
+ else {
+ if (_settings->check (Settings::C_ShowTime))
+ minSize += QSize (75, 0);
+ if (_settings->check (Settings::C_ShowRank))
+ minSize += QSize (75, 0);
+ }
+
+ setFixedSize (minSize);
+}
+
+
+
+void MainWidget::applySettings ()
+{
+ _light->setVisible (_settings->check (Settings::C_ShowLight));
+
+ updateSize ();
+
+ Log::instance ()->add (QString ("applySettings: updateInterval is %1").arg (_settings->updateInterval ()));
+
+ if (_settings->updateInterval () < 0) {
+ _timer->stop ();
+ Log::instance ()->add ("Timer disabled");
+ }
+ else {
+ _timer->setInterval (1000 * 60 * _settings->updateInterval ());
+ _timer->start ();
+ Log::instance ()->add (QString ("Timer interval set to %1 ms").arg (1000 * 60 * _settings->updateInterval ()));
+ }
+}
+
+
+bool MainWidget::event (QEvent *event)
+{
+ if (event->type () != QEvent::WindowActivate)
+ return QWidget::event (event);
+
+ MenuDialog menu (tr ("Yandex.Traffic"));
+
+ menu.addEntry (tr ("Settings")).addEntry (tr ("Update"));
+
+ switch (menu.run ()) {
+ case 0:
+ settingsDialog ();
+ break;
+ case 1:
+ _traffic->update ();
+ break;
+ }
+
+ return QWidget::event (event);
+}
+
+
+void MainWidget::deviceLockChanged (bool locked)
+{
+ if (!_settings->check (Settings::C_UpdateWhenLocked))
+ if (!locked)
+ updateData ();
+}