File indexing completed on 2024-05-12 17:22:02
0001 /* 0002 SPDX-FileCopyrightText: 2002 Shie Erlich <erlich@users.sourceforge.net> 0003 SPDX-FileCopyrightText: 2002 Rafi Yanai <yanai@users.sourceforge.net> 0004 SPDX-FileCopyrightText: 2004-2022 Krusader Krew <https://krusader.org> 0005 0006 SPDX-License-Identifier: GPL-2.0-or-later 0007 */ 0008 0009 #include "krselectionmode.h" 0010 #include "../defaults.h" 0011 #include "../krglobal.h" 0012 0013 #include <KConfigCore/KSharedConfig> 0014 0015 static KrSelectionMode *__currentSelectionMode = nullptr; // uninitiated, at first 0016 0017 KonqSelectionMode konqSelectionMode; 0018 OriginalSelectionMode originalSelectionMode; 0019 TCSelectionMode tcSelectionMode; 0020 ErgonomicSelectionMode ergonomicSelectionMode; 0021 UserSelectionMode userSelectionMode; 0022 0023 KrSelectionMode *KrSelectionMode::getSelectionHandlerForMode(const QString &mode) 0024 { 0025 KrSelectionMode *res = nullptr; 0026 bool isNum; 0027 int modenum = mode.toInt(&isNum); 0028 switch (modenum) { 0029 case 0: 0030 res = &originalSelectionMode; 0031 break; 0032 case 1: 0033 res = &konqSelectionMode; 0034 break; 0035 case 2: 0036 res = &tcSelectionMode; 0037 break; 0038 case 3: 0039 // costom mode 0040 break; 0041 case 4: 0042 res = &ergonomicSelectionMode; 0043 break; 0044 default: 0045 break; 0046 } 0047 return res; 0048 } 0049 0050 KrSelectionMode *KrSelectionMode::getSelectionHandler() 0051 { 0052 if (__currentSelectionMode) { // don't check krConfig every time 0053 return __currentSelectionMode; 0054 } else { // nothing yet, set the correct one 0055 KConfigGroup group(krConfig, "Look&Feel"); 0056 QString mode = group.readEntry("Mouse Selection", QString("")); 0057 __currentSelectionMode = getSelectionHandlerForMode(mode); 0058 if (__currentSelectionMode == nullptr) { 0059 __currentSelectionMode = &userSelectionMode; 0060 } 0061 // init and return 0062 __currentSelectionMode->init(); 0063 return __currentSelectionMode; 0064 } 0065 } 0066 0067 void KrSelectionMode::resetSelectionHandler() 0068 { 0069 __currentSelectionMode = nullptr; 0070 } 0071 0072 void UserSelectionMode::init() 0073 { 0074 KConfigGroup group(krConfig, "Custom Selection Mode"); 0075 _useQTSelection = group.readEntry("QT Selection", _QtSelection); 0076 _leftButtonSelects = group.readEntry("Left Selects", _LeftSelects); 0077 _leftButtonPreservesSelection = group.readEntry("Left Preserves", _LeftPreserves); 0078 _shiftCtrlLeftButtonSelects = group.readEntry("ShiftCtrl Left Selects", _ShiftCtrlLeft); 0079 _rightButtonSelects = group.readEntry("Right Selects", _RightSelects); 0080 _rightButtonPreservesSelection = group.readEntry("Right Preserves", _RightPreserves); 0081 _shiftCtrlRightButtonSelects = group.readEntry("ShiftCtrl Right Selects", _ShiftCtrlRight); 0082 _spaceMovesDown = group.readEntry("Space Moves Down", _SpaceMovesDown); 0083 _spaceCalculatesDiskSpace = group.readEntry("Space Calc Space", _SpaceCalcSpace); 0084 _insertMovesDown = group.readEntry("Insert Moves Down", _InsertMovesDown); 0085 _showContextMenu = (group.readEntry("Immediate Context Menu", _ImmediateContextMenu) ? -1 : 500); 0086 _resetSelectionItems = group.readEntry("Reset Selection Items", _ResetSelectionItems); 0087 }