From 7c4d85348ecbb9913948edc53b82efaa97d85fda Mon Sep 17 00:00:00 2001 From: Gluzskiy Alexandr Date: Wed, 20 Jan 2016 06:31:14 +0300 Subject: protocol: download completed state client-qt: added "download completed" subscription and status support server: module_curl: used events api in core for download state changes core: download completed event support for modules --- client-qt/udm-client-qt/downloads_model.cpp | 3 +++ client-qt/udm-client-qt/udm_main.cpp | 12 ++++++++++++ 2 files changed, 15 insertions(+) (limited to 'client-qt') diff --git a/client-qt/udm-client-qt/downloads_model.cpp b/client-qt/udm-client-qt/downloads_model.cpp index 5789151..d7fb799 100644 --- a/client-qt/udm-client-qt/downloads_model.cpp +++ b/client-qt/udm-client-qt/downloads_model.cpp @@ -71,6 +71,9 @@ QVariant downloads_model::data(const QModelIndex &index, int role) const case 1: return tr("Started"); break; + case 2: + return tr("Completed"); + break; //TODO: handle module defined states default: return QVariant(); diff --git a/client-qt/udm-client-qt/udm_main.cpp b/client-qt/udm-client-qt/udm_main.cpp index ab9b898..4110f03 100644 --- a/client-qt/udm-client-qt/udm_main.cpp +++ b/client-qt/udm-client-qt/udm_main.cpp @@ -305,6 +305,7 @@ void udm_main::server_message_received(server_msg msg) s->mutable_download_state_change()->add_states(SDS_STARTED); //subscript to download started event s->mutable_download_state_change()->add_states(SDS_STOPPED); //subscript to download stopped event s->mutable_download_state_change()->add_states(SDS_DELETED); //subscript to download deleted event + s->mutable_download_state_change()->add_states(SDS_COMPLETED); //subscript to download deleted event session->send_message(msg); } @@ -390,6 +391,17 @@ void udm_main::server_message_received(server_msg msg) } } break; + case SUBSCRIPTION_DOWNLOAD_STATE::SDS_COMPLETED: + for(auto d = downloads.begin(), end = downloads.end(); d != end; ++d) + { + if(d->id() == i.download_id()) + { + d->set_state(2); //TODO: use human readable enum for states ? + mdl_downloads->refresh(); //TODO: udapte only changed item + break; + } + } + break; case SUBSCRIPTION_DOWNLOAD_STATE::SDS_DELETED: { bool found = false; -- cgit v1.2.3