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

Allow setting default file open directory with env var #9192

Merged
merged 1 commit into from
Apr 30, 2023

Conversation

ShellCode33
Copy link
Contributor

@ShellCode33 ShellCode33 commented Mar 1, 2023

Testing strategy

Made sure the KPXC_INITIAL_DIR environment variable works as intended. This is a very minor change, I don't think adding a unit test for it would be worth it. Writing the test would actually require more core than the code itself. Plus, other environment variables are not tested either.

I did run the test suite though, everything's ok !

Type of change

  • ✅ Bug fix (one of the unit tests didn't pass, I fixed it in my second commit)
  • ✅ New feature (change that adds functionality)
  • ✅ Documentation (non-code change)

Other

I replaced :

config()->get(Config::LastDir).toString()

with :

FileDialog::getLastDir("db")

Let me know if I shouldn't have done that, I don't know much about C++ but the .toString() felt wrong.

The FileDialog::saveLastDir() sets the Config::LastDir to a hashmap, how can a toString() work ? Plus I had to call the wrapper method getLastDir() in order to get the default directory to work, getting it from the config directly would bypass that.

void FileDialog::saveLastDir(const QString& role, const QString& path, bool sensitive)
{
auto lastDirs = config()->get(Config::LastDir).toHash();
if (sensitive && !config()->get(Config::RememberLastDatabases).toBool()) {
// Ensure this role is forgotten
lastDirs.remove(role);
} else {
auto pathInfo = QFileInfo(path);
if (!pathInfo.exists()) {
lastDirs.remove(role);
} else {
lastDirs.insert(role, pathInfo.absolutePath());
}
}
config()->set(Config::LastDir, lastDirs);
}

@ShellCode33
Copy link
Contributor Author

ShellCode33 commented Mar 1, 2023

It's weird that the CI is failing on the test I've fixed in this PR, is there some cache mecanism involved ?

""It works on my computer""

100% tests passed, 0 tests failed out of 40

Copy link
Member

@droidmonkey droidmonkey left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exactly how I was thinking to implement this

@droidmonkey droidmonkey changed the title Add feature #9182 Allow setting default file open directory with env var Mar 1, 2023
tests/TestCli.cpp Outdated Show resolved Hide resolved
@droidmonkey droidmonkey merged commit cf819e0 into keepassxreboot:develop Apr 30, 2023
@droidmonkey droidmonkey added the pr: backported Pull request backported to previous release label May 1, 2023
Perlover added a commit to Perlover/keepassxc that referenced this pull request May 18, 2023
Release 2.7.5

- Add menu option to allow screenshots [keepassxreboot#8841]
- Add support for Botan 3 [keepassxreboot#9388]
- Increase max TOTP step to 24 hours [keepassxreboot#9149]
- Improve HTML export layout [keepassxreboot#8987]
- Turn search reset off by default [keepassxreboot#9153]
- Use QClipboard::clear() instead of setting blank text [keepassxreboot#9148]
- Hide group column header choice when not in search [keepassxreboot#9171]
- Improve look of KeePassXC logo and icons [keepassxreboot#9355]
- Add keyboard shortcuts for app and database settings [keepassxreboot#9007]
- Hide rename button from attachments preview panel [keepassxreboot#8842]
- Linux: Set SingleMainWindow in .desktop file [keepassxreboot#7430]

- Fix crash when search clears while creating new entry [keepassxreboot#9230]
- Fix crash when using Windows Hello in a Remote Desktop session [keepassxreboot#9006]
- Fix crash in Group Edit after enabling Browser Integration [keepassxreboot#8778]
- Fix canceling quick unlock when it is unavailable [keepassxreboot#9034]
- Set password input field font correctly [keepassxreboot#8732]
- Greatly improve performance when rendering entry view [keepassxreboot#9398]
- Fix various accessibility issues [keepassxreboot#9138]
- Fix arrows size when expand/collapse a group [keepassxreboot#9096]
- Select the clone instead of the original after cloning an entry [keepassxreboot#9070]
- Fix bugs with preview widget [keepassxreboot#9170]
- Fix status bar update when switching to other DB [keepassxreboot#9073]
- Fix database settings spin box bug [keepassxreboot#9101]
- Fix Ctrl+Tab shortcut to cycle databases in unlock dialog [keepassxreboot#8839]
- Fix TOTP QR code maintaining square ratio [keepassxreboot#9027]
- Fix Auto-Type configuration page on custom sequence selection [keepassxreboot#8752]
- Fix unexpected behavior of `--lock` when KeePassXC is not running [keepassxreboot#8889]
- Make open folder icon exempt from "Apply group icon to entry" [keepassxreboot#9205]
- Allow setting default file open directory with env var [keepassxreboot#9192]
- SSH Agent: Fix support for AES-256/GCM openssh keys [keepassxreboot#8968]
- Browser: Fix Native Messaging script path with BSD OS's [keepassxreboot#8835]
- MacOS: Fix text selection for Auto-Type clear field [keepassxreboot#9066]
- MacOS: Don't rely on AppleInterfaceStyle for theme switching [keepassxreboot#8615]
- Windows: Remove registry detection of desktop shortcut [keepassxreboot#9380]
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
pr: backported Pull request backported to previous release ux
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants