xbmc
GUIWindowVideoBase.h
1 /*
2  * Copyright (C) 2005-2018 Team Kodi
3  * This file is part of Kodi - https://kodi.tv
4  *
5  * SPDX-License-Identifier: GPL-2.0-or-later
6  * See LICENSES/README.md for more information.
7  */
8 
9 #pragma once
10 
11 #include "playlists/PlayListTypes.h"
12 #include "video/VideoDatabase.h"
13 #include "video/VideoThumbLoader.h"
14 #include "video/guilib/VideoSelectAction.h"
15 #include "windows/GUIMediaWindow.h"
16 
17 namespace
18 {
19 class CVideoSelectActionProcessor;
20 class CVideoPlayActionProcessor;
21 } // unnamed namespace
22 
24 {
25  friend class ::CVideoSelectActionProcessor;
26  friend class ::CVideoPlayActionProcessor;
27 
28 public:
29  CGUIWindowVideoBase(int id, const std::string &xmlFile);
30  ~CGUIWindowVideoBase(void) override;
31  bool OnMessage(CGUIMessage& message) override;
32  bool OnAction(const CAction &action) override;
33 
40  bool OnItemInfo(const CFileItem& fileItem);
41 
50  static void AppendAndClearSearchItems(CFileItemList &searchItems, const std::string &prependLabel, CFileItemList &results);
51 
57  static void OnAssignContent(const std::string &path);
58 
65  static void LoadVideoInfo(CFileItemList& items,
66  CVideoDatabase& database,
67  bool allowReplaceLabels = true);
68 
69 protected:
70  void OnScan(const std::string& strPath, bool scanAll = false);
71  bool Update(const std::string &strDirectory, bool updateFilterPath = true) override;
72  bool GetDirectory(const std::string &strDirectory, CFileItemList &items) override;
73  void OnItemLoaded(CFileItem* pItem) override {};
74  void GetGroupedItems(CFileItemList &items) override;
75 
76  bool CheckFilterAdvanced(CFileItemList &items) const override;
77  bool CanContainFilter(const std::string &strDirectory) const override;
78 
79  void GetContextButtons(int itemNumber, CContextButtons &buttons) override;
80  bool OnContextButton(int itemNumber, CONTEXT_BUTTON button) override;
81  virtual void OnQueueItem(int iItem, bool first = false);
82  virtual void OnDeleteItem(const CFileItemPtr& pItem);
83  void OnDeleteItem(int iItem) override;
84  virtual void DoSearch(const std::string& strSearch, CFileItemList& items) {}
85  std::string GetStartFolder(const std::string &dir) override;
86 
87  bool OnSelect(int iItem) override;
92  bool OnItemInfo(int item);
98  bool OnFileAction(int item, VIDEO::GUILIB::SelectAction action, const std::string& player);
99 
100  void OnRestartItem(int iItem, const std::string &player = "");
101  bool OnPlayOrResumeItem(int iItem, const std::string& player = "");
102  void PlayItem(int iItem, const std::string &player = "");
103  bool OnPlayMedia(int iItem, const std::string &player = "") override;
104  bool OnPlayAndQueueMedia(const CFileItemPtr& item, const std::string& player = "") override;
105  using CGUIMediaWindow::LoadPlayList;
106  void LoadPlayList(const std::string& strPlayList, PLAYLIST::Id playlistId = PLAYLIST::TYPE_VIDEO);
107 
108  bool ShowInfo(const CFileItemPtr& item, const ADDON::ScraperPtr& content);
109 
110  void OnSearch();
111  void OnSearchItemFound(const CFileItem* pSelItem);
112  int GetScraperForItem(CFileItem *item, ADDON::ScraperPtr &info, VIDEO::SScanSettings& settings);
113 
114  static bool OnUnAssignContent(const std::string &path, int header, int text);
115 
116  static bool StackingAvailable(const CFileItemList &items);
117 
118  bool OnPlayStackPart(int itemIndex, unsigned int partNumber);
119 
120  CGUIDialogProgress* m_dlgProgress;
121  CVideoDatabase m_database;
122 
123  CVideoThumbLoader m_thumbLoader;
124  bool m_stackingAvailable;
125 };
Definition: VideoInfoScanner.h:28
Definition: VideoThumbLoader.h:24
void OnSearch()
Search the current directory for a string got from the virtual keyboard.
Definition: GUIWindowVideoBase.cpp:1230
bool OnPlayMedia(int iItem, const std::string &player="") override
On media play.
Definition: GUIWindowVideoBase.cpp:937
Represents a list of files.
Definition: FileItem.h:721
static void OnAssignContent(const std::string &path)
Prompt the user for assigning content to a path. Based on changes, we then call OnUnassignContent, update or refresh scraper information in the database and optionally start a scan.
Definition: GUIWindowVideoBase.cpp:1414
Definition: BackgroundInfoLoader.h:22
void OnSearchItemFound(const CFileItem *pSelItem)
React on the selected search item.
Definition: GUIWindowVideoBase.cpp:1280
Definition: VideoDatabase.h:395
bool GetDirectory(const std::string &strDirectory, CFileItemList &items) override
Overwrite to fill fileitems from a source.
Definition: GUIWindowVideoBase.cpp:1121
static void LoadVideoInfo(CFileItemList &items, CVideoDatabase &database, bool allowReplaceLabels=true)
Load video information from the database for these items (public static version) Useful for grabbing ...
Definition: GUIWindowVideoBase.cpp:625
class encapsulating information regarding a particular user action to be sent to windows and controls...
Definition: Action.h:22
bool CheckFilterAdvanced(CFileItemList &items) const override
Check if the given list can be advance filtered or not.
Definition: GUIWindowVideoBase.cpp:1211
bool Update(const std::string &strDirectory, bool updateFilterPath=true) override
Retrieves the items from the given path and updates the list.
Definition: GUIWindowVideoBase.cpp:1106
std::string GetStartFolder(const std::string &dir) override
Translate the folder to start in from the given quick path.
Definition: GUIWindowVideoBase.cpp:1363
Definition: settings.py:1
Definition: GUIWindowVideoBase.h:23
Definition: GUIMessage.h:365
bool CanContainFilter(const std::string &strDirectory) const override
Check if the given path can contain a "filter" parameter.
Definition: GUIWindowVideoBase.cpp:1224
bool OnItemInfo(const CFileItem &fileItem)
Gets called to process the "info" action for the given file item Default implementation shows a dialo...
Definition: GUIWindowVideoBase.cpp:206
static void AppendAndClearSearchItems(CFileItemList &searchItems, const std::string &prependLabel, CFileItemList &results)
Append a set of search items to a results list using a specific prepend label Sorts the search items ...
Definition: GUIWindowVideoBase.cpp:1373
Definition: GUIDialogProgress.h:16
bool ShowInfo(const CFileItemPtr &item, const ADDON::ScraperPtr &content)
Definition: GUIWindowVideoBase.cpp:342
Definition: GUIMediaWindow.h:28
bool OnPlayAndQueueMedia(const CFileItemPtr &item, const std::string &player="") override
On play and media queue.
Definition: GUIWindowVideoBase.cpp:982
Definition: GUIDialogContextMenu.h:92
bool OnFileAction(int item, VIDEO::GUILIB::SelectAction action, const std::string &player)
perform a given action on a file
Definition: GUIWindowVideoBase.cpp:602
Represents a file on a share.
Definition: FileItem.h:102