LeechCraft 0.6.70-17609-g3dde4097dd
Modular cross-platform feature rich live environment.
Loading...
Searching...
No Matches
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
17namespace 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_;
45 Cat2Items_t Items_;
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:
106 };
107}
Describes a single XDG .desktop entry.
Definition item.h:36
bool IsReady() const
Checks whether this items finder is ready.
ItemsFinder(const ICoreProxy_ptr &, const QList< Type > &types, QObject *parent=nullptr)
Constructs the items finder for the given types.
Item_ptr FindItem(const QString &permanentID) const
Finds an XDG item for the given permanent ID.
void itemsListChanged()
Notifies when the list of items changes in any way.
Cat2Items_t GetItems() const
Returns the categorized list of XDG items.
std::shared_ptr< ICoreProxy > ICoreProxy_ptr
Definition icoreproxy.h:181
QHash< QString, QList< Item_ptr > > Cat2Items_t
Definition itemsfinder.h:22
std::shared_ptr< Item > Item_ptr
Definition item.h:24
Type
Describes the various types of XDG .desktop files.
Definition itemtypes.h:20
#define UTIL_XDG_API
Definition xdgconfig.h:16