Skip to main content

Cross-platform doorstop GUI editor

Project description

Doorstop Edit

A cross-platform GUI editor for doorstop powered by PySide6 (Qt).

The goal of this GUI is to provide all the tools needed to efficiently work with a larger set of requirements within the editor and at the same time have full control of what is happening. The editor use the doorstop API whenever possible to behave the same way as doorstop.

Sample

Features:

  • Modern and resizable views for custom layout.
  • Dark theme.
  • Item tree with status colors and search function for good overview and fast location.
  • Live markdown-HTML rendering.
  • Section or single mode reading.
  • Review and clear suspect links.
  • Edit additional attributes with boolean and string types.
  • Built-in item diff tool to review changes made on disk.
  • Markdown formatting tool powered by mdformat for the text attribute.
  • Pin feature for easy access to work-in-progress items.
  • And more...

TODO list:

  • Add and remove document.
  • Validating documents and items in a user-friendly manner.
  • File watcher for syncing/refreshing when changes made on disk.
  • Ability to change project root.

Install

Automatic install with pip:

pip install doorstop-edit

For source installation see Development section.

Demo/Testing

There is a python script that generates a document tree which can be useful when testing this application.

python3 tools/gen_sample_tree.py

# Output will be located in the dist/ folder.

Other doorstop GUI's

There exists at least two well known GUI's for doorstop editing, doorhole and the build-in GUI in doorstop.

Since both are pretty basic and have many missing features when working with a large and complex set of requrements, this new tool was created to fill in some gaps.

Development

This project is using poetry as build tool. Example of how to set it up:

# If Linux:
python3 -m venv .venv && source .venv/bin/activate

# If Windows (Git bash):
py -3 -m venv .venv && source .venv/Scripts/activate

# Then:
pip install poetry

Install project:

poetry install

Editing UI

PySide6 comes with the tool pyside6-designer which is used to edit the graphical parts of the UI. All the UI components (*.ui) are located in the ui/ folder which can be opened and edited with the tool.

When ruinning poetry install Python code is generated from the .ui files.

Testing

Tests are written with unittest framework and run with pytest. Tests are placed in the source structure in folders called test.

poetry run pytest

Static code analysis and style check

There is a script at tools/check_code.py that shall be run without errors.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

doorstop_edit-0.1.0b1.tar.gz (151.4 kB view hashes)

Uploaded Source

Built Distribution

doorstop_edit-0.1.0b1-cp310-cp310-manylinux_2_35_x86_64.whl (166.3 kB view hashes)

Uploaded CPython 3.10 manylinux: glibc 2.35+ x86-64

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page