aboutsummaryrefslogtreecommitdiffstats
path: root/qt-ui/mainwindow.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'qt-ui/mainwindow.cpp')
-rw-r--r--qt-ui/mainwindow.cpp188
1 files changed, 1 insertions, 187 deletions
diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp
index 3766e2187..58cb86286 100644
--- a/qt-ui/mainwindow.cpp
+++ b/qt-ui/mainwindow.cpp
@@ -36,24 +36,12 @@ MainWindow::MainWindow() : ui(new Ui::MainWindow()),
sortModel->setSourceModel(model);
ui->ListWidget->setModel(sortModel);
setWindowIcon(QIcon(":subsurface-icon"));
- connect(ui->ListWidget->selectionModel(), SIGNAL(selectionChanged(QItemSelection,QItemSelection)),
- this, SLOT(dive_selection_changed(QItemSelection,QItemSelection)));
+
QModelIndex firstDiveOrTrip = sortModel->index(0,0);
if (sortModel->index(0,0, firstDiveOrTrip).isValid())
ui->ListWidget->setCurrentIndex(sortModel->index(0,0, firstDiveOrTrip));
else
ui->ListWidget->setCurrentIndex(firstDiveOrTrip);
-
-#if 0
- QAction *actionNextDive = new QAction(this);
- addAction(actionNextDive);
- actionNextDive->setShortcut(Qt::Key_Down);
- connect(actionNextDive, SIGNAL(triggered()), this, SLOT(nextDive_triggered()));
- QAction *actionPreviousDive = new QAction(this);
- addAction(actionPreviousDive);
- actionPreviousDive->setShortcut(Qt::Key_Up);
- connect(actionPreviousDive, SIGNAL(triggered()), this, SLOT(previousDive_triggered()));
-#endif
}
void MainWindow::redrawProfile()
@@ -61,98 +49,6 @@ void MainWindow::redrawProfile()
ui->ProfileWidget->plot(get_dive(selected_dive));
}
-#if 0
-void MainWindow::nextDive_triggered()
-{
- // Get the current Selection:
- QItemSelectionModel *m = ui->ListWidget->selectionModel();
- QModelIndexList selection = m->selectedRows();
-
- if (!selection.size())
- return;
-
- // check if it's a dive or trip:
- QModelIndex index = selection.first();
- struct dive *d = (struct dive*) index.data(TreeItemDT::DIVE_ROLE).value<void*>();
- const QAbstractItemModel *model = index.model();
-
- QItemSelectionModel::SelectionFlags flags = (QItemSelectionModel::Select | QItemSelectionModel::Rows);
-
- if (d) {
- // it's a dive.
- QModelIndex trip = index.parent();
-
- // checks if it's the last dive on a trip list:
- if (index.row() == model->rowCount(trip) - 1) {
- // selects a trip.
- QModelIndex nexttrip = model->index(trip.row()+1, trip.column(), trip.parent());
- if (nexttrip.isValid()) {
- m->clear();
- m->select(nexttrip, flags);
- }
- } else {
- m->clear();
- m->select(model->index(index.row()+1, index.column(), index.parent()), flags);
- }
- } else {
- // it's a trip (and we have no empty trips, so there is a first child)
- QModelIndex child = index.child(0,0);
- m->select(model->index(0, index.column(), index), flags);
- }
-}
-
-void MainWindow::previousDive_triggered()
-{
- // Get the current Selection:
- QItemSelectionModel *m = ui->ListWidget->selectionModel();
- QModelIndexList selection = m->selectedRows();
-
- if (!selection.size())
- return;
-
- // check if it's a dive or trip:
- QModelIndex index = selection.first();
- struct dive *d = (struct dive*) index.data(TreeItemDT::DIVE_ROLE).value<void*>();
- const QAbstractItemModel *model = index.model();
-
- QItemSelectionModel::SelectionFlags flags = (QItemSelectionModel::Select | QItemSelectionModel::Rows);
-
- if (d) {
- // it's a dive.
- QModelIndex trip = index.parent();
-
- // checks if it's the first dive on a trip list:
- if (index.row() == 0) {
- if (trip.isValid()) {
- // select the trip this dive is in
- m->clear();
- m->select(model->index(trip.row(), trip.column(), trip.parent()),flags);
- }
- } else {
- // select the previous dive
- m->clear();
- m->select(model->index(index.row() - 1, index.column(), index.parent()), flags);
- }
- } else {
- // it's a trip.
- if (index.row() != 0) {
- QModelIndex prevtrip = index.sibling(index.row() - 1, 0);
- if (!prevtrip.isValid())
- return;
- int cnt = prevtrip.model()->rowCount();
- QModelIndex child = prevtrip.child(prevtrip.model()->rowCount() - 1, 0);
- /* I don't understand why this gives me incorrect rowCount... */
- while(!child.isValid() && cnt > 0)
- child = prevtrip.child(--cnt, 0);
- if (!child.isValid())
- return;
- m->clear();
- m->select(model->index(child.row(), index.column(), prevtrip), flags);
- }
- }
-}
-#endif
-
void MainWindow::on_actionNew_triggered()
{
qDebug("actionNew");
@@ -188,88 +84,6 @@ void MainWindow::on_actionOpen_triggered()
ui->ListWidget->sortByColumn(0, Qt::DescendingOrder);
}
-void MainWindow::dive_selection_changed(const QItemSelection& newSelection, const QItemSelection& oldSelection)
-{
- int cnt, i;
- /* first deselect the dives that are no longer selected */
- Q_FOREACH(const QModelIndex& deselect, oldSelection.indexes()) {
- struct dive *d = (struct dive*) deselect.data(TreeItemDT::DIVE_ROLE).value<void*>();
- if (!d) {
- // this is a trip - if just the trip is deselected but not its children,
- // then we manually need to deselect its children
- const QAbstractItemModel *model = deselect.model();
- cnt = model->rowCount(deselect);
- if (cnt == 0)
- continue;
- for (i = 0; i < cnt; i++) {
- QModelIndex child = deselect.child(i,0);
- if (oldSelection.contains(child))
- break;
- }
- // if none of the dives were in the deselect list (so the user only ctrl-clicked
- // on the trip header) then manually deselect all the dives
- if (i == model->rowCount(deselect)) {
- QItemSelectionModel::SelectionFlags flags = (QItemSelectionModel::Deselect |
- QItemSelectionModel::Rows);
- QItemSelection removedDives = QItemSelection();
- removedDives.select(deselect.child(0,0), deselect.child(i - 1,0));
- ui->ListWidget->selectionModel()->select(removedDives,flags);
- }
- }
- if (!d || !d->selected)
- continue;
- deselect_dive(get_divenr(d));
- }
- /* then select the newly selected dives */
- bool needToScroll = TRUE;
- Q_FOREACH(const QModelIndex& select, newSelection.indexes()) {
- struct dive *d = (struct dive*) select.data(TreeItemDT::DIVE_ROLE).value<void*>();
- if (!d) {
- // this is a trip
- const QAbstractItemModel *model = select.model();
- cnt = model->rowCount(select);
- if (cnt == 0)
- continue;
- for (i = 0; i < cnt; i++) {
- QModelIndex child = select.child(i,0);
- if (newSelection.contains(child))
- break;
- }
- // if just the trip header was clicked and none of its children,
- // select all of them
- if (i == model->rowCount(select)) {
- if (needToScroll) {
- // make sure the trip header is visible
- needToScroll = FALSE;
- ui->ListWidget->scrollTo(select, QAbstractItemView::PositionAtCenter);
- }
- QItemSelectionModel::SelectionFlags flags = (QItemSelectionModel::Select |
- QItemSelectionModel::Rows);
- QItemSelection addedDives = QItemSelection();
- addedDives.select(select.child(0,0), select.child(i - 1,0));
- ui->ListWidget->selectionModel()->select(addedDives,flags);
- }
- }
- if (!d || d->selected)
- continue;
- select_dive(get_divenr(d));
- if (needToScroll) {
- // make sure at least one of them is visible in the list
- // and if this is the first dive of a trip, make the trip visible, too
- needToScroll = FALSE;
- if (select.row() == 0 && d->divetrip && select.parent().isValid())
- ui->ListWidget->scrollTo(select.parent(), QAbstractItemView::PositionAtCenter);
- else
- ui->ListWidget->scrollTo(select, QAbstractItemView::PositionAtCenter);
- } else {
- // but all selected dives should be in expanded trips
- ui->ListWidget->expand(select.parent());
- }
- }
- redrawProfile();
- ui->InfoWidget->updateDiveInfo(selected_dive);
-}
-
void MainWindow::on_actionSave_triggered()
{
qDebug("actionSave");