2 * Copyright (C) 2013 Team XBMC
5 * This Program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License as published by
7 * the Free Software Foundation; either version 2, or (at your option)
10 * This Program is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
15 * You should have received a copy of the GNU General Public License
16 * along with XBMC; see the file COPYING. If not, see
17 * <http://www.gnu.org/licenses/>.
24 #include "IListProvider.h"
25 #include "guilib/GUIStaticItem.h"
26 #include "utils/Job.h"
27 #include "threads/CriticalSection.h"
31 class CDirectoryProvider : public IListProvider, public IJobCallback
34 CDirectoryProvider(const TiXmlElement *element, int parentID);
35 virtual ~CDirectoryProvider();
37 virtual bool Update(bool refresh);
38 virtual void Fetch(std::vector<CGUIListItemPtr> &items) const;
40 virtual bool OnClick(const CGUIListItemPtr &item);
41 virtual bool IsUpdating() const;
43 // callback from directory job
44 virtual void OnJobComplete(unsigned int jobID, bool success, CJob *job);
46 unsigned int m_updateTime;
50 CGUIInfoLabel m_target;
51 std::string m_currentUrl;
52 std::string m_currentTarget; ///< \brief node.target property on the list as a whole
53 std::vector<CGUIStaticItemPtr> m_items;
54 CCriticalSection m_section;