149 Commits

Author SHA1 Message Date
Allan Odgaard
9e2156dda1 Resize Terminal preferences pane
It now matches the width of the other preference panes, so the preferences window will only change height when changing preferences panes (unless the user has manually resized any of the resizable preference panes).
2020-04-19 16:31:03 +07:00
Allan Odgaard
fc0d4e32b4 Save xib with Xcode 11.4.1 (11E503a) 2020-04-19 16:31:03 +07:00
Allan Odgaard
355725cf36 Create Variables preference pane with code 2020-04-19 14:32:30 +07:00
Allan Odgaard
666ac73864 Update default size of bundles preferences pane to match projects
The goal is to have the window resize as little as possible when switching to another preference pane, therefore we aim for at least making the width the same for all panes.
2020-04-19 14:32:30 +07:00
Allan Odgaard
9e7d727792 Create Software Update preference pane with code (using NSGridView) 2020-04-19 14:32:30 +07:00
Allan Odgaard
b938dce914 Create Projects preference pane with code (using NSGridView) 2020-04-19 14:32:30 +07:00
Allan Odgaard
bdedf08bd7 Create Files preference pane with code (using NSGridView) 2020-04-19 14:32:30 +07:00
Allan Odgaard
5aef1c5c8a Add helper function to configure NSGridView for our preference panes 2020-04-19 14:32:30 +07:00
Allan Odgaard
c8faa0fa91 Don’t opt-in to making the preferences window restorable 2020-04-19 14:32:30 +07:00
Allan Odgaard
40379d8ab1 Remove (unused) general preferences pane
This was just a placeholder/template.
2020-04-19 14:32:30 +07:00
Allan Odgaard
ca8075b5c4 Update Bundles preferences pane to use OakScopeBarViewController
The MGScopeBar class uses deprecated API, doesn’t support dark mode, and doesn’t seem to be maintained, therefore it’s better to switch to OakScopeBarViewController, although it doesn’t support “collapsing” into a pop-up menu.

This commit does change the category filter to work as a radio button, so if one category is selected, others will be deselected, which I do think makes more sense than the previous behavior of allowing multiple categories to be selected, and using the union of these when filtering.

This commit also retires the xib file. The long-term goal is to eliminate all xib files, as being explicit (in code) is preferred. The xib files only exist because in the past we did not have auto-layout.
2020-04-17 19:19:53 +07:00
Allan Odgaard
266fa8746c Refactoring of file pop-up menu: Use NSDesktopDirectory and NSURL APIs 2020-04-17 19:19:53 +07:00
Allan Odgaard
38305e7fc4 Fix code that should return NO when bundle install is in progress 2020-04-14 12:58:10 +07:00
Allan Odgaard
d9ac41d790 Add checkbox in Preferences for the disableTabAutoClose setting 2019-09-15 11:26:41 +02:00
Allan Odgaard
8f3f3d9d16 Update deployment version for xibs to 10.12
This was done using search and replace. Presumably it should be done in Xcode so that it can adjust the xib for the new deployment target, otherwise what is the point of storing deployment version in the xib and provide it as a command line argument to the xib compiler as well (only to get a warning if the versions do not match)?
2019-07-07 18:03:30 +02:00
Allan Odgaard
1ef78b3af7 Rename symbols to what’s expected by the 10.14 SDK 2019-06-29 20:14:15 +02:00
Allan Odgaard
5aa58e5543 Do not include $APP_NAME in framework’s bundle identifier
Since we have multiple application targets, it doesn’t make sense with a global APP_NAME variable.

Though if building the frameworks as standalone bundles and embedding them in different applications, we may need some sort of unique component in the bundle identifier, but we currently do not do this (they are all statically linked, so the Info.plist is currently unused).
2019-06-26 23:32:54 +02:00
Allan Odgaard
412e6798ca Update build generator script
This changes a bunch of things:

1. Each framework now creates its own include directory for exported headers, and any target linking with this framework, gets that directory added to its include search path. This ensures deterministic behavior, unlike previously where a single shared directory was used, so even if target A did not explicitly link with target B, there was a reasonable chance that target B’s headers would be available when target A was built.

2. There is a new IMPORT keyword to indicate that a target depends on the headers of another framework but does not want to link with it. For example the `commit` shell command imports headers from the CommitWindow framework (related to their communications protocol) but linking with the CommitWindow framework would not be practical (as that would bring in all the resources of the CommitWindow).

3. All embedded targets are signed before being copied to their destination.

4. A new CS_ENTITLEMENTS keyword allows specifying `codesign` entitlements. Currently the hardened runtime is enabled, although this does make development problematic, as modifying files of a running instance (as done during rebuild) can cause TextMate to crash with EXC_BAD_ACCESS (Code Signature Invalid). Worse though, it seems the system has a cache of blacklisted executables indexed by inode. So if e.g. the embedded `mate` executable gets blacklisted, one has to manually remove and rebuild it, before it gets possible to use it again (by default, rebuilding causes the inode to be re-used, but I may change the build system to unlink before copy).

5. The build file no longer contains rules related to deployment. Instead variables are declared that a user build file can reference to extend the build with notarization/deployment rules (without having to hardcode build directory paths).

6. The code has been made modular with a Compiler super class that is subclassed to add support for file transformations (xib, ragel, asset catalogs, etc.) and a transformed file can have its own settings.

7. If target A links with target B, the linker flags of target B will now be included when linking target A.

8. Currently no indexing of help books. Unsure if this is actually useful.

9. Previously it was possible to have umbrella targets that would not generate any output, but just change settings for their sub-targets. This is no longer supported, as the implementation was arcane. I would like to introduce a different system for managing sectioned settings. Related to this; settings in target files are now always merged, regardless of whether using ‘=’ or ‘+=’.
2019-06-26 23:32:19 +02:00
Allan Odgaard
f244e223fd Rename a few menu items 2018-11-20 22:21:50 +07:00
Allan Odgaard
35f1312f9a Remove UI setting for having tabs “Extend to the width of the window”
This is now the only way to have the tabs shown.
2018-11-06 20:46:59 +07:00
Allan Odgaard
5f63ee096b Remove ability to have file browser header in the tab bar
This style is not easily compatible with moving the tab bar view to the window title.
2018-11-05 19:16:24 +07:00
Allan Odgaard
82de01589f Update deployment target of all xib files to 10.10 2018-10-30 13:46:34 +07:00
Allan Odgaard
e9d1086441 Add new user defaults key: allowExpandingPackages 2018-10-28 00:28:02 +07:00
Allan Odgaard
f2ef1b90cd Move settings key from OakTabBarView to Preferences framework
We provide a default value for this key in the Preferences framework, therefor the symbol needs to be defined there.
2018-10-12 19:38:11 +02:00
Allan Odgaard
f6fa273912 Update coding style for where to place colon after dictionary keys
This follows the Swift style and also makes it possible to align dictionary values using TextMate’s Align Assignments command.
2018-10-07 09:54:45 +02:00
Allan Odgaard
52fda481dc Change beta/nightly software update constants to prerelease/canary 2018-06-28 10:40:27 +02:00
Allan Odgaard
503d493f47 Move OakTabBarView into its own framework
The motivation is to get an OakAppKit that does not include hundres of image resources.
2017-10-07 13:58:35 +02:00
Allan Odgaard
e804a57e04 Change name of property setter: isChecking → checking 2017-10-02 20:53:05 +02:00
Allan Odgaard
212ef9b488 Update MASPreferences submodule: identifier → viewIdentifier 2017-09-12 16:57:00 +02:00
Allan Odgaard
4d86258e47 Use new alert style enumeration names (10.12) 2017-05-31 21:58:31 +02:00
Ronald Wampler
038acacca9 Avoid use of NSRunAlertPanel (10.9)
Although this is actually deprecated in 10.10, new APIs are available in 10.9 and it will make addressing deprecation warnings when upgrading to 10.10 easier.
2017-05-31 21:58:31 +02:00
Ronald Wampler
42654ff283 Use appropriate enum case for NSSavePanel and NSOpenPanel result (10.9) 2017-05-31 10:03:41 +02:00
Ronald Wampler
30891b1a62 Remove OakShowAlertForWindow wrapper (10.9) 2017-05-31 10:03:41 +02:00
Ronald Wampler
9fae8a3192 Update deployment target to 10.9 for all xib files 2017-05-31 10:03:41 +02:00
Allan Odgaard
84889c703d Move crash reporter defaults keys to Preferences framework
Seeing a few crashes from registering user defaults in the “post crash reports” block, hence the motivation to eliminate it.
2016-11-15 22:32:48 +07:00
Allan Odgaard
9d980a07df Remove NSPrincipalClass from framework bundles’s Info.plist
This is not something which is used anywhere and a few of the frameworks does not have a principal class.
2016-10-31 17:30:30 +07:00
Allan Odgaard
3ec7b05473 Do not include user’s email in crash reports
Inconveniencing all users with the “TextMate wants to access your contacts” dialog is not worth having the ability to contact users about their crash reports.
2016-10-07 10:02:58 +02:00
Allan Odgaard
7cc017f343 Harmonize all implementations of sharedInstance 2016-09-19 12:54:19 +02:00
Jacob Bandes-Storch
7c325ff90b Add “Check for Updates” to the app menu
Another common practice among Mac apps.
2016-09-10 02:11:35 -07:00
Allan Odgaard
4ab38d3cfd Use the S_IRWX[UGO] constants to set file mode 2016-08-28 17:49:17 +02:00
Allan Odgaard
46fb745bbe Use perrorf when printing errors with dynamic strings
Also revise error messages to be more consistent.
2016-08-28 17:25:26 +02:00
Allan Odgaard
dbdfa3c6af Add identifying information to perror output 2016-08-21 12:09:30 +02:00
Allan Odgaard
1c744c9b0e Add checkbox for keeping bundles updated to Bundles preferences
This removes the current activity text and progress bar used while installing and uninstalling bundles.
2016-07-03 23:49:21 +02:00
Allan Odgaard
b4e6f186be Remove Software Update checkbox for keeping bundles updated 2016-07-03 23:47:44 +02:00
Allan Odgaard
b1fcb9dea4 Update bundles preferences to new BundlesManager API
We now use an array controller and bindings for the table view.
2016-06-29 14:21:55 +02:00
Allan Odgaard
0d0e8505dd Remove use of @synthesize in preferences window code 2016-06-22 20:44:41 +02:00
Allan Odgaard
7dd19c0c0e Update deployment target to 10.8 for all xib files 2016-06-22 20:43:28 +02:00
Ronald Wampler
e452a5ee55 Move "Go to Tab" to the Window menu and rename to "Select Tab"
Also edit the source to reflect the change in name (e.g., `updateGoToMenu:` → `updateSelectTabMenu:`).
2016-06-19 08:45:16 +02:00
Allan Odgaard
417193e089 Update link dependencies for all targets
Some targets were including headers from frameworks not specified in their link dependencies. For a clean build this could cause an issue because the header was not available at the time of building the target.

The updated link dependencies are also based on what a target’s tests require. Ideally tests would have separate link dependencies, but as we don’t want to maintain this manually, this will have to wait until the build system automatically handles link dependencies.

Currently the commit command uses constants from the CommitWindow framework but should actually not be linked with it. However, the optimizer will strip dead code, so it should not result in much if any difference in the resulting binary and does solve a build dependency issue.
2016-05-07 13:00:55 +02:00
Allan Odgaard
b55ef5b09a Save all xibs with Xcode 7.1 (7B91b)
This was done in an attempt to prevent the warning saying “This file is set to build for a version older than the project deployment target.”

Unfortunately saving all the xibs did not get rid of the warning, even though tehy are all set to have 10.7 as their build target.

The latest xib format does however remove about 10.000 lines of XML.
2015-10-26 23:26:17 +07:00