2 * Copyright (C) 2005-2018 Team Kodi
3 * This file is part of Kodi - https://kodi.tv
5 * SPDX-License-Identifier: GPL-2.0-or-later
6 * See LICENSES/README.md for more information.
9 #include "GUIViewStatePictures.h"
12 #include "FileItemList.h"
13 #include "ServiceBroker.h"
14 #include "filesystem/Directory.h"
15 #include "guilib/LocalizeStrings.h"
16 #include "guilib/WindowIDs.h"
17 #include "settings/MediaSourceSettings.h"
18 #include "settings/Settings.h"
19 #include "settings/SettingsComponent.h"
20 #include "utils/FileExtensionProvider.h"
21 #include "view/ViewState.h"
22 #include "view/ViewStateSettings.h"
24 using namespace XFILE
;
25 using namespace ADDON
;
27 CGUIViewStateWindowPictures::CGUIViewStateWindowPictures(const CFileItemList
& items
) : CGUIViewState(items
)
29 if (items
.IsVirtualDirectoryRoot())
31 AddSortMethod(SortByLabel
, 551, LABEL_MASKS());
32 AddSortMethod(SortByDriveType
, 564, LABEL_MASKS());
33 SetSortMethod(SortByLabel
);
35 SetViewAsControl(DEFAULT_VIEW_LIST
);
37 SetSortOrder(SortOrderAscending
);
41 AddSortMethod(SortByLabel
, 551, LABEL_MASKS("%L", "%I", "%L", "")); // Filename, Size | Foldername, empty
42 AddSortMethod(SortBySize
, 553, LABEL_MASKS("%L", "%I", "%L", "%I")); // Filename, Size | Foldername, Size
43 AddSortMethod(SortByDate
, 552, LABEL_MASKS("%L", "%J", "%L", "%J")); // Filename, Date | Foldername, Date
44 AddSortMethod(SortByDateTaken
, 577, LABEL_MASKS("%L", "%t", "%L", "%J")); // Filename, DateTaken | Foldername, Date
45 AddSortMethod(SortByFile
, 561, LABEL_MASKS("%L", "%I", "%L", "")); // Filename, Size | FolderName, empty
47 const CViewState
*viewState
= CViewStateSettings::GetInstance().Get("pictures");
48 SetSortMethod(viewState
->m_sortDescription
);
49 SetViewAsControl(viewState
->m_viewMode
);
50 SetSortOrder(viewState
->m_sortDescription
.sortOrder
);
52 LoadViewState(items
.GetPath(), WINDOW_PICTURES
);
55 void CGUIViewStateWindowPictures::SaveViewState()
57 SaveViewToDb(m_items
.GetPath(), WINDOW_PICTURES
, CViewStateSettings::GetInstance().Get("pictures"));
60 std::string
CGUIViewStateWindowPictures::GetLockType()
65 std::string
CGUIViewStateWindowPictures::GetExtensions()
67 std::string extensions
= CServiceBroker::GetFileExtensionProvider().GetPictureExtensions();
68 if (CServiceBroker::GetSettingsComponent()->GetSettings()->GetBool(CSettings::SETTING_PICTURES_SHOWVIDEOS
))
69 extensions
+= "|" + CServiceBroker::GetFileExtensionProvider().GetVideoExtensions();
74 VECSOURCES
& CGUIViewStateWindowPictures::GetSources()
76 VECSOURCES
*pictureSources
= CMediaSourceSettings::GetInstance().GetSources("pictures");
78 // Guard against source type not existing
79 if (pictureSources
== nullptr)
81 static VECSOURCES empty
;
85 return *pictureSources
;