Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
43 commits
Select commit Hold shift + click to select a range
2deda49
Initial
Winand Nov 22, 2021
0f62d38
init_completer and get_icon moved to backend
Winand Nov 23, 2021
75b77fc
Improve performance for unavailable network locations
Winand Nov 24, 2021
44875f2
Retrieving devices and known places moved to backend
Winand Nov 24, 2021
388be8d
Dictionary and YAML backends
Winand Mar 13, 2022
9c3dc78
Fix: ignore relative path
Winand Mar 14, 2022
85470e8
Refactor: Moved FilenameModel to backends subdir
Winand Mar 14, 2022
4d0f1df
Implemeted data model for Dictionary provider
Winand Mar 14, 2022
7454b82
Autocompleter, places or devices are optional for data providers
Winand Mar 14, 2022
1d110b0
Abstract superclass for data providers
Winand Mar 14, 2022
e1e1e7a
Abstract superclass for provider's data model
Winand Mar 14, 2022
9be865e
Use .parts to split path in Dictionary
Winand Mar 14, 2022
e3e173d
Refactor: fs_model -> model
Winand Mar 19, 2022
504825a
Put optional pip requirements in a separate file
Winand Mar 19, 2022
04bf243
Absolute imports inside package
Winand Mar 20, 2022
0fefccc
Fix: pylint does not identify Qt namespace import properly
Winand Mar 20, 2022
0b2b2e7
FilenameModel is the only model for Filesystem provider
Winand Jun 30, 2022
49f834f
Interfaces: DataModel provides default icon
Winand Jun 30, 2022
3b1b70d
Encoding can be specified for YAML file (utf-8 by default)
Winand Jun 30, 2022
24e3bd6
Icons for Dictionary data provider
Winand Jun 30, 2022
54f5382
Fix: node names are converted to strings on dict load
Winand Jun 30, 2022
af73224
Metadata is converted to full form on load
Winand Jun 30, 2022
defba78
_traverse returns node on specified path
Winand Jun 30, 2022
658a643
Fix: "working dir" for Dictionary is the 1st element
Winand Jun 30, 2022
f1da7e1
[docs] Dictionary data provider
Winand Jun 30, 2022
d2864b8
Property to get metadata
Winand Jul 4, 2022
43d5897
StandardPixmap is referred to with SP_ prefix
Winand Jul 4, 2022
9d1c26b
Root directory is allowed on root level only
Winand Jul 4, 2022
1b6409a
Places are supported by Dictionary data provider
Winand Jul 4, 2022
ab625a4
List of devices
Winand Jul 6, 2022
781ea3a
[docs] Metadata description updated
Winand Jul 6, 2022
32a9572
Tests
Winand Aug 21, 2022
f98db86
fix doc strings
Winand Aug 22, 2022
6bdc69f
Support '..' (parent) in paths
Winand Aug 22, 2022
4ccf7b4
Fix: do not raise exceptions in setPathPrefix
Winand Aug 22, 2022
4b9a5b5
Updated example
Winand Aug 22, 2022
e18ad29
Switched from pywin32 to pure ctypes
Winand Dec 6, 2022
fbd3837
[com] Interfaces are declared using decorators
Winand Dec 7, 2022
f763329
Python 3.8 compatible annotations
Winand Dec 7, 2022
b4ded64
update project structure
Winand Feb 23, 2025
24b9e3d
compatible with Qt6
Winand Feb 23, 2025
0dccfb5
pyyaml extra dependency
Winand Feb 24, 2025
97a8a7f
fix tests for PySide6
Winand Mar 17, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 0 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -22,4 +22,3 @@
**/obj
**/secrets.dev.yaml
**/values.dev.yaml
README.md
1 change: 1 addition & 0 deletions .python-version
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
3.12
2 changes: 1 addition & 1 deletion .vscode/launch.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
"configurations": [
{
"name": "Python: Current file",
"type": "python",
"type": "debugpy",
"request": "launch",
"program": "${file}",
"console": "integratedTerminal"
Expand Down
21 changes: 16 additions & 5 deletions .vscode/tasks.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@
},
{
// WSLg https://github.com/microsoft/wslg
// Needs `wsl_distro` to be specified in `settings.json`!!
// https://github.com/microsoft/wslg/blob/main/samples/container/Containers.md
"type": "docker-run",
"label": "docker-run: debug",
"dependsOn": [
Expand All @@ -28,25 +28,30 @@
// https://code.visualstudio.com/docs/containers/reference#_dockerrun-object-properties
"volumes": [
{
"localPath": "\\\\wsl.localhost\\${config:wsl_distro}\\mnt\\wslg",
"localPath": "/run/desktop/mnt/host/wslg",
"containerPath": "/mnt/wslg"
},
{
// https://unix.stackexchange.com/questions/196677/what-is-tmp-x11-unix
"localPath": "\\\\wsl.localhost\\${config:wsl_distro}\\tmp\\.X11-unix",
"localPath": "/run/desktop/mnt/host/wslg/.X11-unix",
"containerPath": "/tmp/.X11-unix"
},
{
"localPath": "\\\\wsl.localhost\\${config:wsl_distro}\\usr\\lib\\wsl",
"localPath": "/usr/lib/wsl",
"containerPath": "/usr/lib/wsl"
},
{
"localPath": "${workspaceFolder}",
"containerPath": "/app"
}
],
"env": {
"DISPLAY": ":0",
"WAYLAND_DISPLAY": "wayland-0",
"XDG_RUNTIME_DIR": "/mnt/wslg/runtime-dir",
"PULSE_SERVER": "/mnt/wslg/PulseServer",
"LD_LIBRARY_PATH": "/usr/lib/wsl/lib"
"LD_LIBRARY_PATH": "/usr/lib/wsl/lib",
// "QT_DEBUG_PLUGINS": "1",
}
// https://github.com/microsoft/vscode-docker/issues/3200
// , "remove": false
Expand All @@ -64,6 +69,12 @@
"file": "docker_import.py"
},
"dockerRun": {
"volumes": [
{
"localPath": "${workspaceFolder}",
"containerPath": "/app"
}
],
"env": {
"DISPLAY": "host.docker.internal:0.0"
}
Expand Down
71 changes: 55 additions & 16 deletions Dockerfile
Original file line number Diff line number Diff line change
@@ -1,35 +1,74 @@
FROM ghcr.io/astral-sh/uv:0.6.2 AS uv
COPY pyproject.toml uv.lock /

# For more information, please refer to https://aka.ms/vscode-docker-python
# FROM python:slim
FROM python:3.9-slim
FROM python:3.12-slim

# Keeps Python from generating .pyc files in the container
ENV PYTHONDONTWRITEBYTECODE=1

# Turns off buffering for easier container logging
ENV PYTHONUNBUFFERED=1

# Install pip requirements
COPY requirements.txt .
RUN python -m pip install -r requirements.txt

###############################################################################
# https://doc.qt.io/qt-5/linux-requirements.html
# export QT_DEBUG_PLUGINS=1
RUN apt update && apt install -y libxrender1 libxcb-render0 libxcb-render-util0 \
libxcb-shape0 libxcb-randr0 libxcb-xfixes0 libxcb-sync1 libxcb-shm0 \
libxcb-icccm4 libxcb-keysyms1 libxcb-image0 libxkbcommon0 \
libxkbcommon-x11-0 libfontconfig1 libfreetype6 libxext6 libx11-6 libxcb1 \
libx11-xcb1 libsm6 libice6 libglibd-2.0-0
# Additional requirements
RUN apt install -y libgl1 libxcb-xinerama0 libdbus-1-3
# Requirements: https://doc.qt.io/qt-5/linux-requirements.html | https://doc.qt.io/qt-6/linux-requirements.html
# Additional libraries for Qt5: libxcb-xinerama0 libxcursor1
# Check module load: ldd $(python -c "from PySide6 import QtWidgets as m; print(m.__file__)")
# Check Qt plugins load: QT_DEBUG_PLUGINS=1
# Check all libs: find /usr/local/lib/python3.12/site-packages/PySide6 -type f -executable ! -name "*.py" ! -path "*/scripts/*" | xargs -I {} sh -c 'echo {}; ldd "{}" | grep "not found"'
# Force Wayland or XCB: QT_QPA_PLATFORM=wayland | wayland-egl | xcb
RUN apt update && apt install -y \
libgl1 \
libxkbcommon0 \
libegl1 \
libfontconfig1 \
libglib2.0-0 \
libdbus-1-3 \
libxcb-cursor0 \
libxkbcommon-x11-0 \
libxcb-icccm4 \
libxcb-keysyms1 \
libxcb-shape0 \
libwayland-cursor0 \
libatomic1 \
libwayland-egl1 \
libxrender1 \
libice6 \
libsm6 \
&& rm -rf /var/lib/apt/lists/*

###############################################################################

WORKDIR /app
COPY . /app

# Creates a non-root user with an explicit UID and adds permission to access the /app folder
# For more info, please refer to https://aka.ms/vscode-docker-python-configure-containers
RUN adduser -u 5678 --disabled-password --gecos "" appuser && chown -R appuser /app
#
# Wayland requires $XDG_RUNTIME_DIR to be accessible for current user, so create
# user with uid 1000 because /run/desktop/mnt/host/wslg/runtime-dir ($XDG_RUNTIME_DIR)
# is mounted with that uid, see also https://github.com/microsoft/WSL/issues/9689
RUN adduser -u 1000 --disabled-password --gecos "" appuser && chown -R appuser /app

# Install project dependencies
# https://docs.astral.sh/uv/concepts/python-versions/#disabling-automatic-python-downloads
ENV UV_PYTHON_DOWNLOADS=never
# for uv sync https://docs.astral.sh/uv/concepts/projects/config/#project-environment-path
ENV UV_PROJECT_ENVIRONMENT=/usr/local
# Do not buffer stdout/stderr https://stackoverflow.com/a/59812588
ENV PYTHONUNBUFFERED=1 PYTHONDONTWRITEBYTECODE=1
RUN --mount=from=uv,source=/uv,target=/bin/uv \
--mount=from=uv,source=/pyproject.toml,target=/app/pyproject.toml \
--mount=from=uv,source=/uv.lock,target=/app/uv.lock \
# Install dependencies from an existing uv.lock: uv sync --frozen
uv sync --frozen --no-cache --no-install-project

# Install project in a separate layer for faster rebuilds
RUN --mount=from=uv,source=/uv,target=/bin/uv \
--mount=target=/app,type=bind,source=. \
cd /app && \
uv sync --frozen --no-cache

USER appuser

# During debugging, this entry point will be overridden. For more information, please refer to https://aka.ms/vscode-docker-python-debug
Expand Down
1 change: 0 additions & 1 deletion breadcrumbsaddressbar/__init__.py

This file was deleted.

170 changes: 0 additions & 170 deletions breadcrumbsaddressbar/models_views.py

This file was deleted.

13 changes: 0 additions & 13 deletions breadcrumbsaddressbar/stylesheet.py

This file was deleted.

Loading