## [1.2.1] - 2026-08-19 ### Fixed - **Every download after the first one could crash.** The persistent Overpass cache added in 1.2.0 opened one SQLite connection and reused it from whatever thread called it first; QGIS runs each download on its own worker thread, so a later download from a different thread hit `sqlite3.ProgrammingError: SQLite objects created in a thread can only be used in that same thread` and failed outright. The connection is now opened with `check_same_thread=False` and every access is serialized through a lock. - **A single failed tile discarded an entire tiled download.** A large extent split into several bounded requests aborted completely — throwing away every tile that had already succeeded — the moment one tile exhausted all three Overpass mirrors. A failing tile is now skipped and reported by number; the tiles that did succeed are still merged into layers, and a retry only needs to fill the gap since successful tiles stay cached. - **The docked panel didn't fit a short QGIS panel height and couldn't scroll.** The tab widget claimed a stretch factor it didn't need, leaving a block of empty space inside the active tab while the "Run download" section and Download button could run off the bottom of a docked panel with no way to reach them. The tab widget now sizes to its actual content, and the whole dock is wrapped in a scroll area. ### Changed - The dock now opens tabbed with QGIS's **Browser** panel instead of as a separate stacked row in the left dock area. - A small **"+ OSM basemap"** button now sits in the tab bar's top-right corner (a soft purple-grey accent, distinct from the plugin's green), so the basemap can be added from any tab without opening Run download. - A finished download's layer group is now **inserted at the top** of the layer tree instead of appended at the bottom, so it is immediately visible. ## [1.2.0] - 2026-08-19 ### Query - **Exclude tag.** Every download endpoint (Presets, Place, Custom tag, Advanced query) now accepts an optional exclude key/value. A matching feature is dropped once the OSM response arrives — a client-side filter, not additional Overpass query text — and is surfaced on the Query tab as "Exclude tag (optional)". - **Regex value matching.** The Advanced query panel gained a "Match values as regex (~)" checkbox that renders every filled value as an Overpass regex selector instead of an exact match. Regex values still cannot carry quotes, backslashes or semicolons, capped at 60 characters. - **Six tag filters**, up from four (`MAX_ADVANCED_FILTERS`). - **Persistent Overpass cache.** Responses now persist to a small on-disk SQLite cache under the QGIS profile directory instead of an in-session dictionary, so re-downloading the same region stays instant even after restarting QGIS. - **Mirror retry.** A transient failure (a dropped connection, a 5xx) gets one retry against the same mirror, with a short pause, before the request moves on to the next pinned mirror. ### Command - **Typo tolerance.** A misspelled preset word (`buildngs`, `helthcare`) now falls back to a bounded offline fuzzy match when no exact phrase is found, weighted so a word owned by one preset outweighs one shared by several. - **Negation.** "download parking without charging" now extracts an exclude tag and routes the match to the Query tab, pre-filled with both the matched tag(s) and the exclusion. - **Same-theme combination.** A command naming two datasets from the same group (e.g. "parks and water") now checks both, generalising the existing Urban Context special case. - **Command history.** The Command tab keeps a clickable list of the last ten interpreted commands.
yes
geo140195philo
2026-08-19T13:10:29.023881+00:00
3.28.0
4.99.0
None
no
Plugin Tags