Add a method to plot the pictures on the profile.

It plots in the wrong place for now, because I need to change the model a
bit. But it shares the same pixmap with the other widget which is nice. :)

Signed-off-by: Tomaz Canabrava <tomaz.canabrava@intel.com>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Tomaz Canabrava 2014-06-03 19:24:01 -03:00 committed by Dirk Hohndel
parent ebe799e0a0
commit 43cf9fdb7a
2 changed files with 20 additions and 2 deletions

View file

@ -702,7 +702,7 @@ void ProfileWidget2::setProfileState()
disconnectTemporaryConnections();
connect(DivePictureModel::instance(), SIGNAL(dataChanged(QModelIndex, QModelIndex)), this, SLOT(plotPictures()));
connect(DivePictureModel::instance(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),this, SLOT(plotPictureS()));
connect(DivePictureModel::instance(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),this, SLOT(plotPictures()));
connect(DivePictureModel::instance(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),this, SLOT(plotPictures()));
/* show the same stuff that the profile shows. */
@ -1050,7 +1050,7 @@ void ProfileWidget2::disconnectTemporaryConnections()
this, SLOT(pointsRemoved(const QModelIndex &, int, int)));
disconnect(DivePictureModel::instance(), SIGNAL(dataChanged(QModelIndex, QModelIndex)), this, SLOT(plotPictures()));
disconnect(DivePictureModel::instance(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),this, SLOT(plotPictureS()));
disconnect(DivePictureModel::instance(), SIGNAL(rowsInserted(const QModelIndex &, int, int)),this, SLOT(plotPictures()));
disconnect(DivePictureModel::instance(), SIGNAL(rowsRemoved(const QModelIndex &, int, int)),this, SLOT(plotPictures()));
Q_FOREACH (QAction *action, actionsForKeys.values()) {
@ -1288,3 +1288,19 @@ void ProfileWidget2::keyEscAction()
if (plannerModel->isPlanner())
plannerModel->cancelPlan();
}
void ProfileWidget2::plotPictures()
{
qDeleteAll(pictures);
pictures.clear();
DivePictureModel *m = DivePictureModel::instance();
for(int i = 0; i < m->rowCount(); i++){
DivePixmapItem *item = new DivePixmapItem();
item->setPixmap(m->index(i,0).data(Qt::DecorationRole).value<QPixmap>());
item->setPos(10,10); // TODO: put the item in the correct place.
item->setFlag(QGraphicsItem::ItemIgnoresTransformations);
scene()->addItem(item);
pictures.push_back(item);
}
}

View file

@ -91,6 +91,7 @@ slots: // Necessary to call from QAction's signals.
void makeFirstDC();
void pointInserted(const QModelIndex &parent, int start, int end);
void pointsRemoved(const QModelIndex &, int start, int end);
void plotPictures();
void replot();
/* this is called for every move on the handlers. maybe we can speed up this a bit? */
@ -159,6 +160,7 @@ private:
//specifics for ADD and PLAN
QList<DiveHandler *> handles;
QList<QGraphicsSimpleTextItem *> gases;
QList<DivePixmapItem*> pictures;
void repositionDiveHandlers();
int fixHandlerIndex(DiveHandler *activeHandler);
friend class DiveHandler;