diff options
Diffstat (limited to 'client-qt')
-rw-r--r-- | client-qt/udm-client-qt/downloads_model.cpp | 9 | ||||
-rw-r--r-- | client-qt/udm-client-qt/downloads_model.h | 2 | ||||
-rw-r--r-- | client-qt/udm-client-qt/udm_main.cpp | 3 |
3 files changed, 13 insertions, 1 deletions
diff --git a/client-qt/udm-client-qt/downloads_model.cpp b/client-qt/udm-client-qt/downloads_model.cpp index 567b5e5..1883a6c 100644 --- a/client-qt/udm-client-qt/downloads_model.cpp +++ b/client-qt/udm-client-qt/downloads_model.cpp @@ -21,7 +21,7 @@ #include "downloads_model.h" -downloads_model::downloads_model(std::vector<download> &downloads_, QObject */*parent*/) : downloads(downloads_) +downloads_model::downloads_model(std::vector<download> &downloads_, QObject *parent) : QAbstractTableModel(parent), downloads(downloads_) { } @@ -134,6 +134,13 @@ bool downloads_model::removeRows(int position, int rows, const QModelIndex &/*in return true; } +void downloads_model::refresh() +{ + QModelIndex topLeft = createIndex(0,0), bottomRight = createIndex(downloads.size()-1, 5); + emit dataChanged(topLeft, bottomRight); +} + + void downloads_model::sort ( int /*column*/, Qt::SortOrder /*order*/) { //TODO: diff --git a/client-qt/udm-client-qt/downloads_model.h b/client-qt/udm-client-qt/downloads_model.h index fc7cfbc..08172d5 100644 --- a/client-qt/udm-client-qt/downloads_model.h +++ b/client-qt/udm-client-qt/downloads_model.h @@ -43,6 +43,8 @@ public: signals: public slots: + void refresh(); + private: std::vector<download> &downloads; }; diff --git a/client-qt/udm-client-qt/udm_main.cpp b/client-qt/udm-client-qt/udm_main.cpp index 7ad52ee..a7e0c18 100644 --- a/client-qt/udm-client-qt/udm_main.cpp +++ b/client-qt/udm-client-qt/udm_main.cpp @@ -58,6 +58,7 @@ udm_main::udm_main(QWidget *parent) tbl_downloads = new QTableView; tbl_downloads->setShowGrid(false); + tbl_downloads->setUpdatesEnabled(true); mdl_downloads = new downloads_model(downloads); tbl_downloads->setModel(mdl_downloads); tbl_downloads->setSelectionBehavior(QAbstractItemView::SelectRows); @@ -222,6 +223,7 @@ void udm_main::server_message_received(server_msg msg) downloads.clear(); //TODO: something better for(auto i : msg.downloads()) downloads.push_back(i.download()); + mdl_downloads->refresh(); } break; case SERVER_MSG_TYPE::SERVER_DOWNLOAD_INFO_REPLY: @@ -238,6 +240,7 @@ void udm_main::server_message_received(server_msg msg) } if(!found) downloads.push_back(msg.download().download()); + mdl_downloads->refresh(); } break; |