adsfolio.gui.dialogs

Dialogs for identify and rename operations.

class adsfolio.gui.dialogs.ExplainedFormLabel(text, explanation, parent=None)[source]

Bases: PySide6.QtWidgets.QWidget

Form label with visible, keyboard-accessible contextual help.

Parameters:
staticMetaObject = PySide6.QtCore.QMetaObject("ExplainedFormLabel" inherits "QWidget": )
class adsfolio.gui.dialogs.IdentifyDialog(root, global_settings=None, library_settings=None, *, initial_scope='global', save_settings=None, files=(), parent=None)[source]

Bases: PySide6.QtWidgets.QDialog

Collect identify flags and run the CLI as a subprocess.

Parameters:
build_argv()[source]

Return the CLI argv represented by the current controls.

Return type:

list[str]

job_started
run_identify()[source]

Start Identify with the displayed controls without saving defaults.

Return type:

None

save_defaults()[source]

Persist reusable settings without running or closing the dialog.

Return type:

None

selected_providers()[source]
Return type:

tuple[adsfolio.pdf.doi_providers.DoiProvider, …]

selected_settings()[source]

Return normalized reusable values shown in the dialog.

Return type:

adsfolio.pdf.identify_settings.IdentifySettings

selected_strategies()[source]

Return enabled strategies in the displayed priority order.

Return type:

tuple[adsfolio.pdf.identify_settings.IdentifyStrategy, …]

start_job()[source]

Create and start the identify subprocess.

Return type:

adsfolio.gui.jobs.CommandJob

staticMetaObject = PySide6.QtCore.QMetaObject("IdentifyDialog" inherits "QDialog": Methods:   #41 type=Signal, signature=job_started(PyObject), parameters=PyObject )
class adsfolio.gui.dialogs.ManualMetadataDialog(path, metadata, *, save_metadata, parent=None)[source]

Bases: PySide6.QtWidgets.QDialog

Enter paper metadata and save it without an online lookup.

Parameters:
  • path (Path)

  • metadata (Mapping[str, Any])

  • save_metadata (Callable[[dict[str, Any]], None])

  • parent (QWidget | None)

fields: dict[str, QLineEdit | QPlainTextEdit]
staticMetaObject = PySide6.QtCore.QMetaObject("ManualMetadataDialog" inherits "QDialog": )
class adsfolio.gui.dialogs.OptionalYearSpinBox[source]

Bases: PySide6.QtWidgets.QSpinBox

Spin box that displays its zero sentinel as an empty year.

staticMetaObject = PySide6.QtCore.QMetaObject("OptionalYearSpinBox" inherits "QSpinBox": )
textFromValue(value)[source]

Render the minimum sentinel as blank.

Parameters:

value (int)

Return type:

str

class adsfolio.gui.dialogs.RenameDialog(root, global_settings=None, library_settings=None, *, initial_scope='global', identify_settings=None, save_settings=None, parent=None)[source]

Bases: PySide6.QtWidgets.QDialog

Preview and apply registry-backed PDF renames.

Parameters:
accept()[source]

Save reusable settings before accepting the dialog.

Return type:

None

apply()[source]

Start the confirmed rename subprocess.

Return type:

None

build_argv()[source]

Return the CLI argv represented by the dialog.

Return type:

list[str]

done(result)[source]

Stop a running preview when the dialog closes.

Parameters:

result (int)

Return type:

None

job_started
preview()[source]

Start a preview in a child process. The dialog stays responsive.

Return type:

None

selected_settings()[source]

Return normalized reusable values shown in the dialog.

Return type:

adsfolio.pdf.rename_settings.RenameSettings

staticMetaObject = PySide6.QtCore.QMetaObject("RenameDialog" inherits "QDialog": Methods:   #41 type=Signal, signature=job_started(PyObject), parameters=PyObject )
class adsfolio.gui.dialogs.RenamePreviewJob(root, options, parent=None)[source]

Bases: adsfolio.gui.jobs.JsonWorkerJob

Build a rename preview in a child process.

The preview reads every tracked PDF, so it must not run in the window’s process. finished carries the run_request payload and an error.

Parameters:
  • root (Path)

  • options (Mapping[str, Any])

  • parent (Any)

cancel()[source]

Stop the preview at once. A preview changes no files.

Return type:

None

command = 'rename-preview'
staticMetaObject = PySide6.QtCore.QMetaObject("RenamePreviewJob" inherits "JsonWorkerJob": )
class adsfolio.gui.dialogs.UserProfileDialog(profile, *, save_profile=None, parent=None)[source]

Bases: PySide6.QtWidgets.QDialog

Edit the global publication profile used for ADS prefetching.

Parameters:
accept()[source]

Persist the profile before accepting the dialog.

Return type:

None

selected_profile()[source]

Return the normalized profile shown in the dialog.

Return type:

adsfolio.user_profile.UserProfile

staticMetaObject = PySide6.QtCore.QMetaObject("UserProfileDialog" inherits "QDialog": )