# # # patch "src/view/dialogs/ChangeKeyPassword.cpp" # from [9b1251e7a8547a9ad74274a4b8254bf91bf94943] # to [8bd5fcf5013d47373ef0da3d5951449299fdd516] # # patch "src/view/dialogs/ChangeKeyPassword.h" # from [2a6c49b172801183406df48c4caee9fc0ee268af] # to [f8184326ecd4e84fecd06b91b898c0416718ae21] # # patch "src/view/dialogs/DatabaseDialogManager.cpp" # from [2cc6cb87b8c1d5661f183fa98e2e9b251c63229c] # to [8eb586843e869bb306a69457e39499435a3b8761] # # patch "src/view/dialogs/DatabaseDialogManager.h" # from [93ebc24723501563f4d2a0c5170af9756df33215] # to [29d744124aca70d56b42c1c4d11a4d585872bd7d] # # patch "src/view/dialogs/DialogManager.cpp" # from [d333fbc6c81e14cb2f1dfc5bbe4ba6d0e78728d1] # to [bd49f34e0464d9f62c68aebc1f48dc87d19213b7] # # patch "src/view/dialogs/DialogManager.h" # from [0afd1af8cca28d7519209a560784949e19988e10] # to [b01576f62dbfa6bb5b7d921b8d06ed2f3e0ddadb] # # patch "src/view/dialogs/GenerateKeypair.cpp" # from [a5ecff9abb5c83a965e3c782c424004819a6f708] # to [12446002b36af694fa6bbbe6f4d1eee11218db59] # # patch "src/view/dialogs/GenerateKeypair.h" # from [7c03b44f2a4ab18dc5125a5f59474f356f84a00d] # to [2f96e57ae54980f65a2420bcb78e8ae7f03adb2c] # # patch "src/view/dialogs/KeyManagement.cpp" # from [d0e3556aea2c55f38f012973839dfc46973951e1] # to [995e2e3ec808f8eae6bdf033f76ca832dbf514e6] # # patch "src/view/dialogs/WorkspaceDialogManager.cpp" # from [8d4a25eb22d5cb20bf3f3856388360b71c7cf339] # to [cf48e378c1871ff4f7357cd3311d547c4f55ed11] # ============================================================ --- src/view/dialogs/ChangeKeyPassword.cpp 9b1251e7a8547a9ad74274a4b8254bf91bf94943 +++ src/view/dialogs/ChangeKeyPassword.cpp 8bd5fcf5013d47373ef0da3d5951449299fdd516 @@ -129,7 +129,7 @@ void ChangeKeyPassword::accept() ); } - emit passwordChanged(); + emit keyPasswordChanged(keyHash); done(QDialog::Accepted); } ============================================================ --- src/view/dialogs/ChangeKeyPassword.h 2a6c49b172801183406df48c4caee9fc0ee268af +++ src/view/dialogs/ChangeKeyPassword.h f8184326ecd4e84fecd06b91b898c0416718ae21 @@ -33,7 +33,7 @@ signals: void init(const QString &); signals: - void passwordChanged(); + void keyPasswordChanged(const QString &); public slots: void accept(); ============================================================ --- src/view/dialogs/DatabaseDialogManager.cpp 2cc6cb87b8c1d5661f183fa98e2e9b251c63229c +++ src/view/dialogs/DatabaseDialogManager.cpp 8eb586843e869bb306a69457e39499435a3b8761 @@ -93,7 +93,7 @@ void DatabaseDialogManager::showCheckout { if (!checkoutRevision) { - checkoutRevision = new CheckoutRevision(parentWidget(), databaseFile); + checkoutRevision = new CheckoutRevision(parentWidget(), databaseFile); connect( checkoutRevision, SIGNAL(selectRevisionFromSelector(const QString &)), @@ -105,6 +105,11 @@ void DatabaseDialogManager::showCheckout checkoutRevision, SIGNAL(revisionCheckedOut(const QString &)), this, SIGNAL(revisionCheckedOut(const QString &)) ); + + connect( + this, SIGNAL(revisionSelected(const QString &)), + checkoutRevision, SLOT(setSelectedRevision(const QString &)) + ); } showDialog(checkoutRevision); @@ -143,13 +148,10 @@ void DatabaseDialogManager::showGenerate { generateKeypair = new GenerateKeypair(parentWidget(), databaseFile); - if (keyManagement) - { - connect( - generateKeypair, SIGNAL(keypairGenerated()), - keyManagement, SLOT(readKeys()) - ); - } + connect( + generateKeypair, SIGNAL(keypairGenerated(const QString &)), + this, SIGNAL(keypairGenerated(const QString &)) + ); } showDialog(generateKeypair); @@ -183,9 +185,14 @@ void DatabaseDialogManager::showKeyManag ); connect( - changeKeyPassword, SIGNAL(passwordChanged()), + this, SIGNAL(keyPasswordChanged(const QString &)), keyManagement, SLOT(readKeys()) ); + + connect( + this, SIGNAL(keypairGenerated(const QString &)), + keyManagement, SLOT(readKeys()) + ); } keyManagement->readKeys(); @@ -240,13 +247,10 @@ void DatabaseDialogManager::showSelectRe this, SLOT(showRevisionManifest(const QString &)) ); - if (checkoutRevision) - { - connect( - selectRevision, SIGNAL(revisionSelected(const QString &)), - checkoutRevision, SLOT(setSelectedRevision(const QString &)) - ); - } + connect( + selectRevision, SIGNAL(revisionSelected(const QString &)), + this, SIGNAL(revisionSelected(const QString &)) + ); } if (selector.size() > 0) ============================================================ --- src/view/dialogs/DatabaseDialogManager.h 93ebc24723501563f4d2a0c5170af9756df33215 +++ src/view/dialogs/DatabaseDialogManager.h 29d744124aca70d56b42c1c4d11a4d585872bd7d @@ -44,8 +44,10 @@ signals: //! delegated signals signals: + void revisionSelected(const QString &); void revisionCheckedOut(const QString &); void newProjectCreated(const QString &); + void keypairGenerated(const QString &); public slots: void showChangesetBrowser(); ============================================================ --- src/view/dialogs/DialogManager.cpp d333fbc6c81e14cb2f1dfc5bbe4ba6d0e78728d1 +++ src/view/dialogs/DialogManager.cpp bd49f34e0464d9f62c68aebc1f48dc87d19213b7 @@ -84,8 +84,8 @@ void DialogManager::showChangeKeyPasswor changeKeyPassword = new ChangeKeyPassword(parentWidget()); connect( - changeKeyPassword, SIGNAL(passwordChanged()), - this, SIGNAL(passwordChanged()) + changeKeyPassword, SIGNAL(keyPasswordChanged(const QString &)), + this, SIGNAL(keyPasswordChanged(const QString &)) ); } ============================================================ --- src/view/dialogs/DialogManager.h 0afd1af8cca28d7519209a560784949e19988e10 +++ src/view/dialogs/DialogManager.h b01576f62dbfa6bb5b7d921b8d06ed2f3e0ddadb @@ -44,7 +44,7 @@ signals: signals: void databaseCreated(const QString &); - void passwordChanged(); + void keyPasswordChanged(const QString &); void allDialogsClosed(); protected: ============================================================ --- src/view/dialogs/GenerateKeypair.cpp a5ecff9abb5c83a965e3c782c424004819a6f708 +++ src/view/dialogs/GenerateKeypair.cpp 12446002b36af694fa6bbbe6f4d1eee11218db59 @@ -73,7 +73,11 @@ void GenerateKeypair::accept() )); MonotoneUtil::runSynchronousDatabaseTask(databaseFile, task); - if (!task->isFinished()) F("task aborted"); + if (!task->isFinished()) + { + C(QString("key generation was aborted: %1").arg(task->getDecodedOutput())); + return; + } if (task->getReturnCode() > 0) { @@ -87,19 +91,21 @@ void GenerateKeypair::accept() return; } + BasicIOParser parser(task->getDecodedOutput()); + I(parser.parse()); + StanzaList stanzas = parser.getStanzas(); + I(stanzas.size() == 1); + Stanza st = stanzas.at(0); + I(st.size() > 1); + I(st.at(1).sym == "hash" && !st.at(1).hash.isEmpty()); + + QString keyHash = st.at(1).hash; + if (rememberPassword->isChecked()) { - BasicIOParser parser(task->getDecodedOutput()); - I(parser.parse()); - StanzaList stanzas = parser.getStanzas(); - I(stanzas.size() == 1); - Stanza st = stanzas.at(0); - I(st.size() > 1); - I(st.at(1).sym == "hash" && !st.at(1).hash.isEmpty()); - Settings::addItemToMap( "KeyPasswords", - st.at(1).hash, + keyHash, lineKeyPasswd->text() ); @@ -113,7 +119,7 @@ void GenerateKeypair::accept() ); } - emit keypairGenerated(); + emit keypairGenerated(keyHash); done(QDialog::Accepted); } ============================================================ --- src/view/dialogs/GenerateKeypair.h 7c03b44f2a4ab18dc5125a5f59474f356f84a00d +++ src/view/dialogs/GenerateKeypair.h 2f96e57ae54980f65a2420bcb78e8ae7f03adb2c @@ -31,7 +31,7 @@ signals: ~GenerateKeypair(); signals: - void keypairGenerated(); + void keypairGenerated(const QString &); public slots: void accept(); ============================================================ --- src/view/dialogs/KeyManagement.cpp d0e3556aea2c55f38f012973839dfc46973951e1 +++ src/view/dialogs/KeyManagement.cpp 995e2e3ec808f8eae6bdf033f76ca832dbf514e6 @@ -222,6 +222,15 @@ void KeyManagement::forgetPassword() Settings::removeItemFromMap("KeyPasswords", key->hash); model->readKeys(); + + QMessageBox::information( + this, + tr("Password removed"), + tr("Your key password has been removed. Please note that " + "currently opened workspaces and / or databases might " + "still cache the password."), + QMessageBox::Ok + ); } void KeyManagement::changePassword() @@ -231,7 +240,6 @@ void KeyManagement::changePassword() emit changeKeyPassword(key->hash); } - void KeyManagement::dropKey() { Key * key = getKeyFromSelection(); ============================================================ --- src/view/dialogs/WorkspaceDialogManager.cpp 8d4a25eb22d5cb20bf3f3856388360b71c7cf339 +++ src/view/dialogs/WorkspaceDialogManager.cpp cf48e378c1871ff4f7357cd3311d547c4f55ed11 @@ -52,7 +52,6 @@ void WorkspaceDialogManager::init(const cleanup(); } - void WorkspaceDialogManager::showCommitRevision() { showCommitRevision(QStringList()); @@ -148,13 +147,10 @@ void WorkspaceDialogManager::showUpdateW this, SIGNAL(workspaceUpdated(const QString &)) ); - if (selectRevision) - { - connect( - selectRevision, SIGNAL(revisionSelected(const QString &)), - updateWorkspace, SLOT(setSelectedRevision(const QString &)) - ); - } + connect( + this, SIGNAL(revisionSelected(const QString &)), + updateWorkspace, SLOT(setSelectedRevision(const QString &)) + ); } updateWorkspace->init();