Welcome to mirror list, hosted at ThFree Co, Russian Federation.

config.hpp « cfg « src « far2l - github.com/elfmz/far2l.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
blob: b64cf2018307a4e86a5e0804497d252217a145f5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
#pragma once

/*
config.hpp

Конфигурация
*/
/*
Copyright (c) 1996 Eugene Roshal
Copyright (c) 2000 Far Group
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions
are met:
1. Redistributions of source code must retain the above copyright
   notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
   notice, this list of conditions and the following disclaimer in the
   documentation and/or other materials provided with the distribution.
3. The name of the authors may not be used to endorse or promote products
   derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR
IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT,
INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*/

#include "FARString.hpp"

enum
{
	DRIVE_SHOW_TYPE       = 0x00000001,
	DRIVE_SHOW_NETNAME    = 0x00000002,
	DRIVE_SHOW_LABEL      = 0x00000004,
	DRIVE_SHOW_FILESYSTEM = 0x00000008,
	DRIVE_SHOW_SIZE       = 0x00000010,
	DRIVE_SHOW_MOUNTS  = 0x00000020,
	DRIVE_SHOW_PLUGINS    = 0x00000040,
	DRIVE_SHOW_BOOKMARKS  = 0x00000080,
	DRIVE_SHOW_SIZE_FLOAT = 0x00000100,
	DRIVE_SHOW_REMOTE     = 0x00000200,
};


//  +CASR_* Поведение Ctrl-Alt-Shift для AllCtrlAltShiftRule
enum
{
	CASR_PANEL  = 0x0001,
	CASR_EDITOR = 0x0002,
	CASR_VIEWER = 0x0004,
	CASR_HELP   = 0x0008,
	CASR_DIALOG = 0x0010,
};

enum ExcludeCmdHistoryType
{
	EXCLUDECMDHISTORY_NOTWINASS    = 0x00000001,  // не помещать в историю команды ассоциаций Windows
	EXCLUDECMDHISTORY_NOTFARASS    = 0x00000002,  // не помещать в историю команды выполнения ассоциаций файлов
	EXCLUDECMDHISTORY_NOTPANEL     = 0x00000004,  // не помещать в историю команды выполнения с панели
	EXCLUDECMDHISTORY_NOTCMDLINE   = 0x00000008,  // не помещать в историю команды выполнения с ком.строки
	//EXCLUDECMDHISTORY_NOTAPPLYCMD   = 0x00000010,  // не помещать в историю команды выполнения из "Apply Commang"
};

// для Opt.QuotedName
enum QUOTEDNAMETYPE
{
	QUOTEDNAME_INSERT         = 0x00000001,            // кавычить при сбросе в командную строку, в диалогах и редакторе
	QUOTEDNAME_CLIPBOARD      = 0x00000002,            // кавычить при помещении в буфер обмена
};

//Для Opt.Dialogs.MouseButton
#define DMOUSEBUTTON_LEFT   0x00000001
#define DMOUSEBUTTON_RIGHT  0x00000002

//Для Opt.VMenu.xBtnClick
#define VMENUCLICK_IGNORE 0
#define VMENUCLICK_CANCEL 1
#define VMENUCLICK_APPLY  2

//Для Opt.Diz.UpdateMode
enum DIZUPDATETYPE
{
	DIZ_NOT_UPDATE,
	DIZ_UPDATE_IF_DISPLAYED,
	DIZ_UPDATE_ALWAYS
};

struct PanelOptions
{
	int Type;
	int Visible;
	int Focus;
	int ViewMode;
	int SortMode;
	int SortOrder;
	int SortGroups;
	int NumericSort;
	int CaseSensitiveSort;
	int DirectoriesFirst;
};

struct AutoCompleteOptions
{
	int ShowList;
	int ModalList;
	int AppendCompletion;
	FARString Exceptions;
};


struct PluginConfirmation
{
	int OpenFilePlugin;
	int StandardAssociation;
	int EvenIfOnlyOnePlugin;
	int SetFindList;
	int Prefix;
};

struct Confirmation
{
	int Copy;
	int Move;
	int RO;
	int Drag;
	int Delete;
	int DeleteFolder;
	int Exit;
	int Esc;  // Для CheckForEsc
	/* $ 12.03.2002 VVM
	  + Opt.EscTwiceToInterrupt
	    Определяет поведение при прерывании длительной операции
	    0 - второй ESC продолжает операцию
	    1 - второй ESC прерывает операцию */
	int EscTwiceToInterrupt;
	int RemoveConnection;
	/* $ 23.05.2001
	  +  Opt.Confirmation.AllowReedit - Флаг, который изменяет поведение открытия
	    файла на редактирование если, данный файл уже редактируется. По умолчанию - 1
	    0 - Если уже открытый файл не был изменен, то происходит переход к открытому редактору
	        без дополнительных вопросов. Если файл был изменен, то задается вопрос, и в случае
			если выбран вариант Reload, то загружается новая копия файла, при этом сделанные
	        изменения теряются.
	    1 - Так как было раньше. Задается вопрос и происходит переход либо уже к открытому файлу
	        либо загружается новая версия редактора.
	    */
	int AllowReedit;
	int HistoryClear;
	int RemoveSUBST;
	int RemoveHotPlug;
	int DetachVHD;
};

struct DizOptions
{
	FARString strListNames;
	int ROUpdate;
	int UpdateMode;
	int SetHidden;
	int StartPos;
	int AnsiByDefault;
	int SaveInUTF;
};

struct CodeXLAT
{
	int EnableForFastFileFind = 1;
	int EnableForDialogs = 1;
	DWORD Flags = XLAT_SWITCHKEYBLAYOUT;

	/* $ 25.11.2000 IS
	   Разграничитель слов из реестра для функции Xlat
	*/
	FARString strWordDivForXlat;
	FARString XLat;
};

struct NotificationsOptions
{
	int OnFileOperation;
	int OnConsole;

	int OnlyIfBackground;
};

struct EditorOptions
{
	int TabSize;
	int ExpandTabs;
	int PersistentBlocks;
	int DelRemovesBlocks;
	int AutoIndent;
	int AutoDetectCodePage;
	UINT DefaultCodePage;
	int CursorBeyondEOL;
	int BSLikeDel;
	int CharCodeBase;
	int SavePos;
	int SaveShortPos;
	int F7Rules; // $ 28.11.2000 SVS - Правило на счет поиска в редакторе
	int AllowEmptySpaceAfterEof; // $ 21.06.2005 SKV - разрешить показывать пустое пространство после последней строки редактируемого файла.
	int ReadOnlyLock; // $ 29.11.2000 SVS - лочить файл при открытии в редакторе, если он имеет атрибуты R|S|H
	int UndoSize; // $ 03.12.2001 IS - размер буфера undo в редакторе
	int UseExternalEditor;
	DWORD FileSizeLimitLo;
	DWORD FileSizeLimitHi;
	int ShowKeyBar;
	int ShowTitleBar;
	int ShowScrollBar;
	int EditOpenedForWrite;
	int SearchSelFound;
	int SearchRegexp;
	int SearchPickUpWord;
	int ShowWhiteSpace;

	FARString strWordDiv;
};

/* $ 29.03.2001 IS
     Тут следует хранить "локальные" настройки для программы просмотра
*/
struct ViewerOptions
{
	int TabSize;
	int AutoDetectCodePage;
	int ShowScrollbar;     // $ 18.07.2000 tran пара настроек для viewer
	int ShowArrows;
	int PersistentBlocks; // $ 14.05.2002 VVM Постоянные блоки во вьюере
	int ViewerIsWrap; // (Wrap|WordWarp)=1 | UnWrap=0
	int ViewerWrap; // Wrap=0|WordWarp=1
	int SavePos;
	int SaveShortPos;
	int UseExternalViewer;
	int ShowKeyBar; // $ 15.07.2000 tran + ShowKeyBar
	UINT DefaultCodePage;
	int ShowTitleBar;
	int SearchRegexp;
};

// "Полиция"
struct PoliciesOptions
{
	int DisabledOptions;  // разрешенность меню конфигурации
	int ShowHiddenDrives; // показывать скрытые логические диски
};

struct DialogsOptions
{
	int   EditBlock;            // Постоянные блоки в строках ввода
	int   EditHistory;          // Добавлять в историю?
	int   AutoComplete;         // Разрешено автодополнение?
	int   EULBsClear;           // = 1 - BS в диалогах для UnChanged строки удаляет такую строку также, как и Del
	int   SelectFromHistory;    // = 0 then (ctrl-down в строке с историей курсор устанавливался на самую верхнюю строку)
	DWORD EditLine;             // общая информация о строке ввода (сейчас это пока... позволяет управлять выделением)
	int   MouseButton;          // Отключение восприятия правой/левой кнопки мыши как команд закрытия окна диалога
	int   DelRemovesBlocks;
	int   CBoxMaxHeight;        // максимальный размер открываемого списка (по умолчанию=8)
};

struct VMenuOptions
{
	int   LBtnClick;
	int   RBtnClick;
	int   MBtnClick;
};

struct CommandLineOptions
{
	int EditBlock;
	int DelRemovesBlocks;
	int AutoComplete;
	int UsePromptFormat;
	int UseShell;
	int WaitKeypress;
	FARString strPromptFormat;
	FARString strShell;
};

struct NowellOptions
{
	int MoveRO;               // перед операцией Move снимать R/S/H атрибуты, после переноса - выставлять обратно
};

struct ScreenSizes
{
	COORD DeltaXY;            // на сколько поз. изменить размеры для распахнутого экрана
	int WScreenSizeSet;
	COORD WScreenSize[4];
};

struct LoadPluginsOptions
{
//  DWORD TypeLoadPlugins;       // see TYPELOADPLUGINSOPTIONS
	int MainPluginDir; // TRUE - использовать стандартный путь к основным плагинам
	int PluginsCacheOnly; // seting by '/co' switch, not saved in registry
	int PluginsPersonal;

	FARString strCustomPluginsPath;  // путь для поиска плагинов, указанный в /p
	FARString strPersonalPluginsPath;
	int SilentLoadPlugin; // при загрузке плагина с кривым...
	int OEMPluginsSupport;
	int ScanSymlinks;
};

struct FindFileOptions
{
	int FileSearchMode;
	bool FindFolders;
	bool FindSymLinks;
	bool CollectFiles;
	bool UseFilter;
	bool FindAlternateStreams;
	FARString strSearchInFirstSize;

	FARString strSearchOutFormat;
	FARString strSearchOutFormatWidth;
	int OutColumnCount;
	unsigned int OutColumnTypes[20];
	int OutColumnWidths[20];
	int OutColumnWidthType[20];
};

struct InfoPanelOptions
{
	FARString strFolderInfoFiles;
};

struct TreeOptions
{
	int LocalDisk;         // Хранить файл структуры папок для локальных дисков
	int NetDisk;           // Хранить файл структуры папок для сетевых дисков
	int NetPath;           // Хранить файл структуры папок для сетевых путей
	int RemovableDisk;     // Хранить файл структуры папок для сменных дисков
	int MinTreeCount;      // Минимальное количество папок для сохранения дерева в файле.
	int AutoChangeFolder;  // автосмена папок при перемещении по дереву
	DWORD TreeFileAttr;    // файловые атрибуты для файлов-деревях
};

struct CopyMoveOptions
{
	int WriteThrough;          // disable write caching
	int CopyXAttr;             // copy extended attributes if any
	int CopyAccessMode;        // copy files access mode
	int CopyOpened;            // копировать открытые на запись файлы
	int CopyShowTotal;         // показать общий индикатор копирования
	int MultiCopy;             // "разрешить мультикопирование/перемещение/создание связей"
	int CopyTimeRule;          // $ 30.01.2001 VVM  Показывает время копирования,оставшееся время и среднюю скорость
	int HowCopySymlink;
	int SparseFiles;
	int UseCOW;
};

struct DeleteOptions
{
	int DelShowTotal;         // показать общий индикатор удаления
};

struct MacroOptions
{
	int MacroReuseRules; // Правило на счет повторно использования забинденных клавиш
	DWORD DisableMacro; // параметры /m или /ma или /m....
	DWORD KeyMacroCtrlDot; // аля KEY_CTRLDOT
	DWORD KeyMacroCtrlShiftDot; // аля KEY_CTRLSHIFTDOT
	int CallPluginRules; // 0 - блокировать макросы при вызове плагина, 1 - разрешить макросы (ахтунг!)
	FARString strMacroCONVFMT; // формат преобразования double в строку
	FARString strDateFormat; // Для $Date
};

struct Options
{
	int Clock;
	int Mouse;
	int ShowKeyBar;
	int ScreenSaver;
	int ScreenSaverTime;
	int UseVk_oem_x;
	int InactivityExit;
	int InactivityExitTime;
	int ShowHidden;
	int Highlight;

	FARString strLeftFolder;
	FARString strRightFolder;

	FARString strLeftCurFile;
	FARString strRightCurFile;

	int RightSelectedFirst;
	int LeftSelectedFirst;
	int SelectFolders;
	int ReverseSort;
	int SortFolderExt;
	int DeleteToRecycleBin;         // удалять в корзину?
	int DeleteToRecycleBinKillLink; // перед удалением папки в корзину кильнем вложенные симлинки.
	int WipeSymbol; // символ заполнитель для "ZAP-операции"
	int SudoEnabled;
	int SudoConfirmModify;
	int SudoPasswordExpiration;

	CopyMoveOptions CMOpt;

	DeleteOptions DelOpt;

	int MultiMakeDir; // Опция создания нескольких каталогов за один сеанс

	int ViewerEditorClock;

	enum OnlyEditorViewerUsedT
	{
		NOT_ONLY_EDITOR_VIEWER = 0,
		ONLY_EDITOR,
		ONLY_VIEWER,
		ONLY_EDITOR_ON_CMDOUT,
		ONLY_VIEWER_ON_CMDOUT
	} OnlyEditorViewerUsed;

	int SaveViewHistory;
	int ViewHistoryCount;

	FARString strExternalEditor;
	EditorOptions EdOpt;
	NotificationsOptions NotifOpt;
	FARString strExternalViewer;
	ViewerOptions ViOpt;


	FARString strWordDiv; // $ 03.08.2000 SVS Разграничитель слов из реестра
	FARString strQuotedSymbols;
	DWORD QuotedName;
	int AutoSaveSetup;
	int SetupArgv; // количество каталогов в ком.строке ФАРа
	int ChangeDriveMode;
	int ChangeDriveDisconnetMode;
	FARString ChangeDriveExceptions;
	FARString ChangeDriveColumn2, ChangeDriveColumn3;

	int SaveHistory;
	int HistoryCount;
	int SaveFoldersHistory;
	int SavePluginFoldersHistory;
	int FoldersHistoryCount;
	int DialogsHistoryCount;

	FindFileOptions FindOpt;

	int LeftHeightDecrement;
	int RightHeightDecrement;
	int WidthDecrement;

	int ShowColumnTitles;
	int ShowPanelStatus;
	int ShowPanelTotals;
	int ShowPanelFree;
	int ShowPanelScrollbar;
	int ShowMenuScrollbar; // $ 29.06.2000 SVS Добавлен атрибут показа Scroll Bar в меню.
	int ShowScreensNumber;
	int ShowSortMode;
	int ShowMenuBar;
	int FormatNumberSeparators;
	int CleanAscii;
	int NoGraphics;
	int NoBoxes;
	int ConsolePaintSharp, ExclusiveCtrlLeft, ExclusiveCtrlRight, ExclusiveAltLeft, ExclusiveAltRight, ExclusiveWinLeft, ExclusiveWinRight;

	Confirmation Confirm;
	PluginConfirmation PluginConfirm;

	DizOptions Diz;

	int ShellRightLeftArrowsRule;
	PanelOptions LeftPanel;
	PanelOptions RightPanel;

	AutoCompleteOptions AutoComplete;

	DWORD  AutoUpdateLimit; // выше этого количество автоматически не обновлять панели.
	int AutoUpdateRemoteDrive;

	FARString strLanguage;
	int SmallIcon;
	FARString strRegRoot;
	int PanelRightClickRule; // задает поведение правой клавиши мыши
	int PanelCtrlAltShiftRule; // задает поведение Ctrl-Alt-Shift для панелей.
	// Panel/CtrlFRule в реестре - задает поведение Ctrl-F. Если = 0, то штампуется файл как есть, иначе - с учетом отображения на панели
	int PanelCtrlFRule;
	/*
	  битовые флаги, задают поведение Ctrl-Alt-Shift
	   бит установлен - функция включена:
	   0 - Panel
	   1 - Edit
	   2 - View
	   3 - Help
	   4 - Dialog
	*/
	int AllCtrlAltShiftRule;

	int CASRule; // 18.12.2003 - Пробуем различать левый и правый CAS (попытка #1).
	/*
	  задает поведение Esc для командной строки:
	    =1 - Не изменять положение в History, если после Ctrl-E/Ctrl/-X
	         нажали ESC (поведение - аля VC).
	    =0 - поведение как и было - изменять положение в History
	*/
	int CmdHistoryRule;

	DWORD ExcludeCmdHistory;
	int MaxPositionCache; // количество позиций в кэше сохранения
	int SetAttrFolderRules; // Правило на счет установки атрибутов на каталоги
	/*
	 + Opt.ShiftsKeyRules - Правило на счет выбора механизма трансляции
	   Alt-Буква для нелатинских буковок и символов "`-=[]\;',./" с
	   модификаторами Alt-, Ctrl-, Alt-Shift-, Ctrl-Shift-, Ctrl-Alt-
	*/
	int ShiftsKeyRules;
	int CursorSize[4];   // Размер курсора ФАРа

	CodeXLAT XLat;

	int ConsoleDetachKey; // Комбинация клавиш для детача Far'овской консоли от длительного неинтерактивного процесса в ней запущенного.

	int UsePrintManager;

	FARString strHelpLanguage;
	int FullScreenHelp;
	int HelpTabSize;

	int HelpURLRules; // =0 отключить возможность запуска URL-приложений

	// запоминать логические диски и не опрашивать каждый раз. Для предотвращения "просыпания" "зеленых" винтов.
	int RememberLogicalDrives;
	/*
	  будет влиять на:
	      добавление файлов в историю с разным регистром
	      добавление LastPositions в редакторе и вьюере
	*/
	int MsWheelDelta; // задает смещение для прокрутки
	int MsWheelDeltaView;
	int MsWheelDeltaEdit;
	int MsWheelDeltaHelp;
	// горизонтальная прокрутка
	int MsHWheelDelta;
	int MsHWheelDeltaView;
	int MsHWheelDeltaEdit;

	/* $ 28.04.2001 VVM
	  + Opt.SubstNameRule битовая маска:
	    0 - если установлен, то опрашивать сменные диски при GetSubstName()
	    1 - если установлен, то опрашивать все остальные при GetSubstName() */
	int SubstNameRule;

	int PgUpChangeDisk;
	int ShowCheckingFile;

	DWORD LCIDSort;
	int RestoreCPAfterExecute;
	int ExecuteShowErrorMessage;
	int ExecuteUseAppPath;
	int ExecuteFullTitle;
	int ExecuteSilentExternal;
	FARString strExecuteBatchType;

	DWORD PluginMaxReadData;
	int UseNumPad;
	int ScanJunction;
	int OnlyFilesSize;

	DWORD ShowTimeoutDelFiles; // таймаут в процессе удаления (в ms)
	DWORD ShowTimeoutDACLFiles;
	int DelThreadPriority; // приоритет процесса удаления, по умолчанию = THREAD_PRIORITY_NORMAL

	//int CPAJHefuayor; // производное от "Close Plugin And Jump:
	// Highly experimental feature, use at your own risk"

	LoadPluginsOptions LoadPlug;

	DialogsOptions Dialogs;
	VMenuOptions VMenu;
	CommandLineOptions CmdLine;
	PoliciesOptions Policies;
	NowellOptions Nowell;
	ScreenSizes ScrSize;
	MacroOptions Macro;

	int FindCodePage;

	TreeOptions Tree;
	InfoPanelOptions InfoPanel;

	DWORD CPMenuMode;

	bool IsUserAdmin;
	FARString strWindowTitle;

	BOOL WindowMode;
};

extern Options Opt;

void SystemSettings();
void PanelSettings();
void InputSettings();
void InterfaceSettings();
void DialogSettings();
void VMenuSettings();
void CmdlineSettings();
void SetConfirmations();
void PluginsManagerSettings();
void SetDizConfig();
void ViewerConfig(ViewerOptions &ViOpt,bool Local=false);
void EditorConfig(EditorOptions &EdOpt,bool Local=false);
void NotificationsConfig(NotificationsOptions &NotifOpt);
void ReadConfig();
void ApplyConfig();
void AssertConfigLoaded();
void SaveConfig(int Ask);
void SetFolderInfoFiles();
void InfoPanelSettings();
void AutoCompleteSettings();
void LanguageSettings();