|  | 
| 64 | 64 | #include <QGraphicsView> | 
| 65 | 65 | #include <QInputDialog> | 
| 66 | 66 | #include <QJSEngine> | 
|  | 67 | +#include <QJSValueIterator> | 
| 67 | 68 | #include <QKeyEvent> | 
| 68 | 69 | #include <QListWidgetItem> | 
| 69 | 70 | #include <QMessageBox> | 
| @@ -11270,6 +11271,30 @@ void MainWindow::on_actionShow_note_git_versions_triggered() { | 
| 11270 | 11271 |     auto versions = Utils::Git::getNoteVersions(engine, currentNote, limit); | 
| 11271 | 11272 |     showStatusBarMessage(tr("Done with gathering note versions from git"), QStringLiteral("🕒"), | 
| 11272 | 11273 |                          2000); | 
|  | 11274 | + | 
|  | 11275 | +    // Init the iterator for checking if there are versions | 
|  | 11276 | +    QJSValueIterator versionsCheckIterator(versions); | 
|  | 11277 | + | 
|  | 11278 | +    // QJSValueIterator may report hasNext as true even if there are no valid items, | 
|  | 11279 | +    // so we check for at least one valid version with a humanReadableTimestamp property. | 
|  | 11280 | +    bool hasValidVersion = false; | 
|  | 11281 | +    while (versionsCheckIterator.hasNext()) { | 
|  | 11282 | +        versionsCheckIterator.next(); | 
|  | 11283 | +        QJSValue property = | 
|  | 11284 | +            versionsCheckIterator.value().property(QStringLiteral("humanReadableTimestamp")); | 
|  | 11285 | +        if (!property.isUndefined() && !property.toString().isEmpty()) { | 
|  | 11286 | +            hasValidVersion = true; | 
|  | 11287 | +            break; | 
|  | 11288 | +        } | 
|  | 11289 | +    } | 
|  | 11290 | + | 
|  | 11291 | +    if (!hasValidVersion) { | 
|  | 11292 | +        Utils::Gui::information(this, tr("No versions available"), | 
|  | 11293 | +                                tr("No versions are available for this note."), | 
|  | 11294 | +                                QStringLiteral("git-no-versions")); | 
|  | 11295 | +        return; | 
|  | 11296 | +    } | 
|  | 11297 | + | 
| 11273 | 11298 |     auto *dialog = new VersionDialog(versions); | 
| 11274 | 11299 |     dialog->setWindowTitle( | 
| 11275 | 11300 |         tr("Latest %n git versions of note: %1", "", limit).arg(currentNote.getFileName())); | 
|  | 
0 commit comments