Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,21 @@ All notable changes to Gridka will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [1.3.0] - 2026-04-23

### Added
- **Open Recent** submenu in File menu — tracks previously opened files across sessions

### Fixed
- Row number gutter overlapping first column when toggling View options in certain order
- Column header clicks (sort) blocked by row number overlay

## [1.2.1] - 2026-04-20

### Fixed
- Row number gutter overlapping first column when toggling View options in certain order
- Column header clicks (sort) blocked by row number overlay

## [1.2.0] - 2026-02-27

### Security
Expand Down
9 changes: 9 additions & 0 deletions Sources/App/AppDelegate.swift
Original file line number Diff line number Diff line change
Expand Up @@ -197,6 +197,13 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation {
let openItem = NSMenuItem(title: "Open…", action: #selector(openDocument(_:)), keyEquivalent: "o")
openItem.target = self
fileMenu.addItem(openItem)

let recentMenuItem = NSMenuItem(title: "Open Recent", action: nil, keyEquivalent: "")
let recentMenu = NSMenu(title: "Open Recent")
recentMenu.addItem(NSMenuItem(title: "Clear Menu", action: #selector(NSDocumentController.clearRecentDocuments(_:)), keyEquivalent: ""))
recentMenuItem.submenu = recentMenu
fileMenu.addItem(recentMenuItem)

fileMenu.addItem(NSMenuItem.separator())
let saveItem = NSMenuItem(title: "Save", action: #selector(saveDocument(_:)), keyEquivalent: "s")
saveItem.target = self
Expand Down Expand Up @@ -588,6 +595,8 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSMenuItemValidation {
win.title = url.lastPathComponent
win.subtitle = url.deletingLastPathComponent().path

NSDocumentController.shared.noteNewRecentDocumentURL(url)

// Track document-edited state via window dirty dot
session.onModifiedChanged = { [weak win] modified in
win?.isDocumentEdited = modified
Expand Down
8 changes: 4 additions & 4 deletions project.yml
Original file line number Diff line number Diff line change
Expand Up @@ -29,8 +29,8 @@ targets:
INFOPLIST_FILE: Resources/Info.plist
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
CODE_SIGN_ENTITLEMENTS: Gridka.entitlements
MARKETING_VERSION: "1.2.1"
CURRENT_PROJECT_VERSION: "6"
MARKETING_VERSION: "1.3.0"
CURRENT_PROJECT_VERSION: "7"
SWIFT_OBJC_BRIDGING_HEADER: Sources/Bridging/Gridka-Bridging-Header.h
HEADER_SEARCH_PATHS:
- "$(PROJECT_DIR)/Libraries"
Expand Down Expand Up @@ -68,8 +68,8 @@ targets:
PRODUCT_NAME: GridkaQuickLook
CODE_SIGN_ENTITLEMENTS: GridkaQuickLook.entitlements
INFOPLIST_FILE: QuickLookExtension/Info.plist
MARKETING_VERSION: "1.2.1"
CURRENT_PROJECT_VERSION: "6"
MARKETING_VERSION: "1.3.0"
CURRENT_PROJECT_VERSION: "7"
SKIP_INSTALL: YES
GridkaTests:
type: bundle.unit-test
Expand Down
Loading