# # # patch "src/view/dialogs/Netsync.cpp" # from [14449784c6e3a36a9fb4a7c362b0ba669e9564ca] # to [5387ae38dae7c533e47c3f5f05b47bf02ac2c4e4] # ============================================================ --- src/view/dialogs/Netsync.cpp 14449784c6e3a36a9fb4a7c362b0ba669e9564ca +++ src/view/dialogs/Netsync.cpp 5387ae38dae7c533e47c3f5f05b47bf02ac2c4e4 @@ -105,6 +105,7 @@ void Netsync::start(Action act, MonotoneTaskPtr task(new MonotoneTask(cmd, opts)); AutomateCommand::enqueueDatabaseTask(db, task); + progressText->setStyleSheet("QLabel { color: palette(text); }"); progressText->setText(tr("Connecting to %1...").arg(host)); startStopButton->setText(tr("Stop")); settingsGroup->setEnabled(false); @@ -162,11 +163,62 @@ void Netsync::processTaskResult(const Mo if (task->getReturnCode() != 0) { - progressText->setText(tr("Connection failed: %1") - .arg(task->getDecodedOutput())); + progressText->setStyleSheet("QLabel { color: red; }"); + + QRegExp re1("failed to decrypt old private RSA key"); + if (task->outOfBandMessagesMatch(MonotoneTask::Error, re1)) + { + progressText->setText( + tr("Could not decode private key, please check your settings.") + ); + return; + } + + QRegExp re2("network error: (.+)"); + if (task->outOfBandMessagesMatch(MonotoneTask::Error, re2)) + { + progressText->setText( + tr("An network error has occurred: %1").arg(re2.cap(1)) + ); + return; + } + + QRegExp re3("denied '(.+)' write permission for '(.+)'"); + if (task->outOfBandMessagesMatch(MonotoneTask::Warning, re3)) + { + progressText->setText( + tr("Key '%1' has no write permission for '%2'.") + .arg(re3.cap(1)).arg(re3.cap(2)) + ); + return; + } + + QRegExp re4("remote public key hash '(.+)' is unknown"); + if (task->outOfBandMessagesMatch(MonotoneTask::Warning, re4)) + { + progressText->setText( + tr("Key '%1' is unknown to server.").arg(re4.cap(1)) + ); + return; + } + + QRegExp re5("denied '(.+)' read permission for '(.+)' .+ because of branch '(.+)'"); + if (task->outOfBandMessagesMatch(MonotoneTask::Warning, re5)) + { + progressText->setText( + tr("Key '%1' has no read permission for '%2' because of branch '%3'.") + .arg(re5.cap(1)).arg(re5.cap(2)).arg(re5.cap(3)) + ); + return; + } + + progressText->setText( + tr("An unknown error occurred, please check the logs for details.") + ); return; } + progressText->setStyleSheet("QLabel { color: green; }"); progressText->setText(tr("Successful exchange with %1") .arg(QString(task->getArguments().at(1)))); }