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

Preferences ID cleanups - Part II #3101

Merged
merged 7 commits into from
Mar 19, 2013
Merged
Show file tree
Hide file tree
Changes from 4 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
3 changes: 1 addition & 2 deletions src/LiveDevelopment/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,7 +49,6 @@ define(function main(require, exports, module) {
UrlParams = require("utils/UrlParams").UrlParams,
Strings = require("strings");

var PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id);
var prefs;
var params = new UrlParams();
var config = {
Expand Down Expand Up @@ -220,7 +219,7 @@ define(function main(require, exports, module) {
});

// init prefs
prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID, {highlight: true});
prefs = PreferencesManager.getPreferenceStorage(module, {highlight: true});
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(prefs, "com.adobe.brackets.live-development", {highlight: true});

Expand Down
5 changes: 2 additions & 3 deletions src/brackets.js
Original file line number Diff line number Diff line change
Expand Up @@ -108,8 +108,7 @@ define(function (require, exports, module) {
PerfUtils.addMeasurement("brackets module dependencies resolved");

// Local variables
var params = new UrlParams(),
PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id);
var params = new UrlParams();

// read URL params
params.parse();
Expand Down Expand Up @@ -201,7 +200,7 @@ define(function (require, exports, module) {
// the samples folder on first launch), open it automatically. (We explicitly check for the
// samples folder in case this is the first time we're launching Brackets after upgrading from
// an old version that might not have set the "afterFirstLaunch" pref.)
var prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID),
var prefs = PreferencesManager.getPreferenceStorage(module),
deferred = new $.Deferred();
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(prefs, "com.adobe.brackets.startup");
Expand Down
7 changes: 1 addition & 6 deletions src/document/DocumentManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -95,11 +95,6 @@ define(function (require, exports, module) {
Commands = require("command/Commands"),
LanguageManager = require("language/LanguageManager");

/**
* Unique PreferencesManager clientID
*/
var PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id);

/**
* @private
* @see DocumentManager.getCurrentDocument()
Expand Down Expand Up @@ -1261,7 +1256,7 @@ define(function (require, exports, module) {
exports.notifyPathNameChanged = notifyPathNameChanged;

// Setup preferences
_prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID);
_prefs = PreferencesManager.getPreferenceStorage(module);
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(_prefs, "com.adobe.brackets.DocumentManager");

Expand Down
5 changes: 2 additions & 3 deletions src/editor/Editor.js
Original file line number Diff line number Diff line change
Expand Up @@ -72,11 +72,10 @@ define(function (require, exports, module) {
TokenUtils = require("utils/TokenUtils"),
ViewUtils = require("utils/ViewUtils");

var PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id),
defaultPrefs = { useTabChar: false, tabSize: 4, indentUnit: 4, closeBrackets: false };
var defaultPrefs = { useTabChar: false, tabSize: 4, indentUnit: 4, closeBrackets: false };

/** Editor preferences */
var _prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID);
var _prefs = PreferencesManager.getPreferenceStorage(module, defaultPrefs);
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(_prefs, "com.adobe.brackets.Editor", defaultPrefs);

Expand Down
3 changes: 1 addition & 2 deletions src/extensions/default/RecentProjects/main.js
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,12 @@ define(function (require, exports, module) {
FileUtils = brackets.getModule("file/FileUtils"),
NativeFileSystem = brackets.getModule("file/NativeFileSystem").NativeFileSystem;

var PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id);

var $dropdownToggle,
$dropdown,
$settings;

var prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID);
var prefs = PreferencesManager.getPreferenceStorage(module);
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(prefs, "com.adobe.brackets.brackets-recent-projects");

Expand Down
5 changes: 2 additions & 3 deletions src/language/JSLintUtils.js
Original file line number Diff line number Diff line change
Expand Up @@ -49,8 +49,7 @@ define(function (require, exports, module) {
AppInit = require("utils/AppInit"),
StatusBar = require("widgets/StatusBar");

var PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id),
defaultPrefs = { enabled: !!brackets.config.enable_jslint };
var defaultPrefs = { enabled: !!brackets.config.enable_jslint };

/**
* @private
Expand Down Expand Up @@ -265,7 +264,7 @@ define(function (require, exports, module) {
CommandManager.register(Strings.CMD_JSLINT_FIRST_ERROR, Commands.NAVIGATE_GOTO_JSLINT_ERROR, _handleGotoJSLintError);

// Init PreferenceStorage
_prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID);
_prefs = PreferencesManager.getPreferenceStorage(module, defaultPrefs);
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(_prefs, module.id, defaultPrefs);

Expand Down
75 changes: 56 additions & 19 deletions src/preferences/PreferencesManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -33,28 +33,75 @@ define(function (require, exports, module) {
"use strict";

var PreferenceStorage = require("preferences/PreferenceStorage").PreferenceStorage,
CollectionUtils = require("utils/CollectionUtils");
FileUtils = require("file/FileUtils"),
ExtensionLoader = require("utils/ExtensionLoader"),
CollectionUtils = require("utils/CollectionUtils");

/**
* The local storage ID
* @const
* @type {string}
*/
var PREFERENCES_CLIENT_ID = "com.adobe.brackets.preferences";


/**
* The prefix used in the generated client ID
* @const
* @type {string}
*/
var CLIENT_ID_PREFIX = "com.adobe.brackets.";


// Private Properties
var preferencesKey,
prefStorage,
persistentStorage,
doLoadPreferences = false;


/**
* This method returns a standardized ClientID for a given requireJS module object
* @param {!{id: string, uri: string}} module - A requireJS module object
* @return {string} The ClientID
*/
function getClientID(module) {
var pathExp, pathUrl, clientID,
dirPath = FileUtils.getNativeBracketsDirectoryPath(),
paths = [
dirPath + "/extensions/default/",
dirPath + "/extensions/dev/",
ExtensionLoader.getUserExtensionPath() + "/"
];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The paths Array gets built every time this function is called and it's the same every time. Create a function called something like getExtensionPaths() that builds and returns the array the first time it's called, and simply returns the array on all subsequent calls.


paths.some(function (path) {
pathExp = new RegExp("^" + path);
if (module.uri.match(pathExp)) {
pathUrl = path;
return true;
}
});

if (pathUrl) {
clientID = CLIENT_ID_PREFIX + module.uri.replace(pathUrl, "");
} else {
clientID = CLIENT_ID_PREFIX + module.id;
}
return clientID;
}

/**
* Retreive preferences data for the given clientID.
*
* @param {string} clientID Unique identifier
* @param {string} defaults Default preferences stored as JSON
* Retreive the preferences data for the given clientID.
* @param {string|{id: string, uri: string}} clientID - A unique identifier or a requireJS module object
* @param {string} defaults - Default preferences stored as JSON
* @return {PreferenceStorage}
*/
function getPreferenceStorage(clientID, defaults) {
if ((clientID === undefined) || (clientID === null)) {
if (!clientID || (typeof clientID === "object" && (!clientID.id || !clientID.uri))) {
console.error("Invalid clientID");
return;
}
if (typeof (clientID) === "object") {
clientID = getClientID(clientID);
}

var prefs = prefStorage[clientID];

Expand Down Expand Up @@ -136,16 +183,6 @@ define(function (require, exports, module) {
}
delete prefStorage[oldID];
}

/**
* This method returns a standardized ClientId for a given moduleId
*
* @param {!string} moduleId a given moduleId
* @return {string} the ClientId
*/
function getClientId(moduleId) {
return "com.adobe.brackets." + moduleId;
}

// Check localStorage for a preferencesKey. Production and unit test keys
// are used to keep preferences separate within the same storage implementation.
Expand All @@ -167,7 +204,7 @@ define(function (require, exports, module) {
exports.getPreferenceStorage = getPreferenceStorage;
exports.savePreferences = savePreferences;
exports.handleClientIdChange = handleClientIdChange;
exports.getClientId = getClientId;
exports.getClientID = getClientID;

// Unit test use only
exports._reset = _reset;
Expand Down
7 changes: 1 addition & 6 deletions src/project/ProjectManager.js
Original file line number Diff line number Diff line change
Expand Up @@ -126,11 +126,6 @@ define(function (require, exports, module) {
*/
var _projectBaseUrl = "";

/**
* Unique PreferencesManager clientID
*/
var PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id);

/**
* @private
* @type {PreferenceStorage}
Expand Down Expand Up @@ -1348,7 +1343,7 @@ define(function (require, exports, module) {
var defaults = {
projectPath: _getWelcomeProjectPath() /* initialize to welcome project */
};
_prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID);
_prefs = PreferencesManager.getPreferenceStorage(module, defaults);
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(_prefs, "com.adobe.brackets.ProjectManager", defaults);

Expand Down
5 changes: 2 additions & 3 deletions src/project/WorkingSetSort.js
Original file line number Diff line number Diff line change
Expand Up @@ -38,8 +38,7 @@ define(function (require, exports, module) {
AppInit = require("utils/AppInit"),
Strings = require("strings");

var PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id),
defaultPrefs = {
var defaultPrefs = {
currentSort: Commands.SORT_WORKINGSET_BY_ADDED,
automaticSort: false
};
Expand Down Expand Up @@ -349,7 +348,7 @@ define(function (require, exports, module) {


// Initialize PreferenceStorage
_prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID);
_prefs = PreferencesManager.getPreferenceStorage(module, defaultPrefs);
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(_prefs, "com.adobe.brackets.WorkingSetSort", defaultPrefs);

Expand Down
7 changes: 2 additions & 5 deletions src/utils/Resizer.js
Original file line number Diff line number Diff line change
Expand Up @@ -63,9 +63,6 @@ define(function (require, exports, module) {
PreferencesManager = require("preferences/PreferencesManager"),
EditorManager = require("editor/EditorManager");

var PREFERENCES_CLIENT_ID = PreferencesManager.getClientId(module.id),
defaultPrefs = { };

/**
* @private
* @type {PreferenceStorage}
Expand Down Expand Up @@ -389,9 +386,9 @@ define(function (require, exports, module) {
}

// Init PreferenceStorage
_prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID);
_prefs = PreferencesManager.getPreferenceStorage(module);
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(_prefs, module.id, defaultPrefs);
PreferencesManager.handleClientIdChange(_prefs, module.id);

// Scan DOM for horz-resizable and vert-resizable classes and make them resizable
AppInit.htmlReady(function () {
Expand Down
9 changes: 7 additions & 2 deletions src/utils/UpdateNotification.js
Original file line number Diff line number Diff line change
Expand Up @@ -40,12 +40,17 @@ define(function (require, exports, module) {
UpdateDialogTemplate = require("text!htmlContent/update-dialog.html"),
UpdateListTemplate = require("text!htmlContent/update-list.html");

var defaultPrefs = {lastNotifiedBuildNumber: 0};


// Extract current build number from package.json version field 0.0.0-0
var _buildNumber = Number(/-([0-9]+)/.exec(brackets.metadata.version)[1]);

// PreferenceStorage
var _prefs = PreferencesManager.getPreferenceStorage(module.id, {lastNotifiedBuildNumber: 0});

var _prefs = PreferencesManager.getPreferenceStorage(module, defaultPrefs);
//TODO: Remove preferences migration code
PreferencesManager.handleClientIdChange(_prefs, module.id, defaultPrefs);

// This is the last version we notified the user about. If checkForUpdate()
// is called with "false", only show the update notification dialog if there
// is an update newer than this one. This value is saved in preferences.
Expand Down
10 changes: 1 addition & 9 deletions src/view/ViewCommandHandlers.js
Original file line number Diff line number Diff line change
Expand Up @@ -43,14 +43,6 @@ define(function (require, exports, module) {
*/
var DYNAMIC_FONT_STYLE_ID = "codemirror-dynamic-fonts";

/**
* @const
* @private
* Unique PreferencesManager clientID
* @type {string}
*/
var PREFERENCES_CLIENT_ID = "com.adobe.brackets." + module.id;

/**
* @const
* @private
Expand Down Expand Up @@ -335,7 +327,7 @@ define(function (require, exports, module) {
KeyBindingManager.addBinding(Commands.VIEW_SCROLL_LINE_DOWN);

// Init PreferenceStorage
_prefs = PreferencesManager.getPreferenceStorage(PREFERENCES_CLIENT_ID, _defaultPrefs);
_prefs = PreferencesManager.getPreferenceStorage(module, _defaultPrefs);

// Update UI when opening or closing a document
$(DocumentManager).on("currentDocumentChange", _updateUI);
Expand Down