mirror of
https://github.com/subsurface/subsurface.git
synced 2024-12-02 23:20:20 +00:00
Correctly handle empty dive list after delete
Things need to be cleared out and disabled. But fixing this bug leaves another issue - while the newly selected dive after a delete acts as if it was selected, it doesn't show up as selected in the dive list. Reported-by: Henrik Brautaset Aronsen <subsurface@henrik.synth.no> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
6ce5704435
commit
dba16202c4
3 changed files with 28 additions and 13 deletions
|
@ -7,6 +7,7 @@
|
||||||
#include "divelistview.h"
|
#include "divelistview.h"
|
||||||
#include "models.h"
|
#include "models.h"
|
||||||
#include "modeldelegates.h"
|
#include "modeldelegates.h"
|
||||||
|
#include "mainwindow.h"
|
||||||
#include "../display.h"
|
#include "../display.h"
|
||||||
#include <QApplication>
|
#include <QApplication>
|
||||||
#include <QHeaderView>
|
#include <QHeaderView>
|
||||||
|
@ -72,7 +73,7 @@ void DiveListView::selectDive(struct dive *dive, bool scrollto, bool toggle)
|
||||||
expand(parent);
|
expand(parent);
|
||||||
flags = toggle ? QItemSelectionModel::Toggle : QItemSelectionModel::Select;
|
flags = toggle ? QItemSelectionModel::Toggle : QItemSelectionModel::Select;
|
||||||
flags |= QItemSelectionModel::Rows;
|
flags |= QItemSelectionModel::Rows;
|
||||||
selectionModel()->select( idx, flags);
|
selectionModel()->select(idx, flags);
|
||||||
if (scrollto)
|
if (scrollto)
|
||||||
scrollTo(idx, PositionAtCenter);
|
scrollTo(idx, PositionAtCenter);
|
||||||
}
|
}
|
||||||
|
@ -330,9 +331,19 @@ void DiveListView::removeFromTrip()
|
||||||
|
|
||||||
void DiveListView::deleteDive()
|
void DiveListView::deleteDive()
|
||||||
{
|
{
|
||||||
|
int nr;
|
||||||
struct dive *d = (struct dive *) contextMenuIndex.data(DiveTripModel::DIVE_ROLE).value<void*>();
|
struct dive *d = (struct dive *) contextMenuIndex.data(DiveTripModel::DIVE_ROLE).value<void*>();
|
||||||
if (d)
|
if (d) {
|
||||||
|
nr = get_divenr(d);
|
||||||
delete_single_dive(get_index_for_dive(d));
|
delete_single_dive(get_index_for_dive(d));
|
||||||
|
if (amount_selected == 0) {
|
||||||
|
if (nr > 0)
|
||||||
|
select_dive(nr - 1);
|
||||||
|
else
|
||||||
|
mainWindow()->cleanUpEmpty();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
mainWindow()->refreshDisplay();
|
||||||
reload(currentLayout, false);
|
reload(currentLayout, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -134,6 +134,19 @@ void MainWindow::on_actionSaveAs_triggered()
|
||||||
{
|
{
|
||||||
file_save_as();
|
file_save_as();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void MainWindow::cleanUpEmpty()
|
||||||
|
{
|
||||||
|
ui->InfoWidget->clearStats();
|
||||||
|
ui->InfoWidget->clearInfo();
|
||||||
|
ui->InfoWidget->clearEquipment();
|
||||||
|
ui->InfoWidget->updateDiveInfo(-1);
|
||||||
|
ui->ProfileWidget->clear();
|
||||||
|
ui->ListWidget->reload(DiveTripModel::TREE);
|
||||||
|
ui->globe->reload();
|
||||||
|
setTitle(MWTF_DEFAULT);
|
||||||
|
}
|
||||||
|
|
||||||
void MainWindow::on_actionClose_triggered()
|
void MainWindow::on_actionClose_triggered()
|
||||||
{
|
{
|
||||||
if (unsaved_changes() && (askSaveChanges() == FALSE))
|
if (unsaved_changes() && (askSaveChanges() == FALSE))
|
||||||
|
@ -146,17 +159,7 @@ void MainWindow::on_actionClose_triggered()
|
||||||
/* clear the selection and the statistics */
|
/* clear the selection and the statistics */
|
||||||
selected_dive = -1;
|
selected_dive = -1;
|
||||||
|
|
||||||
//WARNING: Port this to Qt.
|
cleanUpEmpty();
|
||||||
//process_selected_dives();
|
|
||||||
|
|
||||||
ui->InfoWidget->clearStats();
|
|
||||||
ui->InfoWidget->clearInfo();
|
|
||||||
ui->InfoWidget->clearEquipment();
|
|
||||||
ui->InfoWidget->updateDiveInfo(-1);
|
|
||||||
ui->ProfileWidget->clear();
|
|
||||||
ui->ListWidget->reload(DiveTripModel::TREE);
|
|
||||||
ui->globe->reload();
|
|
||||||
setTitle(MWTF_DEFAULT);
|
|
||||||
mark_divelist_changed(FALSE);
|
mark_divelist_changed(FALSE);
|
||||||
|
|
||||||
clear_events();
|
clear_events();
|
||||||
|
|
|
@ -52,6 +52,7 @@ public:
|
||||||
void enableDcShortcuts();
|
void enableDcShortcuts();
|
||||||
void loadFiles(const QStringList files);
|
void loadFiles(const QStringList files);
|
||||||
void importFiles(const QStringList importFiles);
|
void importFiles(const QStringList importFiles);
|
||||||
|
void cleanUpEmpty();
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
/* file menu action */
|
/* file menu action */
|
||||||
|
|
Loading…
Reference in a new issue