Skip to content
This repository was archived by the owner on Sep 6, 2021. It is now read-only.

Commit ce492cf

Browse files
committed
Merge branch 'master' of https://github.com/adobe/brackets into larz/modal-transition
2 parents 550bc5c + 0e8b080 commit ce492cf

12 files changed

Lines changed: 223 additions & 85 deletions

File tree

src/editor/Editor.js

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -884,13 +884,18 @@ define(function (require, exports, module) {
884884
*/
885885
Editor.prototype.getColOffset = function (pos) {
886886
var line = this._codeMirror.getRange({line: pos.line, ch: 0}, pos),
887-
tabSize = Editor.getTabSize(),
887+
tabSize = null,
888888
column = 0,
889889
i;
890890

891891
for (i = 0; i < line.length; i++) {
892892
if (line[i] === '\t') {
893-
column += (tabSize - (column % tabSize));
893+
if (tabSize === null) {
894+
tabSize = Editor.getTabSize();
895+
}
896+
if (tabSize > 0) {
897+
column += (tabSize - (column % tabSize));
898+
}
894899
} else {
895900
column++;
896901
}
@@ -1136,9 +1141,11 @@ define(function (require, exports, module) {
11361141
* @param {{line:number, ch:number}=} end If not specified, defaults to start.
11371142
* @param {boolean} center true to center the viewport
11381143
* @param {number} centerOptions Option value, or 0 for no options; one of the BOUNDARY_* constants above.
1144+
* @param {?string} origin An optional string that describes what other selection or edit operations this
1145+
* should be merged with for the purposes of undo. See Document.replaceRange() for more details.
11391146
*/
1140-
Editor.prototype.setSelection = function (start, end, center, centerOptions) {
1141-
this.setSelections([{start: start, end: end || start}], center, centerOptions);
1147+
Editor.prototype.setSelection = function (start, end, center, centerOptions, origin) {
1148+
this.setSelections([{start: start, end: end || start}], center, centerOptions, origin);
11421149
};
11431150

11441151
/**
@@ -1153,15 +1160,20 @@ define(function (require, exports, module) {
11531160
* one selection has primary set to true. If none has primary set to true, the last one is primary.
11541161
* @param {boolean} center true to center the viewport around the primary selection.
11551162
* @param {number} centerOptions Option value, or 0 for no options; one of the BOUNDARY_* constants above.
1163+
* @param {?string} origin An optional string that describes what other selection or edit operations this
1164+
* should be merged with for the purposes of undo. See Document.replaceRange() for more details.
11561165
*/
1157-
Editor.prototype.setSelections = function (selections, center, centerOptions) {
1158-
var primIndex = selections.length - 1;
1166+
Editor.prototype.setSelections = function (selections, center, centerOptions, origin) {
1167+
var primIndex = selections.length - 1, options;
1168+
if (origin) {
1169+
options = { origin: origin };
1170+
}
11591171
this._codeMirror.setSelections(_.map(selections, function (sel, index) {
11601172
if (sel.primary) {
11611173
primIndex = index;
11621174
}
11631175
return { anchor: sel.reversed ? sel.end : sel.start, head: sel.reversed ? sel.start : sel.end };
1164-
}), primIndex);
1176+
}), primIndex, options);
11651177
if (center) {
11661178
this.centerOnCursor(centerOptions);
11671179
}

src/editor/ImageViewer.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,8 @@ define(function (require, exports, module) {
3434
ProjectManager = require("project/ProjectManager"),
3535
Strings = require("strings"),
3636
StringUtils = require("utils/StringUtils"),
37-
FileSystem = require("filesystem/FileSystem");
37+
FileSystem = require("filesystem/FileSystem"),
38+
FileUtils = require("file/FileUtils");
3839

3940
var _naturalWidth = 0,
4041
_scale = 100,
@@ -312,7 +313,11 @@ define(function (require, exports, module) {
312313
$("#img-preview").on("load", function () {
313314
// add dimensions and size
314315
_naturalWidth = this.naturalWidth;
316+
var ext = FileUtils.getFileExtension(fullPath);
315317
var dimensionString = _naturalWidth + " &times; " + this.naturalHeight + " " + Strings.UNIT_PIXELS;
318+
if (ext === "ico") {
319+
dimensionString += " (" + Strings.IMAGE_VIEWER_LARGEST_ICON + ")";
320+
}
316321
// get image size
317322
var file = FileSystem.getFileForPath(fullPath);
318323
var minimumPixels = 20; // for showing crosshair cursor

src/extensions/default/CloseOthers/main.js

Lines changed: 77 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -41,15 +41,19 @@ define(function (require, exports, module) {
4141
closeBelow = "file.close_below";
4242

4343
// Global vars and preferences
44-
var commandsRegistered = false,
45-
menuEntriesShown = {},
46-
prefs = PreferencesManager.getExtensionPrefs("closeOthers");
47-
prefs.definePreference("below", "boolean", true);
44+
var prefs = PreferencesManager.getExtensionPrefs("closeOthers"),
45+
menuEntriesShown = {};
46+
47+
prefs.definePreference("below", "boolean", true);
4848
prefs.definePreference("others", "boolean", true);
49-
prefs.definePreference("above", "boolean", true);
50-
49+
prefs.definePreference("above", "boolean", true);
50+
51+
52+
/**
53+
* Handle the different Close Other commands
54+
* @param {string} mode
55+
*/
5156
function handleClose(mode) {
52-
5357
var targetIndex = DocumentManager.findInWorkingSet(DocumentManager.getCurrentDocument().file.fullPath),
5458
workingSet = DocumentManager.getWorkingSet().slice(0),
5559
start = (mode === closeBelow) ? (targetIndex + 1) : 0,
@@ -68,8 +72,11 @@ define(function (require, exports, module) {
6872

6973
CommandManager.execute(Commands.FILE_CLOSE_LIST, {fileList: files});
7074
}
71-
72-
function _contextMenuOpenHandler() {
75+
76+
/**
77+
* Enable/Disable the menu items depending on which document is selected in the working set
78+
*/
79+
function contextMenuOpenHandler() {
7380
var doc = DocumentManager.getCurrentDocument();
7481

7582
if (doc) {
@@ -95,56 +102,89 @@ define(function (require, exports, module) {
95102
}
96103
}
97104
}
98-
99-
function prefChangeHandler() {
100-
// it's senseless to look prefs up for the current file, instead look them up for
105+
106+
107+
/**
108+
* Returns the preferences used to add/remove the menu items
109+
* @return {{closeBelow: boolean, closeOthers: boolean, closeAbove: boolean}}
110+
*/
111+
function getPreferences() {
112+
// It's senseless to look prefs up for the current file, instead look them up for
101113
// the current project (or globally)
102-
var prefCloseBelow = prefs.get("below", PreferencesManager.CURRENT_PROJECT),
103-
prefCloseOthers = prefs.get("others", PreferencesManager.CURRENT_PROJECT),
104-
prefCloseAbove = prefs.get("above", PreferencesManager.CURRENT_PROJECT);
105-
106-
if (!commandsRegistered && (prefCloseBelow || prefCloseOthers || prefCloseAbove)) {
107-
CommandManager.register(Strings.CMD_FILE_CLOSE_BELOW, closeBelow, function () {
108-
handleClose(closeBelow);
109-
});
110-
CommandManager.register(Strings.CMD_FILE_CLOSE_OTHERS, closeOthers, function () {
111-
handleClose(closeOthers);
112-
});
113-
CommandManager.register(Strings.CMD_FILE_CLOSE_ABOVE, closeAbove, function () {
114-
handleClose(closeAbove);
115-
});
116-
commandsRegistered = true;
117-
}
114+
return {
115+
closeBelow : prefs.get("below", PreferencesManager.CURRENT_PROJECT),
116+
closeOthers : prefs.get("others", PreferencesManager.CURRENT_PROJECT),
117+
closeAbove : prefs.get("above", PreferencesManager.CURRENT_PROJECT)
118+
};
119+
}
120+
121+
/**
122+
* When the preferences changed, add/remove the required menu items
123+
*/
124+
function prefChangeHandler() {
125+
var prefs = getPreferences();
118126

119-
if (prefCloseBelow !== menuEntriesShown.closeBelow) {
120-
if (prefCloseBelow) {
127+
if (prefs.closeBelow !== menuEntriesShown.closeBelow) {
128+
if (prefs.closeBelow) {
121129
workingSetCmenu.addMenuItem(closeBelow, "", Menus.AFTER, Commands.FILE_CLOSE);
122130
} else {
123131
workingSetCmenu.removeMenuItem(closeBelow);
124132
}
125133
}
126-
if (prefCloseOthers !== menuEntriesShown.closeOthers) {
127-
if (prefCloseOthers) {
134+
135+
if (prefs.closeOthers !== menuEntriesShown.closeOthers) {
136+
if (prefs.closeOthers) {
128137
workingSetCmenu.addMenuItem(closeOthers, "", Menus.AFTER, Commands.FILE_CLOSE);
129138
} else {
130139
workingSetCmenu.removeMenuItem(closeOthers);
131140
}
132141
}
133-
if (prefCloseAbove !== menuEntriesShown.closeAbove) {
134-
if (prefCloseAbove) {
142+
143+
if (prefs.closeAbove !== menuEntriesShown.closeAbove) {
144+
if (prefs.closeAbove) {
135145
workingSetCmenu.addMenuItem(closeAbove, "", Menus.AFTER, Commands.FILE_CLOSE);
136146
} else {
137147
workingSetCmenu.removeMenuItem(closeAbove);
138148
}
139149
}
140-
menuEntriesShown = {"closeBelow": prefCloseBelow, "closeOthers": prefCloseOthers, "closeAbove": prefCloseAbove};
150+
151+
menuEntriesShown = prefs;
152+
}
153+
154+
/**
155+
* Register the Commands and add the Menu Items, if required
156+
*/
157+
function initializeCommands() {
158+
var prefs = getPreferences();
159+
160+
CommandManager.register(Strings.CMD_FILE_CLOSE_BELOW, closeBelow, function () {
161+
handleClose(closeBelow);
162+
});
163+
CommandManager.register(Strings.CMD_FILE_CLOSE_OTHERS, closeOthers, function () {
164+
handleClose(closeOthers);
165+
});
166+
CommandManager.register(Strings.CMD_FILE_CLOSE_ABOVE, closeAbove, function () {
167+
handleClose(closeAbove);
168+
});
169+
170+
if (prefs.closeBelow) {
171+
workingSetCmenu.addMenuItem(closeBelow, "", Menus.AFTER, Commands.FILE_CLOSE);
172+
}
173+
if (prefs.closeOthers) {
174+
workingSetCmenu.addMenuItem(closeOthers, "", Menus.AFTER, Commands.FILE_CLOSE);
175+
}
176+
if (prefs.closeAbove) {
177+
workingSetCmenu.addMenuItem(closeAbove, "", Menus.AFTER, Commands.FILE_CLOSE);
178+
}
179+
menuEntriesShown = prefs;
141180
}
142181

182+
143183
// Initialize using the prefs
144-
prefChangeHandler();
184+
initializeCommands();
145185

146186
// Add a context menu open handler
147-
$(workingSetCmenu).on("beforeContextMenuOpen", _contextMenuOpenHandler);
187+
$(workingSetCmenu).on("beforeContextMenuOpen", contextMenuOpenHandler);
148188

149189
prefs.on("change", prefChangeHandler);
150190
});

src/extensions/default/InlineTimingFunctionEditor/TimingFunctionUtils.js

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@
2222
*/
2323

2424
/*jslint vars: true, plusplus: true, devel: true, nomen: true, regexp: true, indent: 4, maxerr: 50 */
25-
/*global define, brackets */
25+
/*global define, brackets, $ */
2626

2727
/**
2828
* Utilities functions related to color matching
@@ -258,15 +258,18 @@ define(function (require, exports, module) {
258258
return;
259259
}
260260

261+
$(editor.hint[0]).removeClass("fadeout");
261262
if (show) {
262263
editor.hintShown = true;
263264
editor.hint.html(StringUtils.format(Strings.INLINE_TIMING_EDITOR_INVALID, documentCode, editorCode));
264265
editor.hint.css("display", "block");
265266
} else if (editor.hintShown) {
267+
editor.hintShown = false;
266268
AnimationUtils.animateUsingClass(editor.hint[0], "fadeout")
267269
.done(function () {
268-
editor.hint.css("display", "none");
269-
editor.hintShown = false;
270+
if (!editor.hintShown) {
271+
editor.hint.css("display", "none");
272+
}
270273
});
271274
} else {
272275
editor.hint.css("display", "none");

src/language/languages.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,7 @@
233233

234234
"image": {
235235
"name": "Image",
236-
"fileExtensions": ["gif", "png", "jpe", "jpeg", "jpg"],
236+
"fileExtensions": ["gif", "png", "jpe", "jpeg", "jpg", "ico"],
237237
"isBinary": true
238238
},
239239

src/nls/de/strings.js

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,10 @@ define({
6565
"ERROR_CREATING_FILE_TITLE" : "Fehler beim Erstellen von {0}", // TODO: depends on {0} gender
6666
"ERROR_CREATING_FILE" : "Beim Erstellen von {0} <span class='dialog-filename'>{1}</span> ist ein Fehler aufgetreten: {2}", // TODO: depends on {0} gender
6767

68+
// Application preferences corrupt error strings
69+
"ERROR_PREFS_CORRUPT_TITLE" : "Fehler beim Lesen der Einstellungen",
70+
"ERROR_PREFS_CORRUPT" : "Ihre Einstellungsdatei ist kein gültiges JSON. Die Datei wird geöffnet, damit Sie das Format korrigieren können. Sie müssen {APP_NAME} neu starten, damit die Änderungen wirksam werden.",
71+
6872
// Application error strings
6973
"ERROR_IN_BROWSER_TITLE" : "Ups! {APP_NAME} kann derzeit leider noch nicht im Browser ausgeführt werden.",
7074
"ERROR_IN_BROWSER" : "{APP_NAME} wurde in HTML programmiert, ist derzeit jedoch lediglich als Desktop-Anwendung verfügbar, um damit lokale Dateien zu bearbeiten. Bitte verwenden Sie die Anwendungs-Shell im Repo <b>github.com/adobe/brackets-shell</b>, um {APP_NAME} auszuführen.",
@@ -167,6 +171,14 @@ define({
167171
"ERROR_FETCHING_UPDATE_INFO_TITLE" : "Fehler beim Abrufen der Update-Info",
168172
"ERROR_FETCHING_UPDATE_INFO_MSG" : "Beim Abrufen der neusten Update-Informationen vom Server ist ein Problem aufgetreten. Bitte stellen Sie sicher, dass Sie mit dem Internet verbunden sind, und probieren Sie es erneut.",
169173

174+
// File exclusion filters
175+
"NO_FILE_FILTER" : "Dateien ausschließen\u2026",
176+
"EDIT_FILE_FILTER" : "Bearbeiten\u2026",
177+
"FILE_FILTER_DIALOG" : "Filter bearbeiten",
178+
"FILE_FILTER_INSTRUCTIONS" : "Schließe Dateien und Ordner aus, auf die einer der folgenden Pfade / Teilpfade oder <a href='{0}' title='{0}'>Globs</a> zutrifft. Nutze für jeden Pfad eine neue Zeile.",
179+
"FILE_FILTER_LIST_PREFIX" : "ausgenommen",
180+
"FILE_FILTER_CLIPPED_SUFFIX" : "und {0} weitere",
181+
170182
/**
171183
* ProjectManager
172184
*/
@@ -198,6 +210,8 @@ define({
198210
"STATUSBAR_LINE_COUNT_SINGULAR" : "\u2014 {0} Zeile",
199211
"STATUSBAR_LINE_COUNT_PLURAL" : "\u2014 {0} Zeilen",
200212
"STATUSBAR_USER_EXTENSIONS_DISABLED" : "Erweiterungen deaktiviert",
213+
"STATUSBAR_INSERT" : "INS",
214+
"STATUSBAR_OVERWRITE" : "OVR",
201215

202216
// CodeInspection: errors/warnings
203217
"ERRORS_PANEL_TITLE_MULTIPLE" : "{0} Probleme",

0 commit comments

Comments
 (0)