8#include "common/specialvalues.h"
17#define IMPLEMENT_TERM_CONSTRUCTORS(TYPE) \
18 Terms::TYPE::TYPE(QStringList values) \
19 : values(std::move(values)) \
23 Terms::TYPE::TYPE(QString value) \
24 : values(QStringList() << std::move(value)) \
28#define IMPLEMENT_SPECIAL_TERM_VALUE(TYPE, VALUE_NAME, VALUE) \
29 Terms::TYPE Terms::TYPE::VALUE_NAME() \
31 return Terms::TYPE(VALUE); \
34IMPLEMENT_TERM_CONSTRUCTORS(
Type)
35IMPLEMENT_SPECIAL_TERM_VALUE(
Type, any, ANY_TYPE_TAG)
36IMPLEMENT_SPECIAL_TERM_VALUE(
Type, files, FILES_TYPE_TAG)
37IMPLEMENT_SPECIAL_TERM_VALUE(
Type, directories, DIRECTORIES_TYPE_TAG)
39IMPLEMENT_TERM_CONSTRUCTORS(
Agent)
40IMPLEMENT_SPECIAL_TERM_VALUE(
Agent, any, ANY_AGENT_TAG)
41IMPLEMENT_SPECIAL_TERM_VALUE(
Agent, global, GLOBAL_AGENT_TAG)
42IMPLEMENT_SPECIAL_TERM_VALUE(
Agent, current, CURRENT_AGENT_TAG)
45IMPLEMENT_SPECIAL_TERM_VALUE(
Activity, any, ANY_ACTIVITY_TAG)
46IMPLEMENT_SPECIAL_TERM_VALUE(
Activity, global, GLOBAL_ACTIVITY_TAG)
47IMPLEMENT_SPECIAL_TERM_VALUE(
Activity, current, CURRENT_ACTIVITY_TAG)
49IMPLEMENT_TERM_CONSTRUCTORS(
Url)
50IMPLEMENT_SPECIAL_TERM_VALUE(
Url, localFile, QStringLiteral(
"/*"))
51IMPLEMENT_SPECIAL_TERM_VALUE(
Url,
53 QStringList() << QStringLiteral(
"/*") << QStringLiteral(
"smb:*") << QStringLiteral(
"fish:*") << QStringLiteral(
"sftp:*")
54 << QStringLiteral(
"ftp:*"))
56#undef IMPLEMENT_TERM_CONSTRUCTORS
57#undef IMPLEMENT_SPECIAL_TERM_VALUE
59Terms::Limit::Limit(
int value)
64Terms::Offset::Offset(
int value)
69Terms::Date::Date(
QDate value)
80Terms::Date Terms::Date::today()
85Terms::Date Terms::Date::yesterday()
88 return Date(date.addDays(-1));
91Terms::Date Terms::Date::currentWeek()
94 auto end =
start.addDays(-7);
95 return Date(
start, end);
98Terms::Date Terms::Date::previousWeek()
101 auto end =
start.addDays(-7);
102 return Date(
start, end);
105Terms::Date Terms::Date::fromString(
QString string)
107 auto splitted =
string.split(QStringLiteral(
","));
108 if (splitted.count() == 2) {
112 return Date(
start, end);
121 return Url(prefix + QStringLiteral(
"*"));
126 return Url(QStringLiteral(
"*") + infix + QStringLiteral(
"*"));
132namespace KAStats = KActivities::Stats;
134#define QDEBUG_TERM_OUT(TYPE, OUT) \
135 QDebug operator<<(QDebug dbg, const KAStats::Terms::TYPE &_) \
137 using namespace KAStats::Terms; \
138 dbg.nospace() << #TYPE << ": " << (OUT); \
142QDEBUG_TERM_OUT(Order,
143 _ == HighScoredFirst ?
"HighScore"
144 : _ == RecentlyUsedFirst ?
"RecentlyUsed"
145 : _ == RecentlyCreatedFirst ?
"RecentlyCreated"
148QDEBUG_TERM_OUT(Select, _ == LinkedResources ?
"LinkedResources" : _ == UsedResources ?
"UsedResources" :
"AllResources")
150QDEBUG_TERM_OUT(Type, _.values)
151QDEBUG_TERM_OUT(
Agent, _.values)
152QDEBUG_TERM_OUT(Activity, _.values)
153QDEBUG_TERM_OUT(Url, _.values)
155QDEBUG_TERM_OUT(Limit, _.value)
156QDEBUG_TERM_OUT(Offset, _.value)
157QDEBUG_TERM_OUT(Date, _.end.isNull() ? _.
start.toString(
Qt::ISODate) : _.
start.toString(
Qt::ISODate) + QStringLiteral(
",") + _.end.toString(
Qt::ISODate))
159#undef QDEBUG_TERM_OUT
Q_SCRIPTABLE QString start(QString train="")
KIOCORE_EXPORT CopyJob * move(const QList< QUrl > &src, const QUrl &dest, JobFlags flags=DefaultFlags)
QDate addDays(qint64 ndays) const const
QDate fromString(QStringView string, QStringView format, QCalendar cal)
Term to filter the resources according the activity in which they were accessed.
Term to filter the resources according the agent (application) which accessed it.
Term to filter the resources according to their types.
static Url startsWith(const QString &prefix)
Show only resources that start with the specified prefix.
static Url contains(const QString &infix)
Show resources that contain the specified infix.