6064 Commits

Author SHA1 Message Date
Barijaona Ramaholimihaso bee2eb91b8 Merge pull request #2117 from Eitot/feature/toolbaritem-validation
Simplify implementation of toolbar items

Also fix #2115: Refresh icon not centered in older macOS versions
2026-03-29 03:12:44 +03:00
Eitot 000c680715 Improve share sheet positioning for text-only mode 2026-03-28 23:58:26 +01:00
Eitot d5594872b5 Make share toolbar item respond to mouse down instead of mouse up 2026-03-28 23:58:26 +01:00
Eitot 6aee8bbb6d Simplify implementation of toolbar items
- Uses standard toolbar items with the isBordered property enabled. This
  makes it unnecessary to create custom views and menuFormRepresentation
  objects. Also adds a workaround and visual tweaks for macOS 10.15.
- Changes the implementation of the menuFormRepresentation object in the
  ButtonToolbarItem subclass to mimic the behaviour of standard toolbar
  items. This also removes the now unnecessary NSToolbar subclass.
- Merges PlugInToolbarItem and SharingServiceToolbarItem into a subclass
  that has a generic representedObject property, similar to menu items,
  and removes the PlugInToolbarItemButton subclass.
2026-03-28 23:58:26 +01:00
Eitot 5c04ec82fc Merge pull request #2119 from Eitot/feature/xcode-project 2026-03-26 16:23:53 +01:00
Eitot d8fec3ffe8 Enable more build/runtime warnings 2026-03-25 19:08:20 +01:00
Eitot 81c92138f0 Perform Xcode 26.4 compatibility check 2026-03-25 19:08:20 +01:00
Eitot 3b77678bfa Update GitHub Action for Xcode 26.4 2026-03-25 19:08:20 +01:00
Eitot 5379ea84b5 Merge pull request #2116 from Eitot/feature/macos-10.15
Raise deployment target to macOS 10.15 and remove obsolete code
2026-03-25 18:57:15 +01:00
Eitot e56b9a97b4 Remove obsolete NSKeyedArchiver/NSKeyedUnarchiver test code 2026-03-25 18:00:55 +01:00
Eitot ec56945091 Replace deprecated CommonCrypto with CryptoKit 2026-03-25 18:00:55 +01:00
Eitot 89d5fdaff3 Remove obsolete code for macOS 10.13 and 10.14 2026-03-25 18:00:55 +01:00
Eitot 3baa9b5c0a Raise deployment target to macOS 10.15 2026-03-20 19:23:59 +01:00
Barijaona Ramaholimihaso d377d7c948 Bump version number to 3.10.3 v/3.10.3 2026-03-16 14:37:55 +03:00
Barijaona Ramaholimihaso 09e707c3a8 Merge pull request #2104 from barijaona/RSS-button
Use FeedDiscoverer to enable browser's RSS button
This adds the discovery of JSON Feeds to BrowserTab.
2026-03-14 19:21:45 +03:00
Barijaona Ramaholimihaso 42ae7de033 Remove unnecessary init
Co-authored-by: Eitot <Eitot@users.noreply.github.com>
2026-03-14 19:20:53 +03:00
Barijaona Ramaholimihaso c44f98a116 Use FeedDiscoverer to enable browser's RSS button
This adds the discovery of JSON Feeds to BrowserTab.
This also prepares future improvements for handling multiple links,
as FeedDiscoverer can provide additional informations which could be
used as hints for the user.
2026-03-14 19:20:53 +03:00
Barijaona Ramaholimihaso 8fa2f7ff1a Merge pull request #2110 from Eitot/feature/treenode
Several changes to TreeNode: should make it simpler
and more robust.

Might help with issue #1824
2026-03-14 19:20:27 +03:00
Eitot 148fc752e4 Use synthesised accessors and ivars in TreeNode 2026-03-14 14:07:00 +01:00
Eitot 77e21d7109 Make several properties of TreeNode read-only 2026-03-14 14:05:20 +01:00
Eitot 79dba2c2d7 Remove unused macro in TreeNode 2026-03-14 14:01:52 +01:00
Eitot a0a10a2e7b Simplify TreeNode initialiser 2026-03-14 14:01:52 +01:00
Eitot 86af688f6b Remove canHaveChildren property and initialiser argument from TreeNode
This property has no meaningful practical purpose. It does not ensure
that a particular node cannot have child nodes, as this is overridden by
FoldersTree if needed, and using it in ‑outlineView:isItemExpandable: is
unnecessary, since countOfChildren can be used instead.
2026-03-14 14:01:45 +01:00
Eitot bd39de331c Use lazy initialisation of TreeNode children property
This property is only necessary for group folders as well as the root
node. By moving the ivar initialiser to ‑addChild:atIndex:, unnecessary
allocation is avoided.

If the property/ivar is accessed elsewhere and not set, sending messages
will return nil, 0 or NO.
2026-03-14 14:01:45 +01:00
Barijaona Ramaholimihaso c2870ca214 Merge pull request #2108 from Eitot/feature/translations
Import translations from Crowdin
2026-03-14 09:41:13 +03:00
Eitot aa29025b52 Import translations from Crowdin 2026-03-14 09:40:49 +03:00
Barijaona Ramaholimihaso 0c86d32383 Merge pull request #2107 from Eitot/bugfix/duplicate-treenodes
Prevent duplicate folders when launching Vienna the first time
2026-03-14 09:40:08 +03:00
Eitot 332efeb9f6 Prevent duplicate folders when launching Vienna the first time 2026-03-14 09:39:31 +03:00
Eitot 8da4bdd425 Merge pull request #2106 from Eitot/misc/readme
Update README.md
2026-03-12 19:48:00 +01:00
Eitot 02063f35ed Update README.md
- Add version 3.10.x
- Update links to Vienna homepage
2026-03-10 21:49:14 +01:00
Barijaona Ramaholimihaso 464ef07280 Merge pull request #2105 from barijaona/AppleScript
Fix Xcode warning on risks of app lock when running AppleScript
2026-03-10 23:33:48 +03:00
Barijaona Ramaholimihaso 06376b7510 Request more appropriate quality of service
This code is executed in response to user action, e.g. plug-in action or
AppleScript menu.
2026-03-10 23:26:23 +03:00
Barijaona Ramaholimihaso 3e9bcef6de Fix Xcode warning on risks of app lock
Xcode was warning that potentially long-running AppleScript execution
was occurring on the main thread, which could cause UI stalling and
thread priority inversion.
Move AppleScript execution onto a background queue, run UI feedback on
main queue.
2026-03-10 23:26:23 +03:00
Barijaona Ramaholimihaso 9780057443 Merge pull request #2103 from barijaona/issue-2099
Fixes for "Mark all read/Mark all unread" and Undo
2026-03-10 23:25:40 +03:00
Barijaona Ramaholimihaso 6dbac89733 Add precautions for possible future changes
-hash is currently never called, but could be required in the future
2026-03-10 23:20:35 +03:00
Barijaona Ramaholimihaso 63649bc3a0 Reflect "Undo/Redo mark all read" in article list 2026-03-10 23:20:35 +03:00
Barijaona Ramaholimihaso 0b2e867adb Keep articles when a smart folder is marked read
Fix issue #2099 (articles being immediately removed from the "Unread
articles" smart folder when that folder is marked read).
2026-03-10 23:20:35 +03:00
Barijaona Ramaholimihaso c8dc45c0db Fix search of an ArticleReference in collections
[refArray containsObject:someArticleReference] did not work as expected
2026-03-10 23:20:35 +03:00
Barijaona Ramaholimihaso e0ef4f02c3 Merge pull request #2102 from Eitot/bugfix/initial-smart-folders
Fix initial smart folders sometimes ending up with wrong 
NULL search_string column making articles not populating.
2026-03-10 23:19:34 +03:00
Eitot 0cdb130e7b Improve smart-folder UI to deal with invalid predicates
- CriteriaTree.init(predicate:) will fail if the predicate, which is
  always an NSCompoundPredicate, has no subpredicates.
- Editing a smart folder will show a compound predicate template row if
  no CriteriaTree could be retrieved from the database, to let the user
  configure the smart folder.
2026-03-09 18:51:04 +01:00
Eitot 8cf304f6da Update database to version 27 and add migration to fix smart folders 2026-03-07 13:40:52 +01:00
Eitot bda91d1ff8 Remove __weak qualifiers from variables referenced within dispatch block
The variables might be nil by the time the blocks are executed. In the
case of -createInitialSmartFolder: this leads to a smart folder with an
invalid search string.
2026-03-07 13:29:50 +01:00
Barijaona Ramaholimihaso be40651f2a Bump version number to 3.10.2 v/3.10.2 2026-02-24 15:59:25 +03:00
Barijaona Ramaholimihaso 56bff4115f Merge pull request #2096 from barijaona/issue-2094
Prefer use of SCNetworkReachability for macOS < 15
2026-02-24 15:48:14 +03:00
Barijaona Ramaholimihaso 45be2987a6 Prefer use of SCNetworkReachability for macOS < 15
NWPathMonitor seems to have issues on older macOS, especially on Intel
machines (Invalid address or Symbol missing…), which leads to crashes
at Vienna launch.
As SCNetworkReachability API was officially supported from Mac OS X 10.3
to macOS 14.4, we stick to its use for older versions of macOS.

Issue #2094
2026-02-24 13:46:01 +03:00
Barijaona Ramaholimihaso 66e4f0e047 Bump version number to 3.10.1 v/3.10.1 2026-02-22 21:10:59 +03:00
Barijaona Ramaholimihaso f3ba268e47 Merge pull request #2084 from barijaona/issue-2005
Delay refreshAllSubscriptions when network seems unavailable
2026-02-22 17:58:03 +03:00
Barijaona Ramaholimihaso d663931562 Work around VNANetworkIsReachable first run issue
NWPathMonitor instance's status might be interrogated before its handler
has completed its run.
2026-02-22 03:44:58 +03:00
Barijaona Ramaholimihaso 04121a1864 Complete VNANetworkIsReachable() for modern macOS
As SCNetworkReachability is deprecated, we use a NWPathMonitor based
test on macOS 10.14+

Co-authored-by: Eitot <Eitot@users.noreply.github.com>
2026-02-22 03:44:58 +03:00
Eitot b47f7d8b9d Add VNANetworkIsReachable() helper function to determine network status 2026-02-22 03:44:58 +03:00