Many hyperlinks are disabled.
Use anonymous login
to enable hyperlinks.
Changes In Branch testSettingsReload Excluding Merge-Ins
This is equivalent to a diff from 26b83521b1 to 05929eb51e
2012-11-11
| ||
10:25 | Исправлена ошибка: при повторной загрузке настроек при помощи LoadSettings() происходила ошибка инициализации менеджера настроек из-за того, что при первом вызове изменялось значение свойства settings формы. Leaf check-in: 05929eb51e user: kuntashov tags: testSettingsReload | |
2012-11-08
| ||
11:22 | Пофиксена установка положения каретки при разворачивании шаблонов в SciColorer check-in: 085644d193 user: orefkov tags: trunk | |
2012-11-07
| ||
12:44 | Добавил форму настроек check-in: ef802b48e3 user: sosnae tags: testSettingsReload | |
12:42 | Create new branch named "testSettingsReload" check-in: c96bfbc8f3 user: sosnae tags: testSettingsReload | |
2012-11-06
| ||
14:25 | Испраленна ошибка определения позиции текста для некоторых окон (СКД, конструктор запросов) check-in: 26b83521b1 user: sosnae tags: trunk | |
14:17 | Добавлен скрипт Менеджер сессий, позволяет запоминать при выходе из Конфигуратора список открытых окон и воссатнавливать их при следующем входе. check-in: 8185b47180 user: sosnae tags: trunk | |
Changes to CfgStore.js.
43 43 44 44 res = stdcommands.CfgStore.CaptureIntoCfgStore.send() // true если успешно 45 45 46 46 if(isEventConnected) 47 47 events.disconnect(windows, "onDoModal", SelfScript.self, "hookCaptureCfgStoreWindow") 48 48 if(view) 49 49 view.activate(); 50 + }catch(e) 51 + { 52 + Message("Ошибка : " + e.description) 53 + } 54 + 55 + return true; 56 +} 57 + 58 +SelfScript.self['macrosПоместить объект в хранилище'] = function() { 59 + 60 + try{ //иногда вылетают странные исключения :( при работе с элементами форм 61 + view = windows.getActiveView(); 62 + if (!view || !view.mdObj || view.mdObj.container != metadata.current) return false; 63 + 64 + 65 + res1 = view.mdObj.activateInTree(); 66 + 67 + isEventConnected = true 68 + 69 + res = stdcommands.CfgStore.StoreIntoCfgStore.send() // true если успешно 70 + 50 71 }catch(e) 51 72 { 52 73 Message("Ошибка : " + e.description) 53 74 } 54 75 55 76 return true; 56 77 }
Changes to Libs/ScriptForm.js.
141 141 return this.settingsRootPath && this.settings; 142 142 }, 143 143 144 144 loadSettings : function () { 145 145 146 146 if (!this.hasSettings()) 147 147 return false; 148 + 149 + if (!this._defaultSettings) { 150 + this._defaultSettings = {}; 151 + for(var prop in this.settings) { 152 + this._defaultSettings[prop] = this.settings[prop]; 153 + } 154 + } 148 155 149 156 var sm = stdlib.require('SettingsManagement.js').SettingsManagement; 150 - for (var pflType in this.settings) 157 + for (var pflType in this._defaultSettings) 151 158 { 152 - var defaults = this.settings[pflType]; 159 + var defaults = this._defaultSettings[pflType]; 153 160 // Имя ключа = строка - имя значения перечисления. Выполняя строку получаем необходимое значение. 154 161 var pflTypeValue = eval(pflType); 155 162 var settings = sm.CreateManager(this.settingsRootPath, defaults, pflTypeValue); 156 163 157 164 settings.LoadSettings(); 158 165 if (this.form) 159 166 settings.ApplyToForm(this.form);
Changes to SessionManager.js.
47 47 } 48 48 SelfScript.self['macrosОчистить всю историю'] = function() { 49 49 50 50 var sm = GetSessionManager(); 51 51 sm.sessionTreeClear(); 52 52 return true; 53 53 } 54 + 55 +SelfScript.self['macrosОткрыть настройку'] = function() { 56 + 57 + var sms = GetSessionManagerSettings(); 58 + sms.show(true); 59 + sms = null; 60 + var sm = GetSessionManager(); 61 + sm.reloadSettings(); 62 + return true; 63 +} 64 + 65 + 54 66 /* Возвращает название макроса по умолчанию - вызывается, когда пользователь 55 67 дважды щелкает мышью по названию скрипта в окне Снегопата. */ 56 68 function getDefaultMacros() { 57 69 return 'Восстановить последнюю сессию'; 58 70 } 59 71 60 72 ////} Макросы ................................................................................ 64 76 //// 65 77 SessionManager = ScriptForm.extend({ 66 78 67 79 settingsRootPath : SelfScript.uniqueName, 68 80 69 81 settings : { 70 82 pflBase : { 71 - 'SessionsHistory' : "", //Таблица значений. 72 - 'SassionSaved' : v8New('ValueList'), 73 - 'AutoSave' : false, // Автосохранение сессии. 74 - 'HistoryDepth' : 15 // Количество элементов истории сессий. 83 + 'SessionsHistory' : "", //Таблица значений 84 + 'SassionSaved' : "", 85 + 'AutoSave' : true, // Автосохранение сессии. 86 + 'HistoryDepth' : 15, // Количество элементов истории сессий. 87 + 'AutoRestore' : true, 88 + 'MarksSave' : true, 89 + 'MarksRestore' : true 75 90 76 91 } 77 92 }, 78 93 79 94 construct : function (isExtend) { 80 95 81 96 if (isExtend == undefined) isExtend = false; ................................................................................ 108 123 this.SessionTree.Columns.Add("prop"); 109 124 this.SessionTree.Columns.Add("rootId"); 110 125 this.SessionTree.Columns.Add("sortkey"); 111 126 this.SessionTree.Columns.Add("curLine"); 112 127 } 113 128 114 129 try{ 130 + 115 131 this.SessionTree.Columns.Add("curLine"); 116 132 } catch(e){ } 117 133 118 134 }, 119 135 120 136 restoreSession:function(sessionName){ 121 137 122 138 var sessionsHistory = this.SessionTree; 139 + 123 140 if (sessionsHistory.Rows.Count()==0){ 124 141 return ; 125 142 } 143 + 126 144 if (sessionName==undefined) sessionName = "" 145 + 146 + if (!this.form.AutoRestore) { 147 + return; 148 + } 127 149 128 150 if (sessionName.length>0){ 129 151 for (var i = 0; i<sessionsHistory.Rows.Count(); i++){ 130 152 session = sessionsHistory.Rows.Get(i); 131 153 if (session.Name == sessionName){ 132 154 sessionRow = session; 133 155 break; ................................................................................ 235 257 newRow.path = item.path; 236 258 newRow.uuid = item.uuid; 237 259 newRow.prop = item.prop; 238 260 newRow.name = item.name; 239 261 newRow.curLine = item.curLine; 240 262 241 263 } 264 + 265 + // Не позволяем истории расти более заданной глубины. 266 + while (this.SessionTree.Rows.Count() > this.form.HistoryDepth){ 267 + currRow = this.SessionTree.Rows.Get(0); 268 + this.SessionTree.Rows.Delete(currRow); 269 + } 242 270 this.form.SessionsHistory = ValueToStringInternal(this.SessionTree); 243 271 }, 244 272 saveSettings:function(){ 245 273 this.form.SessionsHistory = ValueToStringInternal(this.SessionTree); 246 274 this._super(); 247 275 }, 248 276 beforeExitApp:function(){ 249 277 250 278 this.watcher.onTimer(1); 251 279 this.watcher.stopWatch(); 252 - 253 - this.saveSession(); 280 + 281 + if (this.form.AutoSave){ 282 + this.saveSession(); 283 + } 284 + 254 285 this.saveSettings(); 255 286 }, 256 287 257 288 expandTree : function (collapse) { 258 289 var tree = this.form.Controls.SessionsList; 259 290 for (var i=0; i < this.form.SessionsList.Rows.Count(); i++) 260 291 { ................................................................................ 351 382 // } 352 383 // }; 353 384 354 385 }, 355 386 356 387 sessionTreeClear:function(){ 357 388 this.SessionTree.Rows.Clear(); 389 + }, 390 + reloadSettings:function(){ 391 + this.loadSettings(); 358 392 } 359 393 360 394 395 +}) 396 + 397 +//////////////////////////////////////////////////////////////////////////////////////// 398 +////{ SessionManagerSettings - Настройки менеджера сессий. 399 +//// 400 +SessionManagerSettings = ScriptForm.extend({ 401 + 402 + settingsRootPath : SelfScript.uniqueName, 403 + 404 + settings : { 405 + pflBase : { 406 + 'SessionsHistory' : "", //Таблица значений 407 + 'SassionSaved' : "", 408 + 'AutoSave' : false, // Автосохранение сессии. 409 + 'HistoryDepth' : 15, // Количество элементов истории сессий. 410 + 'AutoRestore' : true, 411 + 'MarksSave' : true, 412 + 'MarksRestore' : true 413 + 414 + } 415 + }, 416 + 417 + construct : function () { 418 + 419 + this._super("scripts\\SessionManager.settings.ssf"); 420 + 421 + this.loadSettings(); 422 + 423 + SessionManagerSettings._instance = this; 424 + 425 + }, 426 + loadSettings:function(){ 427 + this._super(); 428 + try{ 429 + this.SessionTree = ValueFromStringInternal(this.form.SessionsHistory); 430 + } catch(e){ 431 + this.SessionTree = v8New("ValueTree"); 432 + this.SessionTree.Columns.Add("Name"); 433 + this.SessionTree.Columns.Add("path"); 434 + this.SessionTree.Columns.Add("uuid"); 435 + this.SessionTree.Columns.Add("prop"); 436 + this.SessionTree.Columns.Add("rootId"); 437 + this.SessionTree.Columns.Add("sortkey"); 438 + this.SessionTree.Columns.Add("curLine"); 439 + } 440 + 441 + try{ 442 + 443 + this.SessionTree.Columns.Add("curLine"); 444 + } catch(e){ } 445 + 446 + }, 447 + 448 + saveSettings:function(){ 449 + this.form.SessionsHistory = ValueToStringInternal(this.SessionTree); 450 + this._super(); 451 + }, 452 + 453 + Ok_Click:function(Button){ 454 + this.saveSettings(); 455 + this.form.Close(); 456 + }, 457 + 458 + Close_Click:function(Button){ 459 + this.form.Close(); 460 + } 461 + 361 462 }) 463 + 464 + 362 465 363 466 //////////////////////////////////////////////////////////////////////////////////////// 364 467 ////{ TextWindowsWatcher - отслеживает активизацию текстовых окон и запоминает последнее. 365 468 //// 366 469 367 470 TextWindowsWatcher = stdlib.Class.extend({ 368 471 ................................................................................ 586 689 //// 587 690 function GetSessionManager() { 588 691 if (!SessionManager._instance) 589 692 new SessionManager(); 590 693 591 694 return SessionManager._instance; 592 695 } 696 + 697 +function GetSessionManagerSettings() { 698 + if (!SessionManagerSettings._instance) 699 + new SessionManagerSettings(); 700 + 701 + return SessionManagerSettings._instance; 702 +} 593 703 594 704 function onTimer(Id) { 595 705 596 706 se = GetSessionManager(); 597 707 se.restoreSession(); 598 708 if (!timerId) 599 709 return;
Added SessionManager.settings.ssf.
cannot compute difference between binary files
Changes to SessionManager.ssf.
cannot compute difference between binary files