diff --git a/main.cpp b/main.cpp index a6e39ec53..f12d293d6 100644 --- a/main.cpp +++ b/main.cpp @@ -52,9 +52,10 @@ int main(int argc, char **argv) } } if (no_filenames) { - files.push_back( QString(prefs.default_filename) ); + QString defaultFile(prefs.default_filename); + if (!defaultFile.isEmpty()) + files.push_back( QString(prefs.default_filename) ); } - parse_xml_exit(); subsurface_command_line_exit(&argc, &argv); mainWindow()->loadFiles(files); diff --git a/pref.h b/pref.h index 8098c2799..8d181f20a 100644 --- a/pref.h +++ b/pref.h @@ -6,17 +6,6 @@ extern "C" { #endif /* can't use 'bool' for the boolean values - different size in C and C++ */ -typedef struct { - short cylinder; - short temperature; - short totalweight; - short suit; - short nitrox; - short sac; - short otu; - short maxcns; -} visible_cols_t; - typedef struct { short po2; short pn2; @@ -30,7 +19,6 @@ struct preferences { const char *divelist_font; const char *default_filename; double font_size; - visible_cols_t visible_cols; partial_pressure_graphs_t pp_graphs; short mod; double mod_ppO2; diff --git a/prefs.c b/prefs.c index d1073c88f..b2cbea751 100644 --- a/prefs.c +++ b/prefs.c @@ -81,15 +81,6 @@ void save_preferences(void) SAVE_UNIT("fahrenheit", temperature, FAHRENHEIT); SAVE_UNIT("lbs", weight, LBS); - SAVE_BOOL("TEMPERATURE", visible_cols.temperature); - SAVE_BOOL("TOTALWEIGHT", visible_cols.totalweight); - SAVE_BOOL("SUIT", visible_cols.suit); - SAVE_BOOL("CYLINDER", visible_cols.cylinder); - SAVE_BOOL("NITROX", visible_cols.nitrox); - SAVE_BOOL("SAC", visible_cols.sac); - SAVE_BOOL("OTU", visible_cols.otu); - SAVE_BOOL("MAXCNS", visible_cols.maxcns); - SAVE_STRING("divelist_font", divelist_font); SAVE_BOOL("po2graph", pp_graphs.po2); @@ -144,14 +135,6 @@ void load_preferences(void) GET_UNIT("lbs", weight, KG, LBS); /* an unset key is 'default' */ - GET_BOOL("CYLINDER", visible_cols.cylinder); - GET_BOOL("TEMPERATURE", visible_cols.temperature); - GET_BOOL("TOTALWEIGHT", visible_cols.totalweight); - GET_BOOL("SUIT", visible_cols.suit); - GET_BOOL("NITROX", visible_cols.nitrox); - GET_BOOL("OTU", visible_cols.otu); - GET_BOOL("MAXCNS", visible_cols.maxcns); - GET_BOOL("SAC", visible_cols.sac); GET_BOOL("po2graph", pp_graphs.po2); GET_BOOL("pn2graph", pp_graphs.pn2); GET_BOOL("phegraph", pp_graphs.phe); diff --git a/qt-ui/divelistview.cpp b/qt-ui/divelistview.cpp index 0996130c4..6ed77fb19 100644 --- a/qt-ui/divelistview.cpp +++ b/qt-ui/divelistview.cpp @@ -192,7 +192,16 @@ void DiveListView::reloadHeaderActions() QString title = QString("%1").arg(model()->headerData(i, Qt::Horizontal).toString()); QString settingName = QString("showColumn%1").arg(i); QAction *a = new QAction(title, header()); - bool shown = s.value(settingName, true).toBool(); + bool showHeaderFirstRun = !( + i == DiveTripModel::MAXCNS + || i == DiveTripModel::NITROX + || i == DiveTripModel::OTU + || i == DiveTripModel::TEMPERATURE + || i == DiveTripModel::TOTALWEIGHT + || i == DiveTripModel::SUIT + || i == DiveTripModel::CYLINDER + || i == DiveTripModel::SAC ); + bool shown = s.value(settingName, showHeaderFirstRun).toBool(); a->setCheckable(true); a->setChecked(shown); a->setProperty("index", i); diff --git a/qt-ui/mainwindow.cpp b/qt-ui/mainwindow.cpp index 6beee5cf7..84b1bc50b 100644 --- a/qt-ui/mainwindow.cpp +++ b/qt-ui/mainwindow.cpp @@ -16,6 +16,7 @@ #include #include #include +#include #include "divelistview.h" #include "starwidget.h" @@ -504,11 +505,30 @@ void MainWindow::initialUiSetup() int i; settings.beginGroup("MainWindow"); - QSize sz = settings.value("size").value(); + QSize sz = settings.value("size", qApp->desktop()->size()).value(); resize(sz); - ui.mainSplitter->restoreState(settings.value("mainSplitter").toByteArray()); - ui.infoProfileSplitter->restoreState(settings.value("infoProfileSplitter").toByteArray()); - ui.listGlobeSplitter->restoreState(settings.value("listGlobeSplitter").toByteArray()); + + if (settings.value("mainSplitter").isValid()){ + ui.mainSplitter->restoreState(settings.value("mainSplitter").toByteArray()); + ui.infoProfileSplitter->restoreState(settings.value("infoProfileSplitter").toByteArray()); + ui.listGlobeSplitter->restoreState(settings.value("listGlobeSplitter").toByteArray()); + } else { + QList mainSizes; + mainSizes.append( qApp->desktop()->size().height() * 0.7 ); + mainSizes.append( qApp->desktop()->size().height() * 0.3 ); + ui.mainSplitter->setSizes( mainSizes ); + + QList infoProfileSizes; + infoProfileSizes.append( qApp->desktop()->size().width() * 0.3 ); + infoProfileSizes.append( qApp->desktop()->size().width() * 0.7 ); + ui.infoProfileSplitter->setSizes(infoProfileSizes); + + QList listGlobeSizes; + listGlobeSizes.append( qApp->desktop()->size().width() * 0.7 ); + listGlobeSizes.append( qApp->desktop()->size().width() * 0.3 ); + ui.listGlobeSplitter->setSizes(listGlobeSizes); + } + settings.endGroup(); settings.beginGroup("ListWidget"); @@ -550,16 +570,6 @@ void MainWindow::readSettings() } GET_UNIT("vertical_speed_time", vertical_speed_time, units::MINUTES, units::SECONDS); s.endGroup(); - s.beginGroup("DisplayListColumns"); - GET_BOOL("CYLINDER", visible_cols.cylinder); - GET_BOOL("TEMPERATURE", visible_cols.temperature); - GET_BOOL("TOTALWEIGHT", visible_cols.totalweight); - GET_BOOL("SUIT", visible_cols.suit); - GET_BOOL("NITROX", visible_cols.nitrox); - GET_BOOL("OTU", visible_cols.otu); - GET_BOOL("MAXCNS", visible_cols.maxcns); - GET_BOOL("SAC", visible_cols.sac); - s.endGroup(); s.beginGroup("TecDetails"); GET_BOOL("po2graph", pp_graphs.po2); GET_BOOL("pn2graph", pp_graphs.pn2); @@ -618,16 +628,6 @@ void MainWindow::writeSettings() SAVE_VALUE("weight", units.weight); SAVE_VALUE("vertical_speed_time", units.vertical_speed_time); settings.endGroup(); - settings.beginGroup("DisplayListColumns"); - SAVE_VALUE("TEMPERATURE", visible_cols.temperature); - SAVE_VALUE("TOTALWEIGHT", visible_cols.totalweight); - SAVE_VALUE("SUIT", visible_cols.suit); - SAVE_VALUE("CYLINDER", visible_cols.cylinder); - SAVE_VALUE("NITROX", visible_cols.nitrox); - SAVE_VALUE("SAC", visible_cols.sac); - SAVE_VALUE("OTU", visible_cols.otu); - SAVE_VALUE("MAXCNS", visible_cols.maxcns); - settings.endGroup(); settings.beginGroup("TecDetails"); SAVE_VALUE("po2graph", pp_graphs.po2); SAVE_VALUE("pn2graph", pp_graphs.pn2); @@ -751,6 +751,9 @@ void MainWindow::setTitle(enum MainWindowTitleFormat format) void MainWindow::importFiles(const QStringList fileNames) { + if (fileNames.isEmpty()) + return; + QByteArray fileNamePtr; char *error = NULL; for (int i = 0; i < fileNames.size(); ++i) { @@ -774,6 +777,9 @@ void MainWindow::importFiles(const QStringList fileNames) void MainWindow::loadFiles(const QStringList fileNames) { + if (fileNames.isEmpty()) + return; + char *error = NULL; QByteArray fileNamePtr; diff --git a/subsurfacestartup.c b/subsurfacestartup.c index 954840928..741606ee4 100644 --- a/subsurfacestartup.c +++ b/subsurfacestartup.c @@ -6,7 +6,6 @@ struct preferences prefs; struct preferences default_prefs = { .units = SI_UNITS, .unit_system = METRIC, - .visible_cols = { TRUE, FALSE, }, .pp_graphs = { .po2 = FALSE, .pn2 = FALSE,