Albert
Loading...
Searching...
No Matches
standarditem.h
Go to the documentation of this file.
1// SPDX-FileCopyrightText: 2024-2025 Manuel Schneider
2// SPDX-License-Identifier: MIT
3
4#pragma once
5#include <albert/item.h>
6#include <vector>
7
8namespace albert::util
9{
10
12class ALBERT_EXPORT StandardItem : public Item
13{
14public:
15
17 template<typename T1 = QString,
18 typename T2 = QString,
19 typename T3 = QString,
20 typename T4 = QStringList,
21 typename T5 = std::vector<Action>,
22 typename T6 = QString>
23 requires(std::same_as<std::remove_cvref_t<T1>, QString>
24 && std::same_as<std::remove_cvref_t<T2>, QString>
25 && std::same_as<std::remove_cvref_t<T3>, QString>
26 && std::same_as<std::remove_cvref_t<T4>, QStringList>
27 && std::same_as<std::remove_cvref_t<T5>, std::vector<Action>>
28 && std::same_as<std::remove_cvref_t<T6>, QString>)
29 StandardItem(T1 &&id,
30 T2 &&text,
31 T3 &&subtext,
32 T4 &&icon_urls,
33 T5 &&actions = std::vector<Action>{},
34 T6 &&input_action_text = QString{}) noexcept :
35 id_(std::forward<T1>(id)),
36 text_(std::forward<T2>(text)),
37 subtext_(std::forward<T3>(subtext)),
38 icon_urls_(std::forward<T4>(icon_urls)),
39 actions_(std::forward<T5>(actions)),
40 input_action_text_(std::forward<T6>(input_action_text))
41 {}
42
47 template<typename T1 = QString,
48 typename T2 = QString,
49 typename T3 = QString,
50 typename T4 = QStringList,
51 typename T5 = std::vector<Action>,
52 typename T6 = QString>
53 requires(std::same_as<std::decay_t<T1>, QString>
54 && std::same_as<std::decay_t<T2>, QString>
55 && std::same_as<std::decay_t<T3>, QString>
56 && std::same_as<std::decay_t<T4>, QStringList>
57 && std::same_as<std::decay_t<T5>, std::vector<Action>>
58 && std::same_as<std::decay_t<T6>, QString>)
59 static std::shared_ptr<StandardItem> make(T1 &&id,
60 T2 &&text,
61 T3 &&subtext,
62 T4 &&icon_urls,
63 T5 &&actions = std::vector<Action>{},
64 T6 &&input_action_text = QString{}) noexcept
65 {
66 return std::make_shared<StandardItem>(std::forward<T1>(id),
67 std::forward<T2>(text),
68 std::forward<T3>(subtext),
69 std::forward<T4>(icon_urls),
70 std::forward<T5>(actions),
71 std::forward<T6>(input_action_text));
72 }
73
74
75 StandardItem(const StandardItem &) = delete;
77
79 StandardItem(StandardItem &&other) noexcept = default;
80
82 StandardItem &operator=(StandardItem &&other) noexcept = default;
83
85 void setId(QString id);
86
88 void setText(QString text);
89
91 void setSubtext(QString text);
92
95
97 void setActions(std::vector<Action> actions);
98
100 void setInputActionText(QString text);
101
102 QString id() const override;
103 QString text() const override;
104 QString subtext() const override;
105 QString inputActionText() const override;
106 QStringList iconUrls() const override;
107 std::vector<Action> actions() const override;
108
109protected:
110 QString id_;
111 QString text_;
112 QString subtext_;
114 std::vector<Action> actions_;
116};
117
118}
Result items displayed in the query results list.
Definition item.h:54
General purpose Item implementation.
Definition standarditem.h:13
void setActions(std::vector< Action > actions)
Sets the item actions to actions.
QString subtext() const override
Returns the item subtext.
QString id() const override
Returns the item identifier.
void setId(QString id)
Sets the item identifier to id.
QString text() const override
Returns the item text.
std::vector< Action > actions_
Definition standarditem.h:114
static std::shared_ptr< StandardItem > make(T1 &&id, T2 &&text, T3 &&subtext, T4 &&icon_urls, T5 &&actions=std::vector< Action >{}, T6 &&input_action_text=QString{}) noexcept
Constructs a shared_ptr holding a StandardItem with the contents initialized with the data passed.
Definition standarditem.h:59
StandardItem & operator=(const StandardItem &)=delete
QString subtext_
Definition standarditem.h:112
QStringList icon_urls_
Definition standarditem.h:113
StandardItem(StandardItem &&other) noexcept=default
Constructs a StandardItem with the contents of other using move semantics.
QString text_
Definition standarditem.h:111
std::vector< Action > actions() const override
Returns the item actions.
QStringList iconUrls() const override
Returns the items icon urls.
QString id_
Definition standarditem.h:110
QString inputActionText() const override
Returns the input action text.
void setIconUrls(QStringList urls)
Sets the item icon urls to urls.
void setText(QString text)
Sets the item text to text.
void setInputActionText(QString text)
Sets the item input action text to text.
void setSubtext(QString text)
Sets the item subtext to text.
StandardItem & operator=(StandardItem &&other) noexcept=default
Replaces the contents with those of other using move semantics.
StandardItem(const StandardItem &)=delete
QString input_action_text_
Definition standarditem.h:115
StandardItem(T1 &&id, T2 &&text, T3 &&subtext, T4 &&icon_urls, T5 &&actions=std::vector< Action >{}, T6 &&input_action_text=QString{}) noexcept
Constructs a StandardItem with the contents initialized with the data passed.
Definition standarditem.h:29
Albert utility namespace.
Definition albert.h:14
QList< QString > QStringList
Definition systemutil.h:11