Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Choose database for saving or updating entries from KeePassXC-Browser #2391

Merged
merged 1 commit into from Oct 19, 2018

Conversation

Projects
None yet
3 participants
@varjolintu
Copy link
Member

varjolintu commented Oct 17, 2018

When updating or creating credentials from KeePassXC-Browser an additional dialog is shown.

Description

If the user has multiple open databases and credentials are saved or updated from KeePassXC-Browser, a popup dialog is displayed where the correct one must be choosed (or cancel the operation).

The current active database is selected by default.

Motivation and context

Fixes #1791.

How has this been tested?

Manually. Because of the changed, I'll add some new tests for DatabaseTabWidget if necessary.

Screenshots (if appropriate):

database-selection

Types of changes

  • New feature (non-breaking change which adds functionality)

Checklist:

  • I have read the CONTRIBUTING document. [REQUIRED]
  • My code follows the code style of this project. [REQUIRED]
  • All new and existing tests passed. [REQUIRED]
  • I have compiled and verified my code with -DWITH_ASAN=ON. [REQUIRED]

@varjolintu varjolintu added this to the v2.4.0 milestone Oct 17, 2018

@varjolintu varjolintu force-pushed the varjolintu:entry_save_dialog branch from b5343c4 to 631f468 Oct 17, 2018

@droidmonkey

This comment has been minimized.

Copy link
Member

droidmonkey commented Oct 17, 2018

Can you also output the database name (if available), not just the file, in the dialog?

@varjolintu

This comment has been minimized.

Copy link
Member Author

varjolintu commented Oct 18, 2018

@droidmonkey It already does that. See line 677. But I guess you meant both at the same time?

@droidmonkey

This comment has been minimized.

Copy link
Member

droidmonkey commented Oct 18, 2018

Yes sir.

[DB_NAME] (FILENAME)

@varjolintu varjolintu force-pushed the varjolintu:entry_save_dialog branch 3 times, most recently from 503c33d to 27ec2ac Oct 18, 2018

@varjolintu

This comment has been minimized.

Copy link
Member Author

varjolintu commented Oct 18, 2018

@droidmonkey Fixed. Screenshot is also updated.

Show resolved Hide resolved src/browser/BrowserEntrySaveDialog.cpp
QList<QListWidgetItem*> BrowserEntrySaveDialog::getSelected() const
{
return ui->itemsList->selectedItems();
}

This comment has been minimized.

Copy link
@droidmonkey

droidmonkey Oct 18, 2018

Member

Missing newline at end

Show resolved Hide resolved src/browser/BrowserEntrySaveDialog.h
QList<QListWidgetItem *> getSelected() const;

private:
QScopedPointer<Ui::BrowserEntrySaveDialog> ui;

This comment has been minimized.

Copy link
@droidmonkey

public:
explicit BrowserEntrySaveDialog(QWidget* parent = nullptr);
~BrowserEntrySaveDialog();

This comment has been minimized.

Copy link
@droidmonkey

droidmonkey Oct 18, 2018

Member

override

return widgetList;
}

QString DatabaseTabWidget::getTabName(DatabaseWidget* dbWidget, const bool includeFilename) const

This comment has been minimized.

Copy link
@droidmonkey

droidmonkey Oct 18, 2018

Member

It would be better to refactor so that the databaseWidget knows what it's filename is and you query it directly. We are perpetuating the terrible code that is databaseTabWidget...

{
uint counter = 0;
int activeIndex = -1;
for (const auto i : databaseWidgets) {

This comment has been minimized.

Copy link
@droidmonkey

droidmonkey Oct 18, 2018

Member

const auto dbWidget

int activeIndex = -1;
for (const auto i : databaseWidgets) {
QListWidgetItem* item = new QListWidgetItem();
item->setText(dbTabWidget->getTabName(i, true));

This comment has been minimized.

Copy link
@droidmonkey

droidmonkey Oct 18, 2018

Member

As discussed in an earlier comment, I would rather this come directly from the databaseWidget itself. We should not be extending the databaseTabWidget anymore.

@varjolintu varjolintu force-pushed the varjolintu:entry_save_dialog branch from 9258eaa to c175cdb Oct 19, 2018

@varjolintu

This comment has been minimized.

Copy link
Member Author

varjolintu commented Oct 19, 2018

@droidmonkey Moved the file and tab name functionality to DatabaseWidget instead. Screenshot updated (also showing an unsaved database that is connected to KeePassXC-Browser).

@varjolintu varjolintu force-pushed the varjolintu:entry_save_dialog branch from c175cdb to a661646 Oct 19, 2018

@weslly

weslly approved these changes Oct 19, 2018

@droidmonkey droidmonkey merged commit b8d2d5d into keepassxreboot:develop Oct 19, 2018

3 checks passed

CodeFactor No issues found.
Details
Ubuntu Linux (KeepassXC) TeamCity build finished
Details
Windows 10 (KeepassXC) TeamCity build finished
Details

@varjolintu varjolintu deleted the varjolintu:entry_save_dialog branch Oct 21, 2018

droidmonkey added a commit that referenced this pull request Mar 19, 2019

Release 2.4.0
- New Database Wizard [#1952]
- Advanced Search [#1797]
- Automatic update checker [#2648]
- KeeShare database synchronization [#2109, #1992, #2738, #2742, #2746, #2739]
- Improve favicon fetching; transition to Duck-Duck-Go [#2795, #2011, #2439]
- Remove KeePassHttp support [#1752]
- CLI: output info to stderr for easier scripting [#2558]
- CLI: Add --quiet option [#2507]
- CLI: Add create command [#2540]
- CLI: Add recursive listing of entries [#2345]
- CLI: Fix stdin/stdout encoding on Windows [#2425]
- SSH Agent: Support OpenSSH for Windows [#1994]
- macOS: TouchID Quick Unlock [#1851]
- macOS: Multiple improvements; include CLI in DMG [#2165, #2331, #2583]
- Linux: Prevent Klipper from storing secrets in clipboard [#1969]
- Linux: Use polling based file watching for NFS [#2171]
- Linux: Enable use of browser plugin in Snap build [#2802]
- TOTP QR Code Generator [#1167]
- High-DPI Scaling for 4k screens [#2404]
- Make keyboard shortcuts more consistent [#2431]
- Warn user if deleting referenced entries [#1744]
- Allow toolbar to be hidden and repositioned [#1819, #2357]
- Increase max allowed database timeout to 12 hours [#2173]
- Password generator uses existing password length by default [#2318]
- Improve alert message box button labels [#2376]
- Show message when a database merge makes no changes [#2551]
- Browser Integration Enhancements [#1497, #2253, #1904, #2232, #1850, #2218, #2391, #2396, #2542, #2622, #2637, #2790]
- Overall Code Improvements [#2316, #2284, #2351, #2402, #2410, #2419, #2422, #2443, #2491, #2506, #2610, #2667, #2709, #2731]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.