Skip to content

Commit 90dad15

Browse files
committed
Add option to filter out folders in file view (#87)
1 parent 1bcc46d commit 90dad15

File tree

6 files changed

+22
-9
lines changed

6 files changed

+22
-9
lines changed

src/Explorer/Explorer.cpp

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@ constexpr WCHAR FontHeight[] = L"FontHeight";
8282
constexpr WCHAR FontWeight[] = L"FontWeight";
8383
constexpr WCHAR FontItalic[] = L"FontItalic";
8484
constexpr WCHAR FontFaceName[] = L"FontFaceName";
85+
constexpr WCHAR HideFolders[] = L"HideFolders";
8586

8687

8788
/* global values */
@@ -418,6 +419,7 @@ void loadSettings()
418419
exProp.bAutoUpdate = ::GetPrivateProfileInt(Explorer, AutoUpdate, TRUE, iniFilePath);
419420
exProp.bAutoNavigate = ::GetPrivateProfileInt(Explorer, AutoNavigate, FALSE, iniFilePath);
420421
exProp.useFullTree = ::GetPrivateProfileInt(Explorer, UseFullTree, FALSE, iniFilePath);
422+
exProp.bHideFoldersInFileList = ::GetPrivateProfileInt(Explorer, HideFolders, FALSE, iniFilePath);
421423
exProp.fmtSize = (SizeFmt)::GetPrivateProfileInt(Explorer, SizeFormat, SizeFmt::SFMT_KBYTE, iniFilePath);
422424
exProp.fmtDate = (DateFmt)::GetPrivateProfileInt(Explorer, DateFormat, DFMT_ENG, iniFilePath);
423425
exProp.uTimeout = ::GetPrivateProfileInt(Explorer, TimeOut, 1000, iniFilePath);

src/Explorer/Explorer.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,6 +127,7 @@ struct ExProp{
127127
BOOL bAddExtToName = false;
128128
BOOL bAutoUpdate = false;
129129
BOOL bAutoNavigate = false;
130+
bool bHideFoldersInFileList{ true };
130131
SizeFmt fmtSize = SizeFmt::SFMT_BYTES;
131132
DateFmt fmtDate = DateFmt::DFMT_ENG;
132133
std::vector<std::wstring> vStrFilterHistory {};

src/Explorer/ExplorerDialog.rc

Lines changed: 9 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -96,14 +96,15 @@ CAPTION "Explorer Options"
9696
FONT 8, "MS Shell Dlg", 0, 0, 0x0
9797
BEGIN
9898
GROUPBOX "File List",IDC_STATIC_FILELIST,6,6,137,120
99-
CONTROL "&Folder With Braces",IDC_CHECK_BRACES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,19,126,10
99+
CONTROL "&Folder With Braces",IDC_CHECK_BRACES,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,18,126,10
100100
CONTROL "Separate &Extensions",IDC_CHECK_SEPEXT,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,31,126,10
101-
GROUPBOX "",IDC_STATIC_LONG,8,47,133,54
102-
CONTROL "&View 'Long' List",IDC_CHECK_LONG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,48,63,10
103-
LTEXT "Size:",IDC_STATIC_SIZE,13,64,32,12,SS_CENTERIMAGE
104-
LTEXT "Date:",IDC_STATIC_DATE,13,80,32,12,SS_CENTERIMAGE
105-
COMBOBOX IDC_COMBO_SIZE_FORMAT,47,64,90,59,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
106-
COMBOBOX IDC_COMBO_DATE_FORMAT,47,80,90,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
101+
CONTROL "Hide Folders",IDC_CHECK_HIDE_FOLDERS,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,14,44,126,10
102+
GROUPBOX "",IDC_STATIC_LONG,7,68,133,54
103+
CONTROL "&View 'Long' List",IDC_CHECK_LONG,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,15,68,63,10
104+
LTEXT "Size:",IDC_STATIC_SIZE,13,86,32,12,SS_CENTERIMAGE
105+
LTEXT "Date:",IDC_STATIC_DATE,13,102,32,12,SS_CENTERIMAGE
106+
COMBOBOX IDC_COMBO_SIZE_FORMAT,47,86,90,59,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
107+
COMBOBOX IDC_COMBO_DATE_FORMAT,47,102,90,51,CBS_DROPDOWNLIST | WS_VSCROLL | WS_TABSTOP
107108
GROUPBOX "General Options",IDC_STATIC_GENOPT,144,6,140,120
108109
CONTROL "Automatic &Update on Focus",IDC_CHECK_AUTO,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,18,124,8
109110
CONTROL "Show &Hidden Files",IDC_CHECK_HIDDEN,"Button",BS_AUTOCHECKBOX | WS_TABSTOP,156,30,124,8
@@ -210,6 +211,7 @@ BEGIN
210211
BEGIN
211212
LEFTMARGIN, 7
212213
RIGHTMARGIN, 340
214+
VERTGUIDE, 14
213215
TOPMARGIN, 7
214216
BOTTOMMARGIN, 171
215217
END

src/Explorer/ExplorerResource.h

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,8 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
134134
#define IDC_EDIT_HISTORYSIZE (IDD_OPTION_DLG + 26)
135135
#define IDC_STATIC_HISTORY (IDD_OPTION_DLG + 27)
136136
#define IDC_CHECK_USEFULLTREE (IDD_OPTION_DLG + 28)
137-
137+
#define IDC_CHECK_HIDE_FOLDERS (IDD_OPTION_DLG + 29)
138+
138139
#define IDD_HELP_DLG 30700
139140
#define IDC_EMAIL_LINK (IDD_HELP_DLG + 1)
140141
#define IDC_NPP_PLUGINS_URL (IDD_HELP_DLG + 2)

src/Explorer/FileList.cpp

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -695,6 +695,10 @@ void FileList::viewPath(const std::wstring& currentDir, BOOL redraw)
695695
/* get current filters */
696696
FileListData tempData;
697697
do {
698+
if (_pExProp->bHideFoldersInFileList && (Find.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)) {
699+
continue; // Skip directories if hideFoldersInContentView is true
700+
}
701+
698702
if (IsValidFolder(Find) == TRUE) {
699703
/* get data in order of list elements */
700704
tempData.isParent = FALSE;
@@ -783,7 +787,7 @@ void FileList::viewPath(const std::wstring& currentDir, BOOL redraw)
783787
_vFileList.clear();
784788

785789
/* set temporal list as global */
786-
for (const auto &folder : vFoldersTemp) {
790+
for (const auto& folder : vFoldersTemp) {
787791
_vFileList.push_back(folder);
788792
}
789793
for (const auto &file : vFilesTemp) {

src/Explorer/OptionDialog.cpp

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -244,6 +244,8 @@ void OptionDlg::SetParams()
244244
::SendDlgItemMessage(_hSelf, IDC_CHECK_USEICON, BM_SETCHECK, _pProp->bUseSystemIcons? BST_CHECKED : BST_UNCHECKED, 0);
245245
::SendDlgItemMessage(_hSelf, IDC_CHECK_AUTONAV, BM_SETCHECK, _pProp->bAutoNavigate ? BST_CHECKED : BST_UNCHECKED, 0);
246246
::SendDlgItemMessage(_hSelf, IDC_CHECK_USEFULLTREE, BM_SETCHECK, _pProp->useFullTree ? BST_CHECKED : BST_UNCHECKED, 0);
247+
::SendDlgItemMessage(_hSelf, IDC_CHECK_HIDE_FOLDERS, BM_SETCHECK, _pProp->bHideFoldersInFileList ? BST_CHECKED : BST_UNCHECKED, 0);
248+
247249

248250
::SetDlgItemText(_hSelf, IDC_EDIT_EXECNAME, _pProp->nppExecProp.szAppName);
249251
::SetDlgItemText(_hSelf, IDC_EDIT_SCRIPTPATH, _pProp->nppExecProp.szScriptPath);
@@ -270,6 +272,7 @@ BOOL OptionDlg::GetParams()
270272
_pProp->bAutoNavigate = (::SendDlgItemMessage(_hSelf, IDC_CHECK_AUTONAV, BM_GETCHECK, 0, 0) == BST_CHECKED) ? TRUE : FALSE;
271273
_pProp->bUseSystemIcons = (::SendDlgItemMessage(_hSelf, IDC_CHECK_USEICON, BM_GETCHECK, 0, 0) == BST_CHECKED) ? TRUE : FALSE;
272274
_pProp->useFullTree = (::SendDlgItemMessage(_hSelf, IDC_CHECK_USEFULLTREE, BM_GETCHECK, 0, 0) == BST_CHECKED) ? TRUE : FALSE;
275+
_pProp->bHideFoldersInFileList = (::SendDlgItemMessage(_hSelf, IDC_CHECK_HIDE_FOLDERS, BM_GETCHECK, 0, 0) == BST_CHECKED) ? TRUE : FALSE;
273276

274277
WCHAR TEMP[MAX_PATH];
275278
::GetDlgItemText(_hSelf, IDC_EDIT_TIMEOUT, TEMP, 6);

0 commit comments

Comments
 (0)