Commit Graph

77 Commits

Author SHA1 Message Date
Allan Odgaard
a2a0c187d4 Replace SetItemMark() with Cocoa code
Use of the (undocumented) NSMenuItemBullet was suggested by an Apple engineer and the consequences, if it is unavailable, are harmless.
2012-08-18 15:30:24 +02:00
Allan Odgaard
cf1b4750e4 Go to Current Document is now a toggle
This also works as a (quick) way to deselect all in the file browser (i.e. hit ⌃⌘R twice) which is useful when one wants to run commands on the entire project (e.g. Git → Show Uncommitted Changes).
2012-08-18 15:30:24 +02:00
Allan Odgaard
af55f6b7bd Add deselectAll: to OakFileBrowser
I feel that the better API would be to make the selectedURLs property r/w (instead of read-only), but that is more involved since there is the case of setting a selection while the file browser is still loading items.
2012-08-18 15:30:24 +02:00
Allan Odgaard
64ff8a53e7 Go to SCM Status is now a toggle
This is implemented by invoking “go back” if already showing an SCM URL. If there is no history (unlikely) then we instead “go up (parent)” which should take us to the root of the repository.
2012-08-18 15:30:24 +02:00
Allan Odgaard
7cca8f3f4a Use Objective-C literals
This brings it in line with the rest of the source, which have embraced these.
2012-08-18 15:30:23 +02:00
Allan Odgaard
4a22d1af54 Split disableIndentCorrections into two settings
The `disableIndentCorrections` setting now only disables the (aggressive) indent corrections that TextMate does while you type.

There is an additional `indentOnPaste` which you can set to:

1. `simple` — this is the indent behavior which was previously implied when setting `disableIndentCorrections`. It indents the paste to the position of the caret and works well for Python.
2. `disable` — the text is inserted as-is without indenting it.
3. «unset» — indent the paste based on the indent patterns of the current scope.
2012-08-15 22:59:51 +02:00
Allan Odgaard
d8c73a82c8 Pasting on empty line no longer inserts newline
This closes issue #69.
2012-08-15 22:53:47 +02:00
Allan Odgaard
85a17b6355 Software update no longer asks about saving changes
If session restore has been disabled then we will still ask, since the user would otherwise lose his changes. Ideally we’d launch the new instances with session restore temporarily enabled.
2012-08-15 22:11:50 +02:00
Allan Odgaard
2307db6631 Allow relaunch without user interaction 2012-08-15 22:00:23 +02:00
Allan Odgaard
6a554d1c68 Retire code necessary to gracefully upgrade from r9110 2012-08-15 21:14:39 +02:00
Allan Odgaard
67dc0b3943 Make OakRunIOAlertPanel accessible from C++
I moved it to a C header. An alternative would be to put some #ifdef’s around the Objective-C stuff in OakAppKit.h, but with the standalone header, it’s clear that this is the only thing we need from OakAppKit.
2012-08-15 20:47:18 +02:00
Paul Wilde
f4ecbe0f1e Updated Preferences icons for HiDPI displays. 2012-08-15 19:48:01 +02:00
Allan Odgaard
e9d30644e9 Improve tab trigger boundary checks
When two neighboring characters have different character class or one is an alpha numeric character (excl. underscore) and the other is not, we consider this a valid boundary for a tab trigger.

This closes issue #157.
2012-08-15 16:07:23 +02:00
Allan Odgaard
c7c45b448b Make code to obtain character class public
This includes renaming the constants from using a rather generic kType prefix to kCharacterClass.
2012-08-15 16:00:28 +02:00
Allan Odgaard
9e1d10b5f1 Remove debug output
I was initially under the impression that no data should be sent past EOF but from testing it is clear that this assumption is incorrect. It’s unimportant though as we do handle the case (though we didn’t initially, and that’s why I put in the fprintf, to verify the situation I guarded for actually was happening).
2012-08-15 15:58:38 +02:00
Allan Odgaard
52b01e0f6e Fix test failure for builds in source tree
The fs::snapsot_t class creates a finger print of a folder. We used the source tree for testing, but if the source tree hosts the build directory, then the fingerprint will (likely) change, since we run simultaneous build jobs.

It now uses the Frameworks folder in the source tree, as it’s unlikely that someone would place their build directory in this location.
2012-08-15 02:41:15 +02:00
Allan Odgaard
d255324966 fixup! Remove old tab trigger render code 2012-08-15 02:41:15 +02:00
Allan Odgaard
1250964a6d File browser shows context menu on ⌥F2
The key is consistent with the default key for bringing up the context menu in the text view — that key is however taken from the key bindings dictionary, so ideally we’d do the same in the file browser. Need to factor out the key bindings parsing code first though, and in theory the key bindings dictionary allow for multi-stroke bindings.

This implements issue #18.
2012-08-15 00:33:33 +02:00
Allan Odgaard
1892e0a557 Make the file drop path relative to current file
Previously these were relative to the project directory with current file’s directory as a fallback, but 1.x used current file.
2012-08-14 22:42:51 +02:00
Allan Odgaard
05298ee8dc Insert path when dropping binary files
This is only when there is no drop command for the file type.
2012-08-14 22:35:11 +02:00
Allan Odgaard
cc436b2dfa fixup! Remove old tab trigger render code 2012-08-14 22:08:27 +02:00
Bo Xiao
00b65bbd28 Updated chinese translation for terminal preference panel. 2012-08-14 21:29:52 +02:00
Bo Xiao
96cb899b53 Initial commit of Simplified Chinese localization for xib files. 2012-08-14 21:29:51 +02:00
Allan Odgaard
0ceff6beab Remove old tab trigger render code
This code was using (the no longer there in the 10.7 SDK) GetPortBounds() to be able to render into a CGContextRef.

It was also using the private _NSGetCarbonMenu to be able to install the menu handler (that augmented the rendering).
2012-08-14 21:29:51 +02:00
Adam Strzelecki
7bd9f9817b Improve tab trigger rendering
This is using NSAttributedString’s NSTextTableBlocks:

* Font is determined from current menu rather than hardcoded
* Fixed: Invalid font size on bundle-item popup
* Fixed: Both tab triggers and key equivalents can co exists on single menu item
* No relayout calculations are needed after menu update (this is done automatically by NSLayoutManager when using NSTextTables)
* Uses 10.5 compatible API
2012-08-14 21:00:02 +02:00
Allan Odgaard
15afc1398b Revert "Draw tab triggers and key equivalents in menu"
Reverts 25071ce6e5
Reverts 757219b8f1
2012-08-14 20:55:53 +02:00
Adam Strzelecki
6763406fe5 Bind Opt+F1 to show bundle item popup. 2012-08-14 19:29:00 +02:00
Adam Strzelecki
752430f339 Check current grammar bundle in bundle item popup.
Do not specify selected index explicitely, popup menu item with NSOnState gets selected by default.
2012-08-14 19:13:15 +02:00
Adam Strzelecki
98de1f5f51 Select popup menu item only on non-negative index. 2012-08-14 19:13:14 +02:00
Adam Strzelecki
8a8432d065 Select current grammar at bundle item popup. 2012-08-14 19:13:14 +02:00
Allan Odgaard
e5c2daa05a Revert "Use current document when no URL given in txmt URL"
Pending improved implementation which also handle the case where frontmost document is untitled.

This reverts commit 2beac7080b.
2012-08-14 18:43:37 +02:00
jtbandes
5aaebb9e25 Remove bundles.h dependency, re-add menu action 2012-08-13 22:06:32 -07:00
jtbandes
757219b8f1 fixup! Draw tab triggers and key equivalents in menu
Fix memory leak
2012-08-13 21:46:12 -07:00
Allan Odgaard
718ea40002 Use path::is_absolute instead of own logic 2012-08-13 22:54:09 +02:00
Allan Odgaard
4259a8f884 Add path::is_absolute.
This is actually not entirely trivial since we can have a path that starts with a slash but includes more ‘..’ components than there are actual directories in the path.
2012-08-13 22:53:16 +02:00
Allan Odgaard
b85aafb9a9 Crash when searching a bogus path
If we set projectDirectory to a non-path (e.g. ‘dummy’) then that value makes it into the default folder to search (on ⇧⌘F). Since we want folder specific settings for the path we are about to search (include/exclude patterns) then we would ask for settings for a non-path, which the settings framework couldn’t handle (it kept asking for the parent of this non-path expecting to eventually get to either the user’s home folder or the root of the disk, but instead it would loop infinitely).

This fixes issue #19.
2012-08-13 22:22:02 +02:00
Allan Odgaard
3f00d23de7 Consecutive deletes extend the yank clipboard
This turned out to be a little more involved due to how we need to make a distinction between a forward delete (prepend) and backward delete (append).

Implements issue #118.
2012-08-13 21:30:57 +02:00
Allan Odgaard
4594b08c46 Improve variable names 2012-08-13 21:27:03 +02:00
Allan Odgaard
236c608e86 Revert "Accept HTTP/1.1 response in network tests"
Since we bypass the system’s proxy for localhost, no-one should modify our test server’s response.

This reverts commit c98bc92b5d.
2012-08-13 20:32:35 +02:00
Allan Odgaard
f370ee13e4 Make proxy setup URL specific
We now bypass the global proxy if trying to connect to localhost (as some of our tests do) and we also hand the actual target URL to the potential proxy auto configuration (PAC) script.
2012-08-13 20:32:35 +02:00
jtbandes
25071ce6e5 Draw tab triggers and key equivalents in menu
The old techniques used to set key equivalents no longer work. Unfortunately, this technique is only a workaround and is not pixel-for-pixel identical due to the way NSMenuItem lays itself out when rendering a key equivalent; but I think it's the best that can be done for now.
2012-08-13 19:46:55 +02:00
Allan Odgaard
bf12bdd3f2 Another CJK fix
When invoking an action that would replace the marked text (“CJK edit buffer”) with a zero-length string, we would continue to be in “CJK” mode and thus allow the input manager to process the next key press.

In this situation though pressing e.g. escape or backspace would result in the input manager inserting the literal character code for this key.

So we now leave “CJK edit mode” if the “edit buffer” is empty.

There is still an issue though where, if the edit buffer is not empty, and the user press backspace, we correctly (?) ask the input manager to handle this key press, but the input manager will (wrongly) replace the selection with the literal backspace character.
2012-08-13 18:31:37 +02:00
Allan Odgaard
a3b8be728d fixup! Turn private run_cmd (scm/utility.h) → io::exec
Forgot to update debug variable.
2012-08-13 18:05:56 +02:00
Allan Odgaard
54d157129b fixup! Use SecItemCopyMatching instead of the deprecated SecKeychainSearch
The cf::wrap function returns a temporary object that can be converted to a CFType, but this object’s lifetime is that of the temporary object returned. By putting the result of cf::wrap into a C array we keep the CFTypeRef around longer than the temporary object.
2012-08-13 16:14:32 +02:00
Allan Odgaard
9ce0a3faa6 Fix issue #44 (CJK input)
We have our own version of interpretKeyEvents: because we want to augment the default key bindings dictionaries (and support multi-stroke key bindings).

When there is marked text (as part of inserting CJK or similar) the system’s version of interpretKeyEvents: seems to handle key bindings slightly different, for example where ↩ is normally bound to insertNewline:, this might be suppressed when the user has just selected a “translation”.
2012-08-13 01:21:53 +02:00
Allan Odgaard
6c35a3314a Fix leaking bundle menu delegates 2012-08-13 00:39:10 +02:00
Elia Schito
449b6229d8 Add bundle menu to the status bar 2012-08-13 00:25:20 +02:00
Elia Schito
b0018c2099 Extract Bundle menu to a framework 2012-08-12 23:56:19 +02:00
Clemens Lang
b08daa7f97 git test: don't fail in unconfigured envs
git commit fails when user.name and user.email aren't set. Unfortunately
using git commit --author='Test Test <test@example.com>' doesn't work.

This could happen in environments where pristine users are used to build
software.

This patch is public domain.
2012-08-12 22:26:59 +02:00
Allan Odgaard
a92c7cda68 fixup! Stop using deprecated NSSavePanel/NSOpenPanel methods
Be careful not to initialize an NSURL from nil.
2012-08-12 22:23:52 +02:00