|
QtPass 2.0.0
Developer documentation
|
Files | |
| appsettings.h | |
| AppSettings, the value object holding every flat QtPass setting. | |
| base32.cpp | |
| Implements the Base32 codec: quantum-by-quantum decode and encode loops with the tail-shape table that fixes KeePassXC's mis-padded cases. | |
| base32.h | |
| Strict RFC 4648 base32 codec plus the input sanitizer that makes human-typed TOTP secrets decodable. | |
| clipboardmanager.cpp | |
| Implements ClipboardManager and the per-platform clipboard hints that keep secrets out of clipboard histories. | |
| clipboardmanager.h | |
| ClipboardManager, which puts secrets on the clipboard and removes them again, and the MIME data that marks them as secrets. | |
| configdialog.cpp | |
| Implements ConfigDialog: loading and reading the widgets (applySettings(), readSettings()), the profile table with its validation (validate(), problemsOf(), sharingTheKey()) and the initialisation of stores for profiles added in the dialog (initializeNewProfiles()). | |
| configdialog.h | |
| Settings dialog: every page of the configuration window and the profile table, with the validation that gates OK. | |
| deselectabletreeview.h | |
| DeselectableTreeView: a QTreeView that clears its selection when empty space or an already-selected row is clicked. | |
| enums.h | |
| The Enums namespace: clipboard behaviour and the identifiers of the subprocess kinds QtPass queues. | |
| executor.cpp | |
| executor.h | |
| Executor, the FIFO queue every gpg, git and pass child process of QtPass goes through, and the WSL command parsing it shares with the settings code. | |
| exportpublickeydialog.cpp | |
| Implements ExportPublicKeyDialog: key-id sanitising for the suggested file name, the clipboard copy with its "Copied!" flash and the QSaveFile write. | |
| exportpublickeydialog.h | |
| Dialog that shows an ASCII-armored public key and lets the user copy it or save it as a .asc file. | |
| fieldlabel.cpp | |
| Implements FieldLabel; startEdit() and finishEdit() swap the label and its editor in and out of the parent's QFormLayout cell. | |
| fieldlabel.h | |
| FieldLabel: the in-place renamable, removable name label of a key: value field in PasswordDialog. | |
| filecontent.cpp | |
| Implements FileContent::parse() as a single streaming pass over the entry, with the field cap, the display-line cap and the OTP candidate search, plus the cached secret-field-name matcher. | |
| filecontent.h | |
| Parser for a decrypted password entry: password line, key: value fields, remaining text and the OTP configuration. | |
| firstrunwizard.cpp | |
| Implements FirstRunWizard and its pages; the store is created and initialised in FirstRunWizard::initialiseStore() on Finish. | |
| firstrunwizard.h | |
| The first-run wizard and its four pages: programs, key, store and summary. | |
| gpgidgeneration.cpp | |
| Implements the .gpg-id generation header and the per-store record of accepted generations. | |
| gpgidgeneration.h | |
| Rollback detection for signed .gpg-id files: the generation counter and the record of what was last seen. | |
| gpgidsigner.cpp | |
| Implements GpgIdSigner on top of gpg's --status-fd output. | |
| gpgidsigner.h | |
| GpgIdSigner, which signs a store's .gpg-id and verifies an existing .gpg-id.sig against the configured signing keys. | |
| gpgkeystate.cpp | |
| Implements the colon-listing parser: record classification, one handler per record type, and primary-fingerprint lookup. | |
| gpgkeystate.h | |
| Parsing of gpg --with-colons key listings into UserInfo records. | |
| gpgkeystate_p.h | |
| Record handlers of the gpg colon-listing parser, declared separately only so the unit tests can call them; not for use outside gpgkeystate.cpp. | |
| grepsearchcontroller.h | |
| GrepSearchController: the mode/busy/cancelled state machine behind MainWindow's content search. | |
| imitatepass.cpp | |
| Implements ImitatePass: the gpg and git command sequences behind each operation, the transactions that group them, and the re-encryption worker thread. | |
| imitatepass.h | |
| ImitatePass, the backend that does what pass does by running gpg and git itself. | |
| importkeydialog.cpp | |
| Implements ImportKeyDialog: the guarded key-file read, the blocking gpg --import call and the status-line parser for the imported key id. | |
| importkeydialog.h | |
| Dialog that imports an ASCII-armored GPG public key from a file or the clipboard by running gpg --import. | |
| keygendialog.cpp | |
| Implements KeygenDialog: form validation, splicing the passphrase into the GPG batch the way gpg itself reads it, and the one-attempt connections to the Pass backend. | |
| keygendialog.h | |
| Dialog that collects name, e-mail and passphrase for a new GPG keypair and drives gpg --gen-key --batch through the Pass backend. | |
| mainwindow.cpp | |
| Implements MainWindow; the backend signal wiring lives in connectBackends() and connectPassSignals(), the decrypted-entry rendering in passShowHandler(). | |
| mainwindow.h | |
| MainWindow: the main application window (tree, toolbar, search, status bar, process output dock) and the glue between the password store backends and the widgets. | |
| menubarpeek.cpp | |
| Implements MenuBarPeek; an application-wide event filter installed in the constructor feeds onKeyPress() and onKeyRelease(). | |
| menubarpeek.h | |
| MenuBarPeek: shows the main window's hidden menu bar while Alt is held or tapped, and hides it again afterwards. | |
| nativegrep.cpp | |
| Implements NativeGrep: the store walk, the per-file gpg runs and the hand-over of results from the worker thread. | |
| nativegrep.h | |
| NativeGrep, the content search that decrypts every entry on a worker thread instead of running pass grep. | |
| otpcodewidget.cpp | |
| Implements OtpCodeWidget: builds the code label, copy button and countdown bar, and owns the one-second refresh timer. | |
| otpcodewidget.h | |
| Self-refreshing widget showing an entry's current TOTP code with a countdown bar and optional copy button. | |
| pass.cpp | |
| Implements what both backends share: the environment the store's processes run in, the refusals for links and paths outside the store, .gpg-
id lookup, and Pass::finished(), which routes each finished process to its signal. | |
| pass.h | |
| Pass, the abstract password-store backend that RealPass and ImitatePass implement, and gpgErrorMessage(), which turns gpg's stderr into a message for the user. | |
| passbackendfactory.cpp | |
| Implements PassBackendFactory. The backends are held through pointers and constructed on first use, so nothing depends on the initialisation order of globals. | |
| passbackendfactory.h | |
| PassBackendFactory, which constructs the two Pass backends on demand and hands out the one the settings select. | |
| passwordconfiguration.h | |
| Value object for the password generator: chosen character set, its alphabets and the length. | |
| passworddialog.cpp | |
| Implements PasswordDialog: field rows built from templates and entry content, round-trip-safe serialisation in getPassword(), OTP validation and the locked-while-saving insert protocol. | |
| passworddialog.h | |
| Dialog for creating or editing one password entry, including the generator, template fields, OTP handling and the asynchronous save. | |
| passworddisplaypanel.cpp | |
| Implements PasswordDisplayPanel; the value browser and open-in-browser button are built by file-local helpers. | |
| passworddisplaypanel.h | |
| PasswordDisplayPanel: renders the decrypted fields of an entry (password, template fields, live OTP code) into the main window's grid, with copy/QR/open buttons and secret hiding. | |
| pathvalidator.cpp | |
| Implements PathValidator; storeRelativePath() does the canonical comparison the other checks build on. | |
| pathvalidator.h | |
| PathValidator: is a path inside the password store, and how is it spelled relative to the store root. | |
| processinfo.cpp | |
| The process table behind Enums::processInfo(); a missing row for a new Enums::PROCESS value fails the build here. | |
| processinfo.h | |
| Enums::ProcessInfo, the one table that names each kind of subprocess and says whether its output may carry a secret. | |
| processoutputpanel.cpp | |
| Implements ProcessOutputPanel; the sticky auto-scroll hysteresis is set up in the constructor, the line cap in limitLines(). | |
| processoutputpanel.h | |
| ProcessOutputPanel: the dockable console that shows numbered, colour-coded git/pass/gpg output. | |
| profile.h | |
| One named password store (Profile) and the name-to-profile map (Profiles) the settings trade in. | |
| profileinit.cpp | |
| Implements ProfileInit; the environments its gpg and git processes run in are built by withGpgHome() and gitEnvironment() here. | |
| profileinit.h | |
| Initialising a new profile's store (.gpg-id, signature, Git) with blocking processes, apart from the active store's backend. | |
| qpushbuttonasqrcode.cpp | |
| Implements QPushButtonAsQRCode: icon setup and the click re-emit. | |
| qpushbuttonasqrcode.h | |
| Icon button that asks for a stored secret to be shown as a QR code. | |
| qpushbuttonshowpassword.cpp | |
| Implements QPushButtonShowPassword: the echo-mode toggle and the matching icon and tooltip swap. | |
| qpushbuttonshowpassword.h | |
| Eye-icon button that toggles a QLineEdit between password and plain-text echo mode. | |
| qpushbuttonwithclipboard.cpp | |
| Implements QPushButtonWithClipboard: click re-emit and the 500 ms icon flash. | |
| qpushbuttonwithclipboard.h | |
| Copy-to-clipboard icon button that carries the text of the field it sits next to. | |
| qtpass.cpp | |
| Implements QtPass; init() holds the settings migrations run on every start-up and showTextAsQRCode() drives the qrencode process. | |
| qtpass.h | |
| QtPass: UI-neutral glue that turns backend completion signals into formatted output, status messages and clipboard handling. | |
| qtpasslogging.cpp | |
| Defines the lcQtPass logging category with info as its default level, so a release build can be traced without recompiling. | |
| qtpasslogging.h | |
| The "qtpass" logging category. | |
| qtpasssettings.cpp | |
| Implements QtPassSettings; getInstance() picks the portable qtpass.ini over the platform store, and getProfiles()/setProfiles() read and write the profile/<name>/ groups. | |
| qtpasssettings.h | |
| QtPassSettings, the QSettings singleton behind every saved setting, the profiles and the Pass backend accessors. | |
| realpass.cpp | |
| Implements RealPass: builds the pass command lines and does itself the few things pass must not be trusted with, such as removing a linked folder without following it. | |
| realpass.h | |
| RealPass, the backend that hands every store operation to the pass command-line tool. | |
| rnpcrypto.cpp | |
| Implements RnpCrypto over RNP's C FFI, with RAII wrappers for its handles and bounded in-memory input and output. | |
| rnpcrypto.h | |
| RnpCrypto, in-process OpenPGP encryption and decryption through the RNP library. | |
| secretlineedit.cpp | |
| Implements SecretLineEdit: the four copy paths (Ctrl+C, Cut, context menu, X11 primary selection) routed through buildClipboardMimeData(). | |
| secretlineedit.h | |
| QLineEdit whose copies, cuts and primary-selection fills carry the secret clipboard hints and are reported for autoclear. | |
| secretplaintextedit.cpp | |
| Implements SecretPlainTextEdit::createMimeDataFromSelection(), the single hook through which all copies leave the editor. | |
| secretplaintextedit.h | |
| QPlainTextEdit for editing decrypted entry text that marks everything copied out of it as a secret. | |
| secrettextbrowser.cpp | |
| Implements SecretTextBrowser::createMimeDataFromSelection(), copying plain text only so no unmarked HTML reaches the clipboard. | |
| secrettextbrowser.h | |
| QTextBrowser for showing decrypted entry text that marks everything copied out of it as a secret. | |
| settingsserializer.cpp | |
| Implements SettingsSerializer: one SettingsConstants key per AppSettings field, with the defaults applied in load() and the obsolete WebDAV keys dropped in save(). | |
| settingsserializer.h | |
| SettingsSerializer: the flat AppSettings fields to and from their QSettings keys, without side effects. | |
| simpletransaction.cpp | |
| Implements SimpleTransaction as a queue of (last process, result) pairs. | |
| simpletransaction.h | |
| SimpleTransaction, the bookkeeping that lets ImitatePass report several queued processes as one finished operation. | |
| singleapplication.cpp | |
| Implements SingleApplication; stale-segment and takeover-race recovery lives in the constructor and becomePrimary(). | |
| singleapplication.h | |
| SingleApplication: a QApplication that keeps one QtPass instance per user via a shared-memory segment and forwards later command lines over a local socket. | |
| sshauthsock.cpp | |
| Implements SshAuthSock; a probed socket is adopted only after ssh-add -l answers on it (isSshAgentReachable()). | |
| sshauthsock.h | |
| SshAuthSock: finding an SSH agent socket for child processes and judging a configured override. | |
| storemodel.cpp | |
| Implements StoreModel and the StoreDragItem stream operators; the drop validation lives in executeDropAction(). | |
| storemodel.h | |
| StoreModel, the filtering/sorting proxy over the store's QFileSystemModel, and StoreDragItem, the payload of a tree drag. | |
| storetree.cpp | |
| Implements StoreTree; setStore() is where the file system model, the proxy and the view are re-rooted together. | |
| storetree.h | |
| StoreTree: owns the QFileSystemModel and StoreModel behind the password tree view and maps view indexes to store paths. | |
| templateio.cpp | |
| Implements TemplateIO; template files are read through readTemplateFile(), which refuses anything but a small regular file. | |
| templateio.h | |
| TemplateIO: the store's .templates and .default_template files and the # secret: marker in template text. | |
| totp.cpp | |
| Implements Totp: otpauth URI parsing with its length cap and HOTP refusal, RFC 4226 dynamic truncation, Steam encoding and URI round-tripping. | |
| totp.h | |
| RFC 6238 TOTP: otpauth URI parsing, code generation and canonical re-serialisation. | |
| trayicon.cpp | |
| Implements TrayIcon; the tray is only set up when QSystemTrayIcon::isSystemTrayAvailable() says there is one. | |
| trayicon.h | |
| TrayIcon: the system tray icon and its context menu that show, hide, minimise, maximise, restore or quit the main window. | |
| userinfo.h | |
| UserInfo, one GPG key as listed by gpg, with the selection flag the recipient dialogs use. | |
| usersdialog.cpp | |
| Implements UsersDialog; selectRecipients() matches the .gpg-id lines against the keyring and lists the ones no key answers to. | |
| usersdialog.h | |
| UsersDialog, the recipient picker for a folder's .gpg-id. | |
| util.cpp | |
| Implements Util; the staged, link-safe store writes (stageFileReplacing() and its helpers) and the store walk (walkStore()) live here. | |
| util.h | |
| Util: static helpers for the process environment, binary discovery, store paths, URL safety and the link-safe file operations every write into a store goes through. | |
| windowstatestore.cpp | |
| Implements WindowStateStore on top of QWidget::saveGeometry() / restoreGeometry(); the Wayland check lives in the local onWayland(). | |
| windowstatestore.h | |
| WindowStateStore: saves and restores top-level window geometry through QtPassSettings, for the main window and every dialog. | |