diff options
Diffstat (limited to 'sinksh')
-rw-r--r-- | sinksh/sinksh_utils.cpp | 28 | ||||
-rw-r--r-- | sinksh/syntax_modules/sink_clear.cpp | 2 | ||||
-rw-r--r-- | sinksh/syntax_modules/sink_remove.cpp | 2 | ||||
-rw-r--r-- | sinksh/syntax_modules/sink_stat.cpp | 29 | ||||
-rw-r--r-- | sinksh/syntax_modules/sink_sync.cpp | 2 |
5 files changed, 15 insertions, 48 deletions
diff --git a/sinksh/sinksh_utils.cpp b/sinksh/sinksh_utils.cpp index 14b0aab..0e26c5a 100644 --- a/sinksh/sinksh_utils.cpp +++ b/sinksh/sinksh_utils.cpp | |||
@@ -89,28 +89,14 @@ QSharedPointer<QAbstractItemModel> loadModel(const QString &type, Sink::Query qu | |||
89 | return model; | 89 | return model; |
90 | } | 90 | } |
91 | 91 | ||
92 | QStringList resourceIds(State &state) | 92 | QStringList resourceIds() |
93 | { | 93 | { |
94 | QStringList resources; | ||
95 | Sink::Query query; | 94 | Sink::Query query; |
96 | query.liveQuery = false; | 95 | query.liveQuery = false; |
97 | auto model = SinkshUtils::loadModel("resource", query); | 96 | QStringList resources; |
98 | 97 | for (const auto &r : getStore("resource").read(query)) { | |
99 | QObject::connect(model.data(), &QAbstractItemModel::rowsInserted, [model, &resources](const QModelIndex &index, int start, int end) mutable { | 98 | resources << r.identifier(); |
100 | for (int i = start; i <= end; i++) { | 99 | } |
101 | auto object = model->data(model->index(i, 0, index), Sink::Store::DomainObjectBaseRole).value<Sink::ApplicationDomain::ApplicationDomainType::Ptr>(); | ||
102 | resources << object->identifier(); | ||
103 | } | ||
104 | }); | ||
105 | |||
106 | QObject::connect(model.data(), &QAbstractItemModel::dataChanged, [model, state](const QModelIndex &, const QModelIndex &, const QVector<int> &roles) { | ||
107 | if (roles.contains(Sink::Store::ChildrenFetchedRole)) { | ||
108 | state.commandFinished(); | ||
109 | } | ||
110 | }); | ||
111 | |||
112 | state.commandStarted(); | ||
113 | |||
114 | return resources; | 100 | return resources; |
115 | } | 101 | } |
116 | 102 | ||
@@ -121,7 +107,7 @@ QStringList debugareaCompleter(const QStringList &, const QString &fragment, Sta | |||
121 | 107 | ||
122 | QStringList resourceCompleter(const QStringList &, const QString &fragment, State &state) | 108 | QStringList resourceCompleter(const QStringList &, const QString &fragment, State &state) |
123 | { | 109 | { |
124 | return Utils::filteredCompletions(resourceIds(state), fragment); | 110 | return Utils::filteredCompletions(resourceIds(), fragment); |
125 | } | 111 | } |
126 | 112 | ||
127 | QStringList resourceOrTypeCompleter(const QStringList &commands, const QString &fragment, State &state) | 113 | QStringList resourceOrTypeCompleter(const QStringList &commands, const QString &fragment, State &state) |
@@ -131,7 +117,7 @@ QStringList resourceOrTypeCompleter(const QStringList &commands, const QString & | |||
131 | return Utils::filteredCompletions(s_types, fragment); | 117 | return Utils::filteredCompletions(s_types, fragment); |
132 | } | 118 | } |
133 | 119 | ||
134 | return Utils::filteredCompletions(resourceIds(state), fragment); | 120 | return Utils::filteredCompletions(resourceIds(), fragment); |
135 | } | 121 | } |
136 | 122 | ||
137 | QStringList typeCompleter(const QStringList &commands, const QString &fragment, State &state) | 123 | QStringList typeCompleter(const QStringList &commands, const QString &fragment, State &state) |
diff --git a/sinksh/syntax_modules/sink_clear.cpp b/sinksh/syntax_modules/sink_clear.cpp index 72d9a14..1537ecd 100644 --- a/sinksh/syntax_modules/sink_clear.cpp +++ b/sinksh/syntax_modules/sink_clear.cpp | |||
@@ -50,7 +50,7 @@ bool clear(const QStringList &args, State &state) | |||
50 | 50 | ||
51 | Syntax::List syntax() | 51 | Syntax::List syntax() |
52 | { | 52 | { |
53 | Syntax clear("clear", QObject::tr("Clears the local cache of one or more resources (be careful!)"), &SinkClear::clear); | 53 | Syntax clear("clear", QObject::tr("Clears the local cache of one or more resources (be careful!)"), &SinkClear::clear, Syntax::NotInteractive); |
54 | clear.completer = &SinkshUtils::resourceCompleter; | 54 | clear.completer = &SinkshUtils::resourceCompleter; |
55 | 55 | ||
56 | return Syntax::List() << clear; | 56 | return Syntax::List() << clear; |
diff --git a/sinksh/syntax_modules/sink_remove.cpp b/sinksh/syntax_modules/sink_remove.cpp index b374824..d474518 100644 --- a/sinksh/syntax_modules/sink_remove.cpp +++ b/sinksh/syntax_modules/sink_remove.cpp | |||
@@ -98,7 +98,7 @@ bool resource(const QStringList &args, State &state) | |||
98 | Syntax::List syntax() | 98 | Syntax::List syntax() |
99 | { | 99 | { |
100 | Syntax remove("remove", QObject::tr("Remove items in a resource"), &SinkRemove::remove); | 100 | Syntax remove("remove", QObject::tr("Remove items in a resource"), &SinkRemove::remove); |
101 | Syntax resource("resource", QObject::tr("Removes a resource"), &SinkRemove::resource);//, Syntax::EventDriven); | 101 | Syntax resource("resource", QObject::tr("Removes a resource"), &SinkRemove::resource, Syntax::NotInteractive); |
102 | resource.completer = &SinkshUtils::resourceCompleter; | 102 | resource.completer = &SinkshUtils::resourceCompleter; |
103 | remove.children << resource; | 103 | remove.children << resource; |
104 | 104 | ||
diff --git a/sinksh/syntax_modules/sink_stat.cpp b/sinksh/syntax_modules/sink_stat.cpp index 06586d9..9f0fe44 100644 --- a/sinksh/syntax_modules/sink_stat.cpp +++ b/sinksh/syntax_modules/sink_stat.cpp | |||
@@ -70,30 +70,11 @@ bool statAllResources(State &state) | |||
70 | { | 70 | { |
71 | Sink::Query query; | 71 | Sink::Query query; |
72 | query.liveQuery = false; | 72 | query.liveQuery = false; |
73 | auto model = SinkshUtils::loadModel("resource", query); | 73 | QStringList resources; |
74 | 74 | for (const auto &r : SinkshUtils::getStore("resource").read(query)) { | |
75 | //SUUUPER ugly, but can't think of a better way with 2 glasses of wine in me on Christmas day | 75 | resources << r.identifier(); |
76 | static QStringList resources; | ||
77 | resources.clear(); | ||
78 | |||
79 | QObject::connect(model.data(), &QAbstractItemModel::rowsInserted, [model](const QModelIndex &index, int start, int end) mutable { | ||
80 | for (int i = start; i <= end; i++) { | ||
81 | auto object = model->data(model->index(i, 0, index), Sink::Store::DomainObjectBaseRole).value<Sink::ApplicationDomain::ApplicationDomainType::Ptr>(); | ||
82 | resources << object->identifier(); | ||
83 | } | ||
84 | }); | ||
85 | |||
86 | QObject::connect(model.data(), &QAbstractItemModel::dataChanged, [model, state](const QModelIndex &, const QModelIndex &, const QVector<int> &roles) { | ||
87 | if (roles.contains(Sink::Store::ChildrenFetchedRole)) { | ||
88 | statResources(resources, state); | ||
89 | state.commandFinished(); | ||
90 | } | ||
91 | }); | ||
92 | |||
93 | if (!model->data(QModelIndex(), Sink::Store::ChildrenFetchedRole).toBool()) { | ||
94 | return true; | ||
95 | } | 76 | } |
96 | 77 | statResources(resources, state); | |
97 | return false; | 78 | return false; |
98 | } | 79 | } |
99 | 80 | ||
@@ -109,7 +90,7 @@ bool stat(const QStringList &args, State &state) | |||
109 | 90 | ||
110 | Syntax::List syntax() | 91 | Syntax::List syntax() |
111 | { | 92 | { |
112 | Syntax state("stat", QObject::tr("Shows database usage for the resources requested"), &SinkStat::stat, Syntax::EventDriven); | 93 | Syntax state("stat", QObject::tr("Shows database usage for the resources requested"), &SinkStat::stat, Syntax::NotInteractive); |
113 | state.completer = &SinkshUtils::resourceCompleter; | 94 | state.completer = &SinkshUtils::resourceCompleter; |
114 | 95 | ||
115 | return Syntax::List() << state; | 96 | return Syntax::List() << state; |
diff --git a/sinksh/syntax_modules/sink_sync.cpp b/sinksh/syntax_modules/sink_sync.cpp index 3006202..208b869 100644 --- a/sinksh/syntax_modules/sink_sync.cpp +++ b/sinksh/syntax_modules/sink_sync.cpp | |||
@@ -56,7 +56,7 @@ bool sync(const QStringList &args, State &state) | |||
56 | 56 | ||
57 | Syntax::List syntax() | 57 | Syntax::List syntax() |
58 | { | 58 | { |
59 | Syntax sync("sync", QObject::tr("Syncronizes all resources that are listed; and empty list triggers a syncronizaton on all resources"), &SinkSync::sync, Syntax::EventDriven ); | 59 | Syntax sync("sync", QObject::tr("Syncronizes all resources that are listed; and empty list triggers a syncronizaton on all resources"), &SinkSync::sync, Syntax::EventDriven); |
60 | sync.completer = &SinkshUtils::resourceCompleter; | 60 | sync.completer = &SinkshUtils::resourceCompleter; |
61 | 61 | ||
62 | return Syntax::List() << sync; | 62 | return Syntax::List() << sync; |