@@ -47,6 +47,16 @@ DbBackupsTrackerController::DbBackupsTrackerController(MainWindow *window, WSCli
4747 this , &DbBackupsTrackerController::handleDeviceConnectedChanged);
4848
4949 handleFirmwareVersionChange (wsClient->get_fwVersion ());
50+ handleDeviceStatusChanged (wsClient->get_status ());
51+ handleDeviceConnectedChanged (wsClient->isConnected ());
52+
53+ // Delay the init in the next event loop call. Not in constructor.
54+ QTimer::singleShot (0 , [=]()
55+ {
56+ handleCardDbMetadataChanged (wsClient->get_cardId (),
57+ wsClient->get_credentialsDbChangeNumber (),
58+ wsClient->get_dataDbChangeNumber ());
59+ });
5060}
5161
5262void DbBackupsTrackerController::setBackupFilePath (const QString &path)
@@ -67,6 +77,7 @@ void DbBackupsTrackerController::handleCardDbMetadataChanged(QString cardId,
6777 int credentialsDbChangeNumber,
6878 int dataDbChangeNumber)
6979{
80+ qDebug () << " Card meta data changed " << cardId << " - " << credentialsDbChangeNumber << " - " << dataDbChangeNumber;
7081 window->hidePrompt ();
7182
7283 dbBackupsTracker.setCardId (cardId);
@@ -79,28 +90,27 @@ void DbBackupsTrackerController::handleCardDbMetadataChanged(QString cardId,
7990 emit backupFilePathChanged (path);
8091}
8192
82-
8393void DbBackupsTrackerController::askForImportBackup ()
8494{
85- askImportMessage = new QMessageBox (window);
86- askImportMessage->setWindowTitle (tr (" Import db backup" ));
87- askImportMessage->setText (tr (" Credentials in the backup file are more recent. "
88- " Do you want to import credentials to the device?" ));
89-
90- askImportMessage->addButton (QMessageBox::Yes);
91- askImportMessage->addButton (QMessageBox::No);
92- askImportMessage->setDefaultButton (QMessageBox::No);
93- askImportMessage->setModal (true );
94-
95- int btn = askImportMessage->exec ();
96- askImportMessage->deleteLater ();
97- askImportMessage = nullptr ;
98-
99- if (btn == QMessageBox::Yes)
100- {
101- QString data = readDbBackupFile ();
102- importDbBackup (data);
103- }
95+ askImportMessage = new QMessageBox (window);
96+ askImportMessage->setWindowTitle (tr (" Import db backup" ));
97+ askImportMessage->setText (tr (" Credentials in the backup file are more recent. "
98+ " Do you want to import credentials to the device?" ));
99+
100+ askImportMessage->addButton (QMessageBox::Yes);
101+ askImportMessage->addButton (QMessageBox::No);
102+ askImportMessage->setDefaultButton (QMessageBox::No);
103+ askImportMessage->setModal (true );
104+
105+ int btn = askImportMessage->exec ();
106+ askImportMessage->deleteLater ();
107+ askImportMessage = nullptr ;
108+
109+ if (btn == QMessageBox::Yes)
110+ {
111+ QString data = readDbBackupFile ();
112+ importDbBackup (data);
113+ }
104114}
105115
106116void DbBackupsTrackerController::importDbBackup (QString data)
@@ -117,6 +127,8 @@ void DbBackupsTrackerController::importDbBackup(QString data)
117127
118128void DbBackupsTrackerController::handleGreaterDbBackupChangeNumber ()
119129{
130+ qDebug () << " Backup file is greater than device" ;
131+
120132 hideExportRequestIfVisible ();
121133 hideImportRequestIfVisible ();
122134 askForImportBackup ();
@@ -133,9 +145,9 @@ void DbBackupsTrackerController::askForExportBackup()
133145 std::function<void ()> onReject = [this ]()
134146 {
135147 QMessageBox::StandardButton btn = QMessageBox::warning (
136- window, tr (" Be careful" ),
137- tr (" By denying you can loose your changes. Do you want to continue?" ),
138- QMessageBox::Yes | QMessageBox::No);
148+ window, tr (" Be careful" ),
149+ tr (" By denying you can loose your changes. Do you want to continue?" ),
150+ QMessageBox::Yes | QMessageBox::No);
139151
140152 if (btn == QMessageBox::Yes)
141153 {
@@ -173,6 +185,8 @@ void DbBackupsTrackerController::exportDbBackup()
173185
174186void DbBackupsTrackerController::handleLowerDbBackupChangeNumber ()
175187{
188+ qDebug () << " Device is newer than backup" ;
189+
176190 hideImportRequestIfVisible ();
177191 hideExportRequestIfVisible ();
178192 askForExportBackup ();
@@ -191,7 +205,7 @@ void DbBackupsTrackerController::clearTrackerCardInfo()
191205 dbBackupsTracker.setCardId (" " );
192206 dbBackupsTracker.setDataDbChangeNumber (0 );
193207 dbBackupsTracker.setCredentialsDbChangeNumber (0 );
194- }
208+ }
195209
196210
197211void DbBackupsTrackerController::handleExportDbResult (const QByteArray &d, bool success)
@@ -241,14 +255,16 @@ void DbBackupsTrackerController::handleFirmwareVersionChange(const QString &)
241255{
242256 if (wsClient->isFw12 ())
243257 {
258+ qDebug () << " Setup db tracking" ;
244259 window->showDbBackTrackingControls (true );
245260 connectDbBackupsTracker ();
246- } else
261+ }
262+ else
247263 {
264+ qDebug () << " Db tracking is not available for fw < 1.2" ;
248265 window->showDbBackTrackingControls (false );
249266 disconnectDbBackupsTracker ();
250267 }
251-
252268}
253269
254270void DbBackupsTrackerController::hideExportRequestIfVisible ()
@@ -266,13 +282,12 @@ void DbBackupsTrackerController::hideImportRequestIfVisible()
266282 askImportMessage->reject ();
267283}
268284
269-
270285QString DbBackupsTrackerController::getBackupFilePath ()
271286{
272- QString id = dbBackupsTracker.getCardId ();
273- QString file = dbBackupsTracker.getTrackPath (id);
287+ QString id = dbBackupsTracker.getCardId ();
288+ QString file = dbBackupsTracker.getTrackPath (id);
274289
275- return file;
290+ return file;
276291}
277292
278293QString DbBackupsTrackerController::readDbBackupFile ()
0 commit comments