Skip to content
Extraits de code Groupes Projets
Valider 6b0f6b97 rédigé par Jordan Aurey's avatar Jordan Aurey
Parcourir les fichiers

push table model

parent bbd3467d
Aucune branche associée trouvée
Aucune étiquette associée trouvée
Aucune requête de fusion associée trouvée
......@@ -33,7 +33,8 @@ SOURCES += \
controller.cpp \
generalstatus.cpp \
elementslistmodel.cpp \
service.cpp
service.cpp \
elementstablemodel.cpp
HEADERS += \
mainwindow.h \
......@@ -44,7 +45,8 @@ HEADERS += \
controller.h \
elementslistmodel.h \
generalstatus.h \
service.h
service.h \
elementstablemodel.h
FORMS += \
mainwindow.ui
......@@ -6,7 +6,7 @@ Controller::Controller(MainWindow *window) : eltCollection(), genStatus(), main(
QTimer *timer = new QTimer();
timer->connect(timer, SIGNAL(timeout()), this , SLOT(update()));
timer->start(10000);
timer->start(1000);
}
......@@ -15,6 +15,6 @@ void Controller::update(){
//eltCollection.update();
genStatus.update();
main->update_status(genStatus);
eltCollection.update();
main->update_tasks(&eltCollection);
//eltCollection.update();
//main->update_tasks(&eltCollection);
}
#include "elementstablemodel.h"
ElementsTableModel::ElementsTableModel(QObject *parent)
: QAbstractTableModel(parent), task_list(".listT")
{
}
QVariant ElementsTableModel::headerData(int section, Qt::Orientation orientation, int role) const
{
if (role == Qt::DisplayRole && orientation == Qt::Horizontal) {
switch (section) {
case 0:
return QString("PID");
case 1:
return QString("Name");
case 2:
return QString("Status");
case 3:
return QString("PPID");
case 4:
return QString("User");
case 5:
return QString("CPU");
case 6:
return QString("Memory");
case 7:
return QString("Uptime");
}
}
return QVariant();
}
int ElementsTableModel::rowCount(const QModelIndex &parent) const
{
if (parent.isValid())
return 0;
return taskMap.size();
// FIXME: Implement me!
}
int ElementsTableModel::columnCount(const QModelIndex &parent) const
{
if (parent.isValid())
return 0;
return (8);
// FIXME: Implement me!
}
QVariant ElementsTableModel::data(const QModelIndex &index, int role) const
{
if (!index.isValid())
return QVariant();
// FIXME: Implement me!
if (role == Qt::DisplayRole){
int row = index.row();
int col = index.column();
QMap<int, Task*>::const_iterator it = taskMap.cbegin();
it += row;
Task * task = it.value();
switch (col) {
case 0:
return QVariant(task->getPID());
case 1:
return QVariant(task->getPID());
case 2:
return QVariant(task->getPID());
case 3:
return QVariant(task->getPPID());
case 4:
return QVariant(task->getPID());
case 5:
return QVariant(task->getCPU());
case 6:
return QVariant(task->getMem());
case 7:
return QVariant(task->getUtime());
default:
break;
}
}
return QVariant();
}
void ElementsTableModel::insertTask(Task *task, int key){
beginInsertRows(QModelIndex(), 0, 0);
taskMap.insert(key, task);
//qDebug() << "insert " + task.print() +" at " << row;
endInsertRows();
}
void ElementsTableModel::removeTask(int key){
beginRemoveRows(QModelIndex(), 0, 0);
taskMap.remove(key);
//qDebug() << "remove at " << row;
endRemoveRows();
}
bool ElementsTableModel::insertRows(int row, int count, const QModelIndex &parent)
{
beginInsertRows(parent, row, row + count - 1);
// FIXME: Implement me!
endInsertRows();
}
bool ElementsTableModel::insertColumns(int column, int count, const QModelIndex &parent)
{
beginInsertColumns(parent, column, column + count - 1);
// FIXME: Implement me!
endInsertColumns();
}
bool ElementsTableModel::removeRows(int row, int count, const QModelIndex &parent)
{
beginRemoveRows(parent, row, row + count - 1);
// FIXME: Implement me!
endRemoveRows();
}
bool ElementsTableModel::removeColumns(int column, int count, const QModelIndex &parent)
{
beginRemoveColumns(parent, column, column + count - 1);
// FIXME: Implement me!
endRemoveColumns();
}
#ifndef ELEMENTSTABLEMODEL_H
#define ELEMENTSTABLEMODEL_H
#include <QAbstractTableModel>
#include <task.h>
class ElementsTableModel : public QAbstractTableModel
{
Q_OBJECT
public:
explicit ElementsTableModel(QObject *parent = nullptr);
QVariant headerData(int section, Qt::Orientation orientation, int role = Qt::DisplayRole) const override;
// Basic functionality:
int rowCount(const QModelIndex &parent = QModelIndex()) const override;
int columnCount(const QModelIndex &parent = QModelIndex()) const override;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const override;
void insertTask(Task *task, int key);
void removeTask(int key);
// Add data:
bool insertRows(int row, int count, const QModelIndex &parent = QModelIndex()) override;
bool insertColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override;
// Remove data:
bool removeRows(int row, int count, const QModelIndex &parent = QModelIndex()) override;
bool removeColumns(int column, int count, const QModelIndex &parent = QModelIndex()) override;
private:
QMap<int, Task*> taskMap;
QFile task_list;
};
#endif // ELEMENTSTABLEMODEL_H
......@@ -15,12 +15,13 @@ MainWindow::MainWindow(QWidget *parent) :
//Task t(1);
//ElementsListModel * model = new ElementsListModel();
//model->insertTask(t, 0);
Task t(1);
ElementsTableModel * model = new ElementsTableModel();
model->insertColumns(0,8);
model->insertTask(&t, 1);
//model->insertTask(t, 1);
//ui->listView->setModel(model);
ui->tableView->setModel(model);
}
......@@ -53,7 +54,7 @@ void MainWindow::update_status(GeneralStatus &genStatus)
void MainWindow::update_tasks(ElementsListModel * eltCollection)
{
ui->listView->setModel(eltCollection);
//ui->listView->setModel(eltCollection);
}
void MainWindow::on_comboBox_currentTextChanged(const QString &arg1)
......
......@@ -6,6 +6,7 @@
#include <QInputDialog>
#include <QDir>
#include "generalstatus.h"
#include "elementstablemodel.h"
#include "elementslistmodel.h"
namespace Ui {
......
......@@ -263,7 +263,7 @@
</widget>
</item>
<item>
<widget class="QListView" name="listView"/>
<widget class="QTableView" name="tableView"/>
</item>
</layout>
</item>
......
......@@ -7,7 +7,7 @@
#include <signal.h>
class Task : Element
class Task : public Element
{
public:
Task();
......
0% Chargement en cours ou .
You are about to add 0 people to the discussion. Proceed with caution.
Terminez d'abord l'édition de ce message.
Veuillez vous inscrire ou vous pour commenter