LeechCraft  0.6.70-15082-g543737046d
Modular cross-platform feature rich live environment.
itemsfinder.h
Go to the documentation of this file.
1 /**********************************************************************
2  * LeechCraft - modular cross-platform feature rich internet client.
3  * Copyright (C) 2006-2014 Georg Rudoy
4  *
5  * Distributed under the Boost Software License, Version 1.0.
6  * (See accompanying file LICENSE or copy at https://www.boost.org/LICENSE_1_0.txt)
7  **********************************************************************/
8 
9 #pragma once
10 
11 #include <memory>
12 #include <QObject>
13 #include <QHash>
15 #include "xdgconfig.h"
16 
17 namespace LC::Util::XDG
18 {
19  class UTIL_XDG_API Item;
20  using Item_ptr = std::shared_ptr<Item>;
21 
22  using Cat2Items_t = QHash<QString, QList<Item_ptr>>;
23 
24  enum class Type;
25 
40  class UTIL_XDG_API ItemsFinder : public QObject
41  {
42  Q_OBJECT
43 
44  ICoreProxy_ptr Proxy_;
46 
47  bool IsReady_ = false;
48  bool IsScanning_ = false;
49 
50  const QList<Type> Types_;
51  public:
66  ItemsFinder (const ICoreProxy_ptr&, const QList<Type>& types, QObject *parent = nullptr);
67 
77  bool IsReady () const;
78 
90  Cat2Items_t GetItems () const;
91 
99  Item_ptr FindItem (const QString& permanentID) const;
100  protected:
101  void Update ();
102  signals:
105  void itemsListChanged ();
106  };
107 }
LC::Util::XDG::Item_ptr
std::shared_ptr< Item > Item_ptr
Definition: item.h:30
QList< Type >
icoreproxy.h
Items_
QMultiMap< QDateTime, QString > Items_
Definition: networkdiskcachegc.cpp:49
xdgconfig.h
LC::Util::XDG::Type
Type
Describes the various types of XDG .desktop files.
Definition: itemtypes.h:23
LC::Util::XDG
Definition: desktopparser.cpp:15
ICoreProxy_ptr
std::shared_ptr< ICoreProxy > ICoreProxy_ptr
Definition: icoreproxy.h:181
LC::Util::XDG::ItemsFinder
class UTIL_XDG_API ItemsFinder
Definition: xdgfwd.h:25
LC::Util::XDG::ItemsFinder
Finds and parses XDG .desktop files.
Definition: itemsfinder.h:46
LC::Util::XDG::Cat2Items_t
QHash< QString, QList< Item_ptr > > Cat2Items_t
Definition: itemsfinder.h:28
LC::Util::XDG::Item
class UTIL_XDG_API Item
Definition: itemsfinder.h:25
UTIL_XDG_API
#define UTIL_XDG_API
Definition: xdgconfig.h:16