mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-17 19:36:15 +00:00
Replace mainWindow() with MainWindow::instance()
C++ style of accessing single instance class object. Signed-off-by: Boris Barbulovski <bbarbulovski@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
cc37d2e94a
commit
c86822c2f4
18 changed files with 104 additions and 96 deletions
4
main.cpp
4
main.cpp
|
@ -48,8 +48,8 @@ int main(int argc, char **argv)
|
|||
files.push_back( QString(prefs.default_filename) );
|
||||
}
|
||||
parse_xml_exit();
|
||||
mainWindow()->loadFiles(files);
|
||||
mainWindow()->importFiles(importedFiles);
|
||||
MainWindow::instance()->loadFiles(files);
|
||||
MainWindow::instance()->importFiles(importedFiles);
|
||||
if (!quit)
|
||||
run_ui();
|
||||
exit_ui();
|
||||
|
|
|
@ -22,7 +22,7 @@ void DiveComputerManagementDialog::init()
|
|||
|
||||
DiveComputerManagementDialog* DiveComputerManagementDialog::instance()
|
||||
{
|
||||
static DiveComputerManagementDialog *self = new DiveComputerManagementDialog(mainWindow());
|
||||
static DiveComputerManagementDialog *self = new DiveComputerManagementDialog(MainWindow::instance());
|
||||
self->setAttribute(Qt::WA_QuitOnClose, false);
|
||||
return self;
|
||||
}
|
||||
|
|
|
@ -518,7 +518,7 @@ void DiveListView::mergeDives()
|
|||
}
|
||||
}
|
||||
}
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
}
|
||||
|
||||
void DiveListView::merge_trip(const QModelIndex &a, int offset)
|
||||
|
@ -648,10 +648,10 @@ void DiveListView::markDiveInvalid()
|
|||
// d->invalid = true;
|
||||
}
|
||||
if (amount_selected == 0) {
|
||||
mainWindow()->cleanUpEmpty();
|
||||
MainWindow::instance()->cleanUpEmpty();
|
||||
}
|
||||
mark_divelist_changed(true);
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
if (prefs.display_invalid_dives == false) {
|
||||
clearSelection();
|
||||
// select top dive that isn't marked invalid
|
||||
|
@ -679,10 +679,10 @@ void DiveListView::deleteDive()
|
|||
lastDiveNr = i;
|
||||
}
|
||||
if (amount_selected == 0) {
|
||||
mainWindow()->cleanUpEmpty();
|
||||
MainWindow::instance()->cleanUpEmpty();
|
||||
}
|
||||
mark_divelist_changed(true);
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
if (lastDiveNr != -1) {
|
||||
clearSelection();
|
||||
selectDive(lastDiveNr);
|
||||
|
@ -769,7 +769,7 @@ void DiveListView::saveSelectedDivesAs()
|
|||
}
|
||||
settings.endGroup();
|
||||
|
||||
QString fileName = QFileDialog::getSaveFileName(mainWindow(), tr("Save Dives As..."), QDir::homePath());
|
||||
QString fileName = QFileDialog::getSaveFileName(MainWindow::instance(), tr("Save Dives As..."), QDir::homePath());
|
||||
if (fileName.isEmpty())
|
||||
return;
|
||||
|
||||
|
@ -842,25 +842,25 @@ void DiveListView::loadImages()
|
|||
if (dive->when > imagetime) {
|
||||
; // Before dive
|
||||
add_event(&(dive->dc), 0, 123, 0, 0, fileNames.at(i).toUtf8().data());
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
mark_divelist_changed(true);
|
||||
}
|
||||
else if (dive->when + dive->duration.seconds < imagetime){
|
||||
; // After dive
|
||||
add_event(&(dive->dc), dive->duration.seconds, 123, 0, 0, fileNames.at(i).toUtf8().data());
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
mark_divelist_changed(true);
|
||||
}
|
||||
else {
|
||||
add_event(&(dive->dc), imagetime - dive->when, 123, 0, 0, fileNames.at(i).toUtf8().data());
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
mark_divelist_changed(true);
|
||||
}
|
||||
if (!dive->latitude.udeg && !IS_FP_SAME(exif.GeoLocation.Latitude, 0.0)){
|
||||
dive->latitude.udeg = lrint(1000000.0 * exif.GeoLocation.Latitude);
|
||||
dive->longitude.udeg = lrint(1000000.0 * exif.GeoLocation.Longitude);
|
||||
mark_divelist_changed(true);
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
|
|||
specialCSV.contains(ui->knownImports->currentIndex()) ? CSVApps[ui->knownImports->currentIndex()].name.toUtf8().data() : "csv",
|
||||
&error);
|
||||
if (error != NULL) {
|
||||
mainWindow()->showError(error);
|
||||
MainWindow::instance()->showError(error);
|
||||
free(error);
|
||||
error = NULL;
|
||||
}
|
||||
|
@ -87,7 +87,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
|
|||
VALUE_IF_CHECKED(Tags),
|
||||
&error);
|
||||
if (error != NULL) {
|
||||
mainWindow()->showError(error);
|
||||
MainWindow::instance()->showError(error);
|
||||
free(error);
|
||||
error = NULL;
|
||||
}
|
||||
|
@ -95,7 +95,7 @@ void DiveLogImportDialog::on_buttonBox_accepted()
|
|||
}
|
||||
process_dives(true, false);
|
||||
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
}
|
||||
|
||||
#define SET_VALUE_AND_CHECKBOX(CSV, BOX, VAL) ({\
|
||||
|
|
|
@ -371,7 +371,7 @@ void DivePlannerGraphics::decreaseDepth()
|
|||
|
||||
Q_FOREACH(DiveHandler *d, handles) {
|
||||
if (depthLine->valueAt(d->pos()) > depthLine->maximum() - M_OR_FT(10,30)) {
|
||||
QMessageBox::warning(mainWindow(),
|
||||
QMessageBox::warning(MainWindow::instance(),
|
||||
tr("Handler Position Error"),
|
||||
tr("One or more of your stops will be lost with this operations, \n"
|
||||
"Please, remove them first."));
|
||||
|
@ -979,9 +979,9 @@ DivePlannerWidget::DivePlannerWidget(QWidget* parent, Qt::WindowFlags f): QWidge
|
|||
// Creating the plan
|
||||
connect(ui.buttonBox, SIGNAL(accepted()), plannerModel, SLOT(createPlan()));
|
||||
connect(ui.buttonBox, SIGNAL(rejected()), plannerModel, SLOT(cancelPlan()));
|
||||
connect(plannerModel, SIGNAL(planCreated()), mainWindow(), SLOT(showProfile()));
|
||||
connect(plannerModel, SIGNAL(planCreated()), mainWindow(), SLOT(refreshDisplay()));
|
||||
connect(plannerModel, SIGNAL(planCanceled()), mainWindow(), SLOT(showProfile()));
|
||||
connect(plannerModel, SIGNAL(planCreated()), MainWindow::instance(), SLOT(showProfile()));
|
||||
connect(plannerModel, SIGNAL(planCreated()), MainWindow::instance(), SLOT(refreshDisplay()));
|
||||
connect(plannerModel, SIGNAL(planCanceled()), MainWindow::instance(), SLOT(showProfile()));
|
||||
|
||||
/* set defaults. */
|
||||
ui.startTime->setTime( QTime(1, 0) );
|
||||
|
@ -1298,7 +1298,7 @@ struct diveplan DivePlannerPointsModel::getDiveplan()
|
|||
void DivePlannerPointsModel::cancelPlan()
|
||||
{
|
||||
if (mode == PLAN && rowCount()) {
|
||||
if (QMessageBox::warning(mainWindow(), TITLE_OR_TEXT(tr("Discard the Plan?"),
|
||||
if (QMessageBox::warning(MainWindow::instance(), TITLE_OR_TEXT(tr("Discard the Plan?"),
|
||||
tr("You are about to discard your plan.")),
|
||||
QMessageBox::Discard | QMessageBox::Cancel, QMessageBox::Discard) != QMessageBox::Discard) {
|
||||
return;
|
||||
|
|
|
@ -269,7 +269,7 @@ void DownloadFromDCWidget::on_ok_clicked()
|
|||
connect(thread, SIGNAL(finished()),
|
||||
this, SLOT(onDownloadThreadFinished()), Qt::QueuedConnection);
|
||||
|
||||
MainWindow *w = mainWindow();
|
||||
MainWindow *w = MainWindow::instance();
|
||||
connect(thread, SIGNAL(finished()), w, SLOT(refreshDisplay()));
|
||||
|
||||
// before we start, remember where the dive_table ended
|
||||
|
|
|
@ -108,7 +108,7 @@ void GlobeGPS::contextMenuEvent(QContextMenuEvent* ev)
|
|||
void GlobeGPS::mouseClicked(qreal lon, qreal lat, GeoDataCoordinates::Unit unit)
|
||||
{
|
||||
// don't mess with the selection while the user is editing a dive
|
||||
if (mainWindow()->information()->isEditing())
|
||||
if (MainWindow::instance()->information()->isEditing())
|
||||
return;
|
||||
|
||||
GeoDataCoordinates here(lon, lat, unit);
|
||||
|
@ -151,10 +151,10 @@ void GlobeGPS::mouseClicked(qreal lon, qreal lat, GeoDataCoordinates::Unit unit)
|
|||
if (selectedDiveIds.empty())
|
||||
return;
|
||||
if (clear) {
|
||||
mainWindow()->dive_list()->unselectDives();
|
||||
MainWindow::instance()->dive_list()->unselectDives();
|
||||
clear = false;
|
||||
}
|
||||
mainWindow()->dive_list()->selectDives(selectedDiveIds);
|
||||
MainWindow::instance()->dive_list()->selectDives(selectedDiveIds);
|
||||
}
|
||||
|
||||
void GlobeGPS::repopulateLabels()
|
||||
|
@ -210,7 +210,7 @@ void GlobeGPS::centerOn(dive* dive)
|
|||
qreal longitude = dive->longitude.udeg / 1000000.0;
|
||||
qreal latitude = dive->latitude.udeg / 1000000.0;
|
||||
|
||||
if (!longitude || !latitude || mainWindow()->information()->isEditing()) {
|
||||
if (!longitude || !latitude || MainWindow::instance()->information()->isEditing()) {
|
||||
prepareForGetDiveCoordinates();
|
||||
return;
|
||||
}
|
||||
|
@ -249,7 +249,7 @@ void GlobeGPS::changeDiveGeoPosition(qreal lon, qreal lat, GeoDataCoordinates::U
|
|||
{
|
||||
messageWidget->hide();
|
||||
|
||||
if (mainWindow()->dive_list()->selectionModel()->selection().isEmpty())
|
||||
if (MainWindow::instance()->dive_list()->selectionModel()->selection().isEmpty())
|
||||
return;
|
||||
|
||||
// convert to degrees if in radian.
|
||||
|
@ -270,7 +270,7 @@ void GlobeGPS::changeDiveGeoPosition(qreal lon, qreal lat, GeoDataCoordinates::U
|
|||
centerOn(lon, lat, true);
|
||||
editingDiveLocation = false;
|
||||
mark_divelist_changed(true);
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
}
|
||||
|
||||
void GlobeGPS::mousePressEvent(QMouseEvent* event)
|
||||
|
@ -279,8 +279,8 @@ void GlobeGPS::mousePressEvent(QMouseEvent* event)
|
|||
bool clickOnGlobe = geoCoordinates(event->pos().x(), event->pos().y(), lon, lat, GeoDataCoordinates::Degree);
|
||||
|
||||
// there could be two scenarios that got us here; let's check if we are editing a dive
|
||||
if (mainWindow()->information()->isEditing() && clickOnGlobe) {
|
||||
mainWindow()->information()->updateCoordinatesText(lat, lon);
|
||||
if (MainWindow::instance()->information()->isEditing() && clickOnGlobe) {
|
||||
MainWindow::instance()->information()->updateCoordinatesText(lat, lon);
|
||||
repopulateLabels();
|
||||
} else if (clickOnGlobe) {
|
||||
changeDiveGeoPosition(lon, lat, GeoDataCoordinates::Degree);
|
||||
|
|
|
@ -234,14 +234,14 @@ void MainTab::enableEdition(EditMode newEditMode)
|
|||
strcmp(current_dive->dc.model, "manually added dive") == 0) {
|
||||
// editCurrentDive will call enableEdition with newEditMode == MANUALLY_ADDED_DIVE
|
||||
// so exit this function here after editCurrentDive() returns
|
||||
mainWindow()->editCurrentDive();
|
||||
MainWindow::instance()->editCurrentDive();
|
||||
return;
|
||||
}
|
||||
mainWindow()->dive_list()->setEnabled(false);
|
||||
mainWindow()->globe()->prepareForGetDiveCoordinates();
|
||||
MainWindow::instance()->dive_list()->setEnabled(false);
|
||||
MainWindow::instance()->globe()->prepareForGetDiveCoordinates();
|
||||
// We may be editing one or more dives here. backup everything.
|
||||
notesBackup.clear();
|
||||
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||
if (MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
|
||||
// we are editing trip location and notes
|
||||
displayMessage(tr("This trip is being edited."));
|
||||
notesBackup[NULL].notes = ui.notes->toPlainText();
|
||||
|
@ -399,7 +399,7 @@ void MainTab::updateDiveInfo(int dive)
|
|||
if (d) {
|
||||
updateGpsCoordinates(d);
|
||||
ui.dateTimeEdit->setDateTime(QDateTime::fromTime_t(d->when).toUTC());
|
||||
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||
if (MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
|
||||
setTabText(0, tr("Trip Notes"));
|
||||
// only use trip relevant fields
|
||||
ui.coordinates->setVisible(false);
|
||||
|
@ -421,7 +421,7 @@ void MainTab::updateDiveInfo(int dive)
|
|||
ui.waterTempLabel->setVisible(false);
|
||||
ui.watertemp->setVisible(false);
|
||||
// rename the remaining fields and fill data from selected trip
|
||||
dive_trip_t *currentTrip = *mainWindow()->dive_list()->selectedTrips().begin();
|
||||
dive_trip_t *currentTrip = *MainWindow::instance()->dive_list()->selectedTrips().begin();
|
||||
ui.LocationLabel->setText(tr("Trip Location"));
|
||||
ui.location->setText(currentTrip->location);
|
||||
ui.NotesLabel->setText(tr("Trip Notes"));
|
||||
|
@ -572,13 +572,13 @@ void MainTab::reload()
|
|||
|
||||
void MainTab::acceptChanges()
|
||||
{
|
||||
mainWindow()->dive_list()->setEnabled(true);
|
||||
MainWindow::instance()->dive_list()->setEnabled(true);
|
||||
tabBar()->setTabIcon(0, QIcon()); // Notes
|
||||
tabBar()->setTabIcon(1, QIcon()); // Equipment
|
||||
hideMessage();
|
||||
ui.equipmentTab->setEnabled(true);
|
||||
/* now figure out if things have changed */
|
||||
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||
if (MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
|
||||
if (notesBackup[NULL].notes != ui.notes->toPlainText() ||
|
||||
notesBackup[NULL].location != ui.location->text())
|
||||
mark_divelist_changed(true);
|
||||
|
@ -602,7 +602,7 @@ void MainTab::acceptChanges()
|
|||
}
|
||||
if (notesBackup[curr].location != ui.location->text() ||
|
||||
notesBackup[curr].coordinates != ui.coordinates->text()) {
|
||||
mainWindow()->globe()->reload();
|
||||
MainWindow::instance()->globe()->reload();
|
||||
}
|
||||
|
||||
if (notesBackup[curr].tags != ui.tagWidget->text())
|
||||
|
@ -644,7 +644,7 @@ void MainTab::acceptChanges()
|
|||
else if (selected_dive == dive_table.nr - 1 && get_dive(dive_table.nr - 2)->number)
|
||||
current_dive->number = get_dive(dive_table.nr - 2)->number + 1;
|
||||
DivePlannerPointsModel::instance()->cancelPlan();
|
||||
mainWindow()->showProfile();
|
||||
MainWindow::instance()->showProfile();
|
||||
mark_divelist_changed(true);
|
||||
DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::NOTHING);
|
||||
}
|
||||
|
@ -654,10 +654,10 @@ void MainTab::acceptChanges()
|
|||
if (d)
|
||||
fixup_dive(d);
|
||||
}
|
||||
int scrolledBy = mainWindow()->dive_list()->verticalScrollBar()->sliderPosition();
|
||||
int scrolledBy = MainWindow::instance()->dive_list()->verticalScrollBar()->sliderPosition();
|
||||
resetPallete();
|
||||
if (editMode == ADD || editMode == MANUALLY_ADDED_DIVE) {
|
||||
mainWindow()->dive_list()->unselectDives();
|
||||
MainWindow::instance()->dive_list()->unselectDives();
|
||||
struct dive *d = get_dive(dive_table.nr -1 );
|
||||
// mark the dive as remembered (abusing the selected flag)
|
||||
// and then clear that flag out on the other side of the sort_table()
|
||||
|
@ -671,17 +671,17 @@ void MainTab::acceptChanges()
|
|||
}
|
||||
}
|
||||
editMode = NONE;
|
||||
mainWindow()->refreshDisplay();
|
||||
mainWindow()->dive_list()->selectDive( i, true );
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
MainWindow::instance()->dive_list()->selectDive( i, true );
|
||||
} else {
|
||||
editMode = NONE;
|
||||
mainWindow()->dive_list()->rememberSelection();
|
||||
MainWindow::instance()->dive_list()->rememberSelection();
|
||||
sort_table(&dive_table);
|
||||
mainWindow()->refreshDisplay();
|
||||
mainWindow()->dive_list()->restoreSelection();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
MainWindow::instance()->dive_list()->restoreSelection();
|
||||
}
|
||||
mainWindow()->dive_list()->verticalScrollBar()->setSliderPosition(scrolledBy);
|
||||
mainWindow()->dive_list()->setFocus();
|
||||
MainWindow::instance()->dive_list()->verticalScrollBar()->setSliderPosition(scrolledBy);
|
||||
MainWindow::instance()->dive_list()->setFocus();
|
||||
}
|
||||
|
||||
void MainTab::resetPallete()
|
||||
|
@ -715,8 +715,8 @@ void MainTab::rejectChanges()
|
|||
tabBar()->setTabIcon(0, QIcon()); // Notes
|
||||
tabBar()->setTabIcon(1, QIcon()); // Equipment
|
||||
|
||||
mainWindow()->dive_list()->setEnabled(true);
|
||||
if (mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||
MainWindow::instance()->dive_list()->setEnabled(true);
|
||||
if (MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
|
||||
ui.notes->setText(notesBackup[NULL].notes );
|
||||
ui.location->setText(notesBackup[NULL].location);
|
||||
} else {
|
||||
|
@ -777,8 +777,8 @@ void MainTab::rejectChanges()
|
|||
updateGpsCoordinates(curr);
|
||||
if (lastMode == ADD) {
|
||||
delete_single_dive(selected_dive);
|
||||
mainWindow()->dive_list()->reload(DiveTripModel::CURRENT);
|
||||
mainWindow()->dive_list()->restoreSelection();
|
||||
MainWindow::instance()->dive_list()->reload(DiveTripModel::CURRENT);
|
||||
MainWindow::instance()->dive_list()->restoreSelection();
|
||||
}
|
||||
if (selected_dive >= 0) {
|
||||
multiEditEquipmentPlaceholder = *get_dive(selected_dive);
|
||||
|
@ -792,20 +792,20 @@ void MainTab::rejectChanges()
|
|||
}
|
||||
|
||||
hideMessage();
|
||||
mainWindow()->dive_list()->setEnabled(true);
|
||||
MainWindow::instance()->dive_list()->setEnabled(true);
|
||||
notesBackup.clear();
|
||||
resetPallete();
|
||||
editMode = NONE;
|
||||
mainWindow()->globe()->reload();
|
||||
MainWindow::instance()->globe()->reload();
|
||||
if (lastMode == ADD || lastMode == MANUALLY_ADDED_DIVE) {
|
||||
// more clean up
|
||||
updateDiveInfo(selected_dive);
|
||||
mainWindow()->showProfile();
|
||||
MainWindow::instance()->showProfile();
|
||||
// we already reloaded the divelist above, so don't recreate it or we'll lose the selection
|
||||
mainWindow()->refreshDisplay(false);
|
||||
MainWindow::instance()->refreshDisplay(false);
|
||||
DivePlannerPointsModel::instance()->setPlanMode(DivePlannerPointsModel::NOTHING);
|
||||
}
|
||||
mainWindow()->dive_list()->setFocus();
|
||||
MainWindow::instance()->dive_list()->setFocus();
|
||||
}
|
||||
#undef EDIT_TEXT2
|
||||
|
||||
|
@ -888,9 +888,9 @@ void MainTab::on_location_textChanged(const QString& text)
|
|||
{
|
||||
if (editMode == NONE)
|
||||
return;
|
||||
if (editMode == TRIP && mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||
if (editMode == TRIP && MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
|
||||
// we are editing a trip
|
||||
dive_trip_t *currentTrip = *mainWindow()->dive_list()->selectedTrips().begin();
|
||||
dive_trip_t *currentTrip = *MainWindow::instance()->dive_list()->selectedTrips().begin();
|
||||
EDIT_TEXT(currentTrip->location, text);
|
||||
} else if (editMode == DIVE || editMode == ADD || editMode == MANUALLY_ADDED_DIVE) {
|
||||
if (!ui.coordinates->isModified() ||
|
||||
|
@ -911,7 +911,7 @@ void MainTab::on_location_textChanged(const QString& text)
|
|||
}
|
||||
}
|
||||
EDIT_SELECTED_DIVES( EDIT_TEXT(mydive->location, text) );
|
||||
mainWindow()->globe()->repopulateLabels();
|
||||
MainWindow::instance()->globe()->repopulateLabels();
|
||||
}
|
||||
markChangedWidget(ui.location);
|
||||
}
|
||||
|
@ -926,9 +926,9 @@ void MainTab::on_notes_textChanged()
|
|||
{
|
||||
if (editMode == NONE)
|
||||
return;
|
||||
if (editMode == TRIP && mainWindow() && mainWindow()->dive_list()->selectedTrips().count() == 1) {
|
||||
if (editMode == TRIP && MainWindow::instance() && MainWindow::instance()->dive_list()->selectedTrips().count() == 1) {
|
||||
// we are editing a trip
|
||||
dive_trip_t *currentTrip = *mainWindow()->dive_list()->selectedTrips().begin();
|
||||
dive_trip_t *currentTrip = *MainWindow::instance()->dive_list()->selectedTrips().begin();
|
||||
EDIT_TEXT(currentTrip->notes, ui.notes->toPlainText());
|
||||
} else if (editMode == DIVE || editMode == ADD || editMode == MANUALLY_ADDED_DIVE) {
|
||||
EDIT_SELECTED_DIVES( EDIT_TEXT(mydive->notes, ui.notes->toPlainText()) );
|
||||
|
|
|
@ -36,12 +36,7 @@
|
|||
#include "printdialog.h"
|
||||
#include "divelogimportdialog.h"
|
||||
|
||||
static MainWindow* instance = 0;
|
||||
|
||||
MainWindow* mainWindow()
|
||||
{
|
||||
return instance;
|
||||
}
|
||||
MainWindow *MainWindow::m_Instance = NULL;
|
||||
|
||||
MainWindow::MainWindow() : QMainWindow(),
|
||||
actionNextDive(0),
|
||||
|
@ -49,7 +44,7 @@ MainWindow::MainWindow() : QMainWindow(),
|
|||
helpView(0),
|
||||
state(VIEWALL)
|
||||
{
|
||||
instance = this;
|
||||
m_Instance = this;
|
||||
ui.setupUi(this);
|
||||
setWindowIcon(QIcon(":subsurface-icon"));
|
||||
connect(ui.ListWidget, SIGNAL(currentDiveChanged(int)), this, SLOT(current_dive_changed(int)));
|
||||
|
@ -79,6 +74,16 @@ MainWindow::MainWindow() : QMainWindow(),
|
|||
#endif
|
||||
}
|
||||
|
||||
MainWindow::~MainWindow()
|
||||
{
|
||||
m_Instance = NULL;
|
||||
}
|
||||
|
||||
MainWindow *MainWindow::instance()
|
||||
{
|
||||
return m_Instance;
|
||||
}
|
||||
|
||||
// this gets called after we download dives from a divecomputer
|
||||
void MainWindow::refreshDisplay(bool recreateDiveList)
|
||||
{
|
||||
|
|
|
@ -41,6 +41,8 @@ public:
|
|||
enum CurrentState{ VIEWALL, GLOBE_MAXIMIZED, INFO_MAXIMIZED, PROFILE_MAXIMIZED, LIST_MAXIMIZED};
|
||||
|
||||
MainWindow();
|
||||
virtual ~MainWindow();
|
||||
static MainWindow *instance();
|
||||
ProfileGraphicsView *graphics();
|
||||
MainTab *information();
|
||||
DiveListView *dive_list();
|
||||
|
@ -135,6 +137,7 @@ private:
|
|||
UserManual *helpView;
|
||||
CurrentState state;
|
||||
QString filter();
|
||||
static MainWindow *m_Instance;
|
||||
bool askSaveChanges();
|
||||
void writeSettings();
|
||||
void redrawProfile();
|
||||
|
|
|
@ -334,7 +334,7 @@ void CylindersModel::remove(const QModelIndex& index)
|
|||
}
|
||||
cylinder_t *cyl = ¤t->cylinder[index.row()];
|
||||
if (DivePlannerPointsModel::instance()->tankInUse(cyl->gasmix.o2.permille, cyl->gasmix.he.permille)) {
|
||||
QMessageBox::warning(mainWindow(), TITLE_OR_TEXT(
|
||||
QMessageBox::warning(MainWindow::instance(), TITLE_OR_TEXT(
|
||||
tr("Cylinder cannot be removed"),
|
||||
tr("This gas in use. Only cylinders that are not used in the dive can be removed.")),
|
||||
QMessageBox::Ok);
|
||||
|
|
|
@ -8,7 +8,7 @@
|
|||
|
||||
PreferencesDialog* PreferencesDialog::instance()
|
||||
{
|
||||
static PreferencesDialog *dialog = new PreferencesDialog(mainWindow());
|
||||
static PreferencesDialog *dialog = new PreferencesDialog(MainWindow::instance());
|
||||
dialog->setAttribute(Qt::WA_QuitOnClose, false);
|
||||
LanguageModel::instance();
|
||||
return dialog;
|
||||
|
@ -209,7 +209,7 @@ void PreferencesDialog::syncSettings()
|
|||
bool useSystemLang = s.value("UseSystemLanguage", true).toBool();
|
||||
if (useSystemLang != ui.languageSystemDefault->isChecked() ||
|
||||
(!useSystemLang && s.value("UiLanguage").toString() != ui.languageView->currentIndex().data(Qt::UserRole))) {
|
||||
QMessageBox::warning(mainWindow(), tr("Restart required"),
|
||||
QMessageBox::warning(MainWindow::instance(), tr("Restart required"),
|
||||
tr("To correctly load a new language you must restart Subsurface."));
|
||||
}
|
||||
s.setValue("UseSystemLanguage", ui.languageSystemDefault->isChecked());
|
||||
|
|
|
@ -131,7 +131,7 @@ void PrintLayout::printProfileDives(int divesPerRow, int divesPerColumn)
|
|||
painter.scale(scaleX, scaleY);
|
||||
|
||||
// setup the profile widget
|
||||
ProfileGraphicsView *profile = mainWindow()->graphics();
|
||||
ProfileGraphicsView *profile = MainWindow::instance()->graphics();
|
||||
const int profileFrameStyle = profile->frameStyle();
|
||||
profile->setFrameStyle(QFrame::NoFrame);
|
||||
profile->clear();
|
||||
|
|
|
@ -88,7 +88,7 @@ ProfileWidget2::ProfileWidget2(QWidget *parent) :
|
|||
#ifndef QT_NO_DEBUG
|
||||
QTableView *diveDepthTableView = new QTableView();
|
||||
diveDepthTableView->setModel(dataModel);
|
||||
mainWindow()->tabWidget()->addTab(diveDepthTableView, "Depth Model");
|
||||
MainWindow::instance()->tabWidget()->addTab(diveDepthTableView, "Depth Model");
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
@ -196,7 +196,7 @@ void ProfileGraphicsView::changeGas()
|
|||
add_gas_switch_event(current_dive, current_dc, seconds, get_gasidx(current_dive, o2, he));
|
||||
// this means we potentially have a new tank that is being used and needs to be shown
|
||||
fixup_dive(current_dive);
|
||||
mainWindow()->information()->updateDiveInfo(selected_dive);
|
||||
MainWindow::instance()->information()->updateDiveInfo(selected_dive);
|
||||
mark_divelist_changed(true);
|
||||
plot(current_dive, true);
|
||||
}
|
||||
|
@ -207,7 +207,7 @@ void ProfileGraphicsView::hideEvents()
|
|||
EventItem *item = static_cast<EventItem*>(action->data().value<void*>());
|
||||
struct event *event = item->ev;
|
||||
|
||||
if (QMessageBox::question(mainWindow(), TITLE_OR_TEXT(
|
||||
if (QMessageBox::question(MainWindow::instance(), TITLE_OR_TEXT(
|
||||
tr("Hide events"),
|
||||
tr("Hide all %1 events?").arg(event->name)),
|
||||
QMessageBox::Ok | QMessageBox::Cancel) == QMessageBox::Ok) {
|
||||
|
@ -237,7 +237,7 @@ void ProfileGraphicsView::removeEvent()
|
|||
EventItem *item = static_cast<EventItem*>(action->data().value<void*>());
|
||||
struct event *event = item->ev;
|
||||
|
||||
if (QMessageBox::question(mainWindow(), TITLE_OR_TEXT(
|
||||
if (QMessageBox::question(MainWindow::instance(), TITLE_OR_TEXT(
|
||||
tr("Remove the selected event?"),
|
||||
tr("%1 @ %2:%3").arg(event->name)
|
||||
.arg(event->time.seconds / 60)
|
||||
|
@ -375,13 +375,13 @@ void ProfileGraphicsView::plot(struct dive *d, bool forceRedraw)
|
|||
diveId = d ? d->id : 0;
|
||||
diveDC = d ? dc : NULL;
|
||||
|
||||
if (!isVisible() || !d || !mainWindow()) {
|
||||
if (!isVisible() || !d || !MainWindow::instance()) {
|
||||
return;
|
||||
}
|
||||
setBackgroundBrush(getColor(BACKGROUND));
|
||||
|
||||
// best place to put the focus stealer code.
|
||||
setFocusProxy(mainWindow()->dive_list());
|
||||
setFocusProxy(MainWindow::instance()->dive_list());
|
||||
scene()->setSceneRect(0,0, viewport()->width()-50, viewport()->height()-50);
|
||||
|
||||
toolTip = new ToolTipItem();
|
||||
|
@ -546,7 +546,7 @@ void ProfileGraphicsView::addControlItems(struct dive *d)
|
|||
if (defaultDC == "manually added dive" || defaultDC == "planned dive") {
|
||||
QAction *editAction = new QAction(QIcon(":edit"), tr("Edit"), this);
|
||||
toolBar->addAction(editAction);
|
||||
connect(editAction, SIGNAL(triggered()), mainWindow(), SLOT(editCurrentDive()));
|
||||
connect(editAction, SIGNAL(triggered()), MainWindow::instance(), SLOT(editCurrentDive()));
|
||||
}
|
||||
toolBarProxy = scene()->addWidget(toolBar);
|
||||
toolBarProxy->setPos(mapToScene(TOOLBAR_POS));
|
||||
|
@ -1628,7 +1628,7 @@ GraphicsTextEditor::GraphicsTextEditor(QGraphicsItem* parent): QGraphicsTextItem
|
|||
void GraphicsTextEditor::mouseDoubleClickEvent(QGraphicsSceneMouseEvent* event)
|
||||
{
|
||||
// Remove the proxy filter so we can focus here.
|
||||
mainWindow()->graphics()->setFocusProxy(0);
|
||||
MainWindow::instance()->graphics()->setFocusProxy(0);
|
||||
setTextInteractionFlags(Qt::TextEditorInteraction | Qt::TextEditable);
|
||||
}
|
||||
|
||||
|
@ -1637,7 +1637,7 @@ void GraphicsTextEditor::keyReleaseEvent(QKeyEvent* event)
|
|||
if (event->key() == Qt::Key_Enter || event->key() == Qt::Key_Return) {
|
||||
setTextInteractionFlags(Qt::NoTextInteraction);
|
||||
emit editingFinished( toPlainText() );
|
||||
mainWindow()->graphics()->setFocusProxy(mainWindow()->dive_list());
|
||||
MainWindow::instance()->graphics()->setFocusProxy(MainWindow::instance()->dive_list());
|
||||
return;
|
||||
}
|
||||
emit textChanged( toPlainText() );
|
||||
|
|
|
@ -107,7 +107,7 @@ void MinMaxAvgWidget::setMinimum(const QString& minimum)
|
|||
|
||||
RenumberDialog* RenumberDialog::instance()
|
||||
{
|
||||
static RenumberDialog* self = new RenumberDialog(mainWindow());
|
||||
static RenumberDialog* self = new RenumberDialog(MainWindow::instance());
|
||||
return self;
|
||||
}
|
||||
|
||||
|
@ -127,7 +127,7 @@ RenumberDialog::RenumberDialog(QWidget *parent): QDialog(parent)
|
|||
|
||||
ShiftTimesDialog* ShiftTimesDialog::instance()
|
||||
{
|
||||
static ShiftTimesDialog* self = new ShiftTimesDialog(mainWindow());
|
||||
static ShiftTimesDialog* self = new ShiftTimesDialog(MainWindow::instance());
|
||||
return self;
|
||||
}
|
||||
|
||||
|
@ -144,9 +144,9 @@ void ShiftTimesDialog::buttonClicked(QAbstractButton* button)
|
|||
shift_times(amount);
|
||||
sort_table(&dive_table);
|
||||
mark_divelist_changed(true);
|
||||
mainWindow()->dive_list()->rememberSelection();
|
||||
mainWindow()->refreshDisplay();
|
||||
mainWindow()->dive_list()->restoreSelection();
|
||||
MainWindow::instance()->dive_list()->rememberSelection();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
MainWindow::instance()->dive_list()->restoreSelection();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -333,9 +333,9 @@ void SubsurfaceWebServices::buttonClicked(QAbstractButton* button)
|
|||
/* now merge the data in the gps_location table into the dive_table */
|
||||
if (merge_locations_into_dives()) {
|
||||
mark_divelist_changed(true);
|
||||
mainWindow()->globe()->repopulateLabels();
|
||||
mainWindow()->globe()->centerOn(current_dive);
|
||||
mainWindow()->information()->updateDiveInfo(selected_dive);
|
||||
MainWindow::instance()->globe()->repopulateLabels();
|
||||
MainWindow::instance()->globe()->centerOn(current_dive);
|
||||
MainWindow::instance()->information()->updateDiveInfo(selected_dive);
|
||||
}
|
||||
|
||||
/* store last entered uid in config */
|
||||
|
@ -558,7 +558,7 @@ out:
|
|||
|
||||
DivelogsDeWebServices* DivelogsDeWebServices::instance()
|
||||
{
|
||||
static DivelogsDeWebServices *self = new DivelogsDeWebServices(mainWindow());
|
||||
static DivelogsDeWebServices *self = new DivelogsDeWebServices(MainWindow::instance());
|
||||
self->setAttribute(Qt::WA_QuitOnClose, false);
|
||||
return self;
|
||||
}
|
||||
|
@ -586,7 +586,7 @@ void DivelogsDeWebServices::prepareDivesForUpload()
|
|||
return;
|
||||
}
|
||||
}
|
||||
mainWindow()->showError(errorText);
|
||||
MainWindow::instance()->showError(errorText);
|
||||
}
|
||||
|
||||
void DivelogsDeWebServices::uploadDives(QIODevice *dldContent)
|
||||
|
@ -855,11 +855,11 @@ void DivelogsDeWebServices::buttonClicked(QAbstractButton* button)
|
|||
char *error = NULL;
|
||||
parse_file(QFile::encodeName(zipFile.fileName()), &error);
|
||||
if (error != NULL) {
|
||||
mainWindow()->showError(error);
|
||||
MainWindow::instance()->showError(error);
|
||||
free(error);
|
||||
}
|
||||
process_dives(true, false);
|
||||
mainWindow()->refreshDisplay();
|
||||
MainWindow::instance()->refreshDisplay();
|
||||
|
||||
/* store last entered user/pass in config */
|
||||
QSettings s;
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
#include <QFileDialog>
|
||||
#include <QDebug>
|
||||
|
||||
#define tr(_arg) mainWindow()->information()->tr(_arg)
|
||||
#define tr(_arg) MainWindow::instance()->information()->tr(_arg)
|
||||
DiveComputerList::DiveComputerList()
|
||||
{
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue