Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include "ordertableview.h"
- /**
- * @brief OrderTableView::OrderTableView
- * @param parent
- */
- OrderTableView::OrderTableView(QWidget *parent) :
- QTableView(parent)
- {
- table = new OrderTableModel(this);
- proxyModel = new QSortFilterProxyModel(this);
- proxyModel->setSourceModel(table);
- proxyModel->setDynamicSortFilter(true);
- this->setModel(proxyModel);
- this->setSortingEnabled(true);
- this->setSelectionBehavior(QAbstractItemView::SelectRows);
- // horizontalHeader()->setStretchLastSection(true);
- // verticalHeader()->hide();
- this->setEditTriggers(QAbstractItemView::NoEditTriggers);
- this->setSelectionMode(QAbstractItemView::SingleSelection);
- QVariantList orders = readCurrentOrders();
- foreach (QVariant order, orders) {
- table->addOrder(order.toMap());
- }
- orderThread = new OrderThread();
- orderThread->start();
- QObject::connect(orderThread, SIGNAL(readOrders()), this, SLOT(readOrders()));
- QObject::connect(&networkManager, SIGNAL(finished(QNetworkReply*)), this, SLOT(ordersRead(QNetworkReply*)));
- }
- /**
- * @brief OrderTableView::~OrderTableView
- */
- OrderTableView::~OrderTableView()
- {
- orderThread->quit();
- orderThread->wait();
- writeCurrentOrders(table->orders);
- delete table;
- delete proxyModel;
- }
- /**
- * SLOT
- * @brief OrderTableView::readOrders
- */
- void OrderTableView::readOrders()
- {
- QString url = "http://partnermed.lo/superuser/index.php?op=order_usps";
- networkManager.get(QNetworkRequest(url));
- }
- /**
- * SLOT for catching the HTTP/GET call made on the website.
- * Will parse and complete the data about the printing files.
- *
- * @brief OrderTableView::ordersRead
- * @param networkReply QNetworkReply
- */
- void OrderTableView::ordersRead(QNetworkReply *networkReply)
- {
- qDebug() << networkReply->url().toString();
- QUrl url = networkReply->url();
- if (!networkReply->error()) {
- QStringList choices;
- QStringList hits;
- QByteArray response(networkReply->readAll());
- QJson::Parser parser;
- bool valid;
- QVariant jvon = parser.parse(response, &valid);
- if (valid) {
- foreach (QVariant order, jvon.toList()) {
- table->addOrder(order.toMap());
- }
- } else {
- // @TODO: Send error message!
- }
- }
- networkReply->deleteLater();
- }
- /**
- * Read the logfile and return a QVariantList of the known orders
- *
- * @brief OrderTableView::readCurrent
- * @return QVariantList
- */
- QVariantList OrderTableView::readCurrentOrders()
- {
- QFile file;
- file.setFileName(".pmprinter");
- file.open(QIODevice::ReadOnly | QIODevice::Text);
- qDebug() << "Reading JSON file!";
- QJson::Parser parser;
- bool valid;
- QByteArray json = file.readAll();
- // qDebug() << QString(json);
- return parser.parse(json, &valid).toList();
- }
- /**
- * @brief OrderTableView::writeCurrentOrders
- * @param list
- */
- void OrderTableView::writeCurrentOrders(QVariantList list)
- {
- QFile file;
- file.setFileName(".pmprinter");
- file.open(QIODevice::WriteOnly | QIODevice::Text);
- // file.write("", 0);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement