Skip to content

Directory Tree

Hyacinthe-primus edited this page Nov 9, 2026 · 9 revisions

File Converter Pro – Directory Tree

This is the current repository layout after the application and dialog package splits. Generated build output, caches, runtime databases, and local-only notes are omitted from the tree and summarized below it.

File Converter Pro/
│
├── .github/
│   ├── ISSUE_TEMPLATE/
│   │   ├── bug_report.md
│   │   └── feature_request.md
│   └── FUNDING.yml
│
├── Checksum/
│   └── checksums.txt
│
├── Output/                             # Generated release artifacts
│
├── packaging/
│   ├── build/                          # PyInstaller intermediates (generated)
│   ├── dist/FCP/                       # Onedir application build (generated)
│   ├── build.ps1                       # Build the main application
│   ├── build_all.ps1                   # Build app + installer
│   ├── build_installer.ps1             # Build the Inno Setup installer
│   ├── build_quick_check.ps1           # Build the Quick Check utility
│   ├── build.spec                      # PyInstaller spec for the main app
│   ├── quick_check.spec                # PyInstaller spec for Quick Check
│   ├── setup.iss                       # Inno Setup installer script
│   ├── manifest.xml                    # Windows application manifest
│   ├── version_info.txt                # Windows version resource
│   └── installer_banner.png            # Installer banner
│
├── previews/                           # 16 screenshots/GIFs used by the README and Wiki
│
├── security_patches/
│   ├── patch1.md
│   └── patch2.md
│
├── src/
│   ├── main.py                         # Entry point — splash, single instance, CLI, drag & drop
│   ├── config.py                       # Encrypted configuration manager
│   ├── translations.py                 # i18n engine (FR/EN built-in + .lang/.json files)
│   ├── conversion_worker.py            # Background QThread conversion worker
│   ├── database.py                     # SQLite abstraction layer
│   ├── widgets.py                      # Shared custom Qt widgets
│   ├── special_events_manager.py       # Date-aware special events
│   ├── system_notifier.py              # Windows notifications and update check
│   ├── quick_check.py                  # Build-verification utility (Tkinter)
│   ├── daemon.py                       # Background daemon — watcher/scheduler tasks
│   ├── qss_helpers.py                  # Shared QSS utilities
│   ├── external_binaries.py            # External tool discovery (ffmpeg, Ghostscript…)
│   ├── theme_manager.py                # Built-in and .fctheme theme handling
│   │
│   ├── app/
│   │   ├── __init__.py                 # FadingMainWindow, FileConverterApp
│   │   ├── ui.py                       # AppUIMixin — UI construction
│   │   ├── logic.py                    # AppLogicMixin — business logic
│   │   └── mixins/
│   │       ├── __init__.py
│   │       ├── archive_engines.py
│   │       ├── batch.py
│   │       ├── compression.py
│   │       ├── epub_optimizer.py
│   │       ├── file_management.py
│   │       ├── image_optimizer.py
│   │       ├── image_to_pdf.py
│   │       ├── media_optimizer.py
│   │       ├── office_optimizer.py
│   │       ├── optimization.py
│   │       ├── panels.py
│   │       ├── pdf_operations.py
│   │       ├── pdf_optimizer.py
│   │       ├── pdf_to_word.py
│   │       ├── project_management.py
│   │       ├── theme_language.py
│   │       ├── web_optimizer.py
│   │       └── word_to_pdf.py
│   │
│   ├── achievements/
│   │   ├── __init__.py
│   │   ├── achievements_system.py      # Achievement definitions and unlock logic
│   │   ├── achievements_manager.py     # Persistence and state management
│   │   ├── achievements_ui.py          # Achievements panel
│   │   ├── achievements_popup.py       # Animated unlock pop-up
│   │   ├── rank_popup.py               # Rank-up celebration dialog
│   │   └── theme.py                    # Theme-aware achievement styling helpers
│   │
│   ├── context_menu/
│   │   ├── __init__.py
│   │   ├── conversion_helpers.py       # Shared Quick Convert/merge helpers
│   │   ├── formats.py                  # Format and action maps
│   │   └── window.py                   # Quick Convert popup / Windows shell integration
│   │
│   ├── converter/
│   │   ├── __init__.py
│   │   ├── advanced_db.py              # SQLite DB for conversion statistics
│   │   ├── artifact_validators.py      # Output validation for PDF/DOCX/image artifacts
│   │   ├── converters.py               # AdvancedConverterEngine — format pipelines
│   │   ├── helpers.py                  # Shared conversion helpers
│   │   ├── html_inline.py              # HTML inline-style processing
│   │   ├── registry.py                 # Conversion registry and dispatch table
│   │   └── mixins/
│   │       ├── __init__.py
│   │       ├── document_converters.py
│   │       ├── epub_renderers.py
│   │       ├── html_renderers.py
│   │       ├── image_converters.py
│   │       ├── media_converters.py
│   │       ├── office_com.py
│   │       ├── pdf_renderers.py
│   │       ├── pptx_native.py
│   │       └── rtf_native.py
│   │
│   ├── dialogs/
│   │   ├── __init__.py
│   │   ├── advanced_conversions.py     # Advanced Conversions dialog
│   │   ├── batch_convert_dialog.py
│   │   ├── batch_rename_dialog.py
│   │   ├── compression_dialog.py
│   │   ├── conversion_options_dialog.py
│   │   ├── dashboard.py                # Statistics dashboard
│   │   ├── dashboard_theme.py          # Dashboard theme integration
│   │   ├── donate.py                   # Donation dialog
│   │   ├── history.py                  # Conversion history
│   │   ├── merge_order_dialog.py
│   │   ├── password_dialog.py
│   │   ├── pdf_protection_dialog.py
│   │   ├── pdf_to_word_dialog.py
│   │   ├── preview_dialog.py
│   │   ├── settings_dialog.py
│   │   ├── splash_screen.py
│   │   ├── split_dialog.py
│   │   ├── terms_dialog.py
│   │   └── word_to_pdf_dialog.py
│   │
│   ├── tasks/
│   │   ├── __init__.py
│   │   ├── ocr_helpers.py              # Headless OCR/searchable-PDF helpers
│   │   ├── watcher.py                  # Watch-folder monitoring and merge debounce
│   │   └── scheduler.py                # Cron/interval/date scheduled tasks
│   │
│   ├── templates/
│   │   ├── __init__.py
│   │   ├── create_template_dialog.py
│   │   ├── frequent_configs.py         # Frequent-config tracking → auto templates
│   │   ├── semantic_keys.py            # Language-independent template/type keys
│   │   ├── template_editor_dialog.py
│   │   ├── template_manager.py
│   │   └── templates.py                # Template manager UI
│   │
│   ├── utils/
│   │   ├── __init__.py                 # SRC_DIR, resource_path(), get_icon_path()
│   │   ├── conversion_pipeline.py      # Staged conversion execution
│   │   ├── image_formats.py            # Content-based image detection, HEIC/AVIF
│   │   ├── odf_preview.py              # Native ODT/ODS/ODP preview parsing
│   │   ├── pdf_artifacts.py            # PDF/DOCX artifact validation helpers
│   │   ├── pdf_text.py                 # Shared PDF text helpers
│   │   ├── subprocess_console.py       # Hide console windows for external tools
│   │   ├── tesseract_console.py        # Register tesseract.exe with the suppressor
│   │   └── translation_mixin.py
│   │
│   ├── automation/
│   │   └── example_automation.toml     # Watch-folder and scheduled-task examples
│   │
│   ├── config/
│   │   └── external_binaries.conf      # Optional external-tool path overrides
│   │
│   ├── styles/
│   │   ├── themes/
│   │   │   ├── buttons.qss
│   │   │   ├── history_calendar.qss
│   │   │   ├── history_date.qss
│   │   │   ├── window_card.qss
│   │   │   ├── dark/                   # 16 QSS/CSS files for the dark theme
│   │   │   └── light/                  # Matching 16 QSS/CSS files for the light theme
│   │   └── custom_themes/              # Imported .fctheme folders (runtime-created)
│   │
│   ├── languages/
│   │   ├── blank.lang
│   │   ├── en-revisited.lang
│   │   ├── en.json
│   │   ├── fr.json
│   │   ├── it.lang
│   │   ├── legacy_aliases.json
│   │   ├── ru.lang
│   │   ├── tr.lang
│   │   └── zh.lang
│   │
│   ├── legal/
│   │   ├── privacy_policy_{en,fr,it,ru,tr,zh}.html
│   │   └── terms_conditions_{en,fr,it,ru,tr,zh}.html
│   │
│   ├── LICENSE/
│   │   ├── LICENSE.txt
│   │   └── LICENSE_FR.txt
│   │
│   └── Assets/
│       ├── *.png, *.svg, *.ico            # 74 achievement, event, and app images
│       ├── icons/                         # 25 file-format and action icons
│       ├── SFX/                           # 25 achievement/notification sounds
│       └── fonts/                         # Shared application fonts
│
├── tests/                              # 79 test modules + conftest.py (80 Python files)
│
├── Wiki/                               # Local documentation (gitignored)
│
├── .gitattributes
├── .gitignore
├── CODE_OF_CONDUCT.md
├── CONTRIBUTING.md
├── LICENSE.md
├── README.md
├── ROADMAP.md
├── SECURITY.md
├── pyproject.toml
├── releases.md
├── requirements.txt
├── requirements-dev.txt
└── social-preview.png

Runtime-generated files

These files are created locally under src/ in a development run and are intentionally excluded from version control:

File Purpose
src/file_converter_config.dat Encrypted application settings
src/file_converter_key.key Configuration encryption key
src/file_converter_stats.db (+ -shm, -wal) Conversion statistics database
src/file_converter_advanced.db Advanced conversion statistics
src/achievements.db Achievement and rank progression
src/special_events.db Special-event state

In the frozen onedir build, configuration and key files live beside FCP.exe; statistics, advanced, achievement, and special-event databases resolve under _internal/. Imported themes live under _internal/styles/custom_themes/.

Clone this wiki locally