---
feature: "UI System"
description: "Hlavní UI vrstva – menu, seznamy, detailové dialogy, kontextová menu a průvodci"
files:
  - wcs/ui/UI.py
  - wcs/ui/ContextMenu.py
  - wcs/ui/dialogs/DialogWcsDetails.py
  - wcs/ui/dialogs/DialogWcsSearch.py
  - wcs/ui/dialogs/DialogWcsMyList.py
  - wcs/ui/dialogs/DialogWcsDownload.py
  - wcs/ui/dialogs/DialogActorDetails.py
  - wcs/ui/dialogs/DialogDirectorDetails.py
  - wcs/ui/dialogs/DialogCollectionDetails.py
  - wcs/ui/dialogs/DialogSeriesCreators.py
  - wcs/ui/dialogs/DialogSimilarMovies.py
  - wcs/ui/dialogs/DialogSimilarSeries.py
  - wcs/ui/dialogs/guide/DialogAIGuide.py
  - wcs/ui/dialogs/guide/DialogDownloadGuide.py
  - wcs/ui/dialogs/guide/DialogKraskaGuide.py
  - wcs/ui/dialogs/guide/DialogLibraryGuide.py
  - wcs/ui/dialogs/guide/DialogRemoteGuide.py
  - wcs/ui/dialogs/guide/DialogTMDbGuide.py
  - wcs/ui/dialogs/guide/DialogWebshareGuide.py
parent: true
children:
  - "UI"
  - "ContextMenu"
  - "Detail Dialogy"
  - "Search Dialog"
  - "MyList Dialog"
  - "Download Dialog"
  - "Guide Dialogy"
created: "2026-04-04"
updated: "2026-04-05"
status: "complete"
---

# UI System

Kompletní UI vrstva pluginu. Hlavní `UI.py` modul (159 KB) řídí všechna Kodi menu, seznamy a navigaci. Doplňují ho specializované fullscreen dialogy pro detaily, vyhledávání, seznamy a stahování. Kontextová menu přidávají akce na pravé tlačítko. Průvodci (guide) pomohou s nastavením služeb.

## Soubory

| Soubor | Velikost | Účel |
|--------|----------|------|
| `wcs/ui/UI.py` | 159 KB | Hlavní UI modul |
| `wcs/ui/ContextMenu.py` | 13 KB | Kontextová menu |
| `wcs/ui/dialogs/DialogWcsDetails.py` | 19 KB | Detailní dialog filmu/seriálu |
| `wcs/ui/dialogs/DialogWcsSearch.py` | 56 KB | Fullscreen vyhledávací dialog |
| `wcs/ui/dialogs/DialogWcsMyList.py` | 75 KB | Dialog pro správu seznamů |
| `wcs/ui/dialogs/DialogWcsDownload.py` | 14 KB | Dialog stahování |
| `wcs/ui/dialogs/DialogActorDetails.py` | 14 KB | Detail herce |
| `wcs/ui/dialogs/DialogDirectorDetails.py` | 11 KB | Detail režiséra |
| `wcs/ui/dialogs/DialogCollectionDetails.py` | 10 KB | Detail filmové kolekce |
| `wcs/ui/dialogs/DialogSeriesCreators.py` | 10 KB | Tvůrci seriálu |
| `wcs/ui/dialogs/DialogSimilarMovies.py` | 7 KB | Podobné filmy |
| `wcs/ui/dialogs/DialogSimilarSeries.py` | 7 KB | Podobné seriály |
| `wcs/ui/dialogs/guide/*.py` | 7× ~0.7 KB | Průvodci nastavením |

## Child funkce

### UI

- **Co dělá**: Nejrozsáhlejší modul pluginu (159 KB). Generuje veškerá Kodi menu a seznamy: hlavní menu, TMDb filmy/seriály (žánry, země, roky, combo filtry), přidané položky, fronta, historie, naposledy přehrané. Vytváří ListItems s kompletními metadaty, kontextovými menu a artwork. Řeší TMDb API klíč validaci a omezenou nabídku bez klíče.
- **Klíčové metody**:
  - `display_main_menu(addon, handle)` – hlavní menu pluginu
  - `display_limited_menu(addon, handle)` – menu bez TMDb
  - `display_movies_menu/series_menu(addon, handle)` – podmenu filmů/seriálů
  - `browse_movie_genres/countries(addon, handle)` – procházení dle žánrů/zemí
  - `combo_select_genres/countries/years(addon, handle)` – multi-select filtry
  - `display_added_movies/series(addon, handle)` – watchlist výpis
  - `display_queue/history/recently_played(addon, handle)` – uživatelské seznamy
  - `add_movie/series(params, addon, handle)` – přidání do watchlistu
  - `open_settings(addon)` – nastavení
  - `has_tmdb_api_key(addon)` – kontrola TMDb klíče
  - `set_video_info_tag(listitem, info)` – nastavení VideoInfoTag (Kodi 21+)
- **Vstupy**: Addon instance, Kodi handle, parametry akcí
- **Výstupy**: Kodi directory listings, notifikace, interakce
- **Závislosti**: [006-metadata.md](006-metadata.md), [001-router-core.md](001-router-core.md), [009-webshare.md](009-webshare.md), `ContextMenu`
- **Settings**: `menu_show_*` (viditelnost položek menu), `default_movie_action`

### ContextMenu

- **Co dělá**: Generuje kontextová menu (pravé tlačítko) pro filmy a seriály v Kodi seznamech. Barevně kódované položky: modrá (detail), zlatá (Milionář), zelená (přidání), oranžová (knihovna), červená (smazání), fialová (podobné/kolekce).
- **Klíčové metody**:
  - `create_movie_context_menu(addon, tmdb_id, title, ...)` – menu pro film
  - `create_series_context_menu(addon, tmdb_id, title, ...)` – menu pro seriál
  - `create_my_movies/series_context_menu(...)` – menu pro watchlist
- **Vstupy**: TMDb ID, metadata
- **Výstupy**: Seznam tuples `(label, action_url)` pro Kodi
- **Závislosti**: žádné přímé
- **Settings**: žádné

### Detail Dialogy

- **Co dělá**: Sada fullscreen WindowXML dialogů pro zobrazení detailů:
  - **DialogWcsDetails** – kompletní detail filmu/seriálu z TMDb (poster, plot, casting, crew, rating, EPG)
  - **DialogActorDetails** – detail herce s filmografií
  - **DialogDirectorDetails** – detail režiséra s filmografií
  - **DialogCollectionDetails** – filmová kolekce (série filmů)
  - **DialogSeriesCreators** – tvůrci seriálu
  - **DialogSimilarMovies/Series** – seznam podobných titulů
- **Klíčové metody**: Každý dialog má `doModal()` pro zobrazení
- **Vstupy**: TMDb ID, media_type
- **Výstupy**: Fullscreen dialogy s bohatými metadaty
- **Závislosti**: [006-metadata.md](006-metadata.md), XML skiny
- **Settings**: žádné přímé

### Search Dialog

- **Co dělá**: Fullscreen dialog pro zobrazení výsledků vyhledávání souborů. Zobrazuje nalezené soubory s kvalitou, velikostí, jazykem a formátem. Umožňuje výběr souboru pro přehrání nebo stažení. Podporuje Webshare i KRA.sk výsledky (vyhledává podle zapnutých providerů `webshare_enabled`/`kraska_enabled`). Autoplay režim (`autoplay_first_item` nebo `autoplay_request`) automaticky vybere nejlepší výsledek bez zobrazení GUI – vrací dict s `ident`, `name` a `provider`. Dynamické chybové hlášky uvádějí reálně použité providery.
- **Klíčové metody**:
  - `show_search_dialog(search_query, movie_title, ...)` – hlavní vstupní bod
  - `_perform_search()` – orchestrace vyhledávání přes zapnuté providery
  - `_perform_search_webshare()` – Webshare API vyhledávání
  - `_perform_search_kraska()` – KRA.sk/SC vyhledávání (search_series/search_movies → get_streams)
- **Vstupy**: Vyhledávací dotaz, metadata, předpočítané výsledky (volitelné), `from_library`, `autoplay_request`
- **Výstupy**: Vybraný soubor (dict s `ident`, `name`, `provider`) nebo None
- **Závislosti**: [008-search.md](008-search.md), [009-webshare.md](009-webshare.md), [011-streamcinema.md](011-streamcinema.md) (SCClient pro KRA.sk search), XML skin
- **Settings**: `autoplay_first_item`, `autoplay_preferred_quality`, `webshare_enabled`, `kraska_enabled`

### MyList Dialog

- **Co dělá**: Fullscreen dialog pro správu uživatelských seznamů (Moje filmy, Moje seriály). Zobrazuje přidané položky s postery, umožňuje řazení, odebírání, přehrávání a hromadné operace.
- **Klíčové metody**: `MyListDialog` třída
- **Vstupy**: Addon instance
- **Výstupy**: Fullscreen dialog
- **Závislosti**: [001-router-core.md](001-router-core.md) (user_data), XML skin
- **Settings**: žádné specifické

### Download Dialog

- **Co dělá**: Dialog pro výběr kvality stahování. Zobrazuje dostupné soubory s detaily a umožňuje uživateli vybrat soubor ke stažení.
- **Klíčové metody**: Dialog class s výběrem
- **Vstupy**: Seznam souborů
- **Výstupy**: Vybraný soubor pro stažení
- **Závislosti**: [009-webshare.md](009-webshare.md) (DownloadManager)
- **Settings**: žádné specifické

### Guide Dialogy

- **Co dělá**: 7 průvodců nastavením služeb – jednoduché informační dialogy s instrukcemi pro nastavení: TMDb API klíč, Webshare přihlášení, AI API klíče, Kráska, knihovna, stahování a vzdálené ovládání.
- **Klíčové metody**: Každý guide má `show()` a odkazuje na příslušný login dialog
- **Vstupy**: žádné
- **Výstupy**: Informační dialog, redirect na login
- **Závislosti**: [013-login.md](013-login.md) (login dialogy)
- **Settings**: žádné
