LeechCraft  0.6.70-16373-g319c272718
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 {
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 }
QMultiMap< QDateTime, QString > Items_
Type
Describes the various types of XDG .desktop files.
Definition: itemtypes.h:23
Finds and parses XDG .desktop files.
Definition: itemsfinder.h:40
Describes a single XDG .desktop entry.
Definition: item.h:35
std::shared_ptr< ICoreProxy > ICoreProxy_ptr
Definition: icoreproxy.h:181
#define UTIL_XDG_API
Definition: xdgconfig.h:16
std::shared_ptr< Item > Item_ptr
Definition: item.h:24
class UTIL_XDG_API ItemsFinder
Definition: xdgfwd.h:19
QHash< QString, QList< Item_ptr > > Cat2Items_t
Definition: itemsfinder.h:22