Make the classes generated by uic be real members of our classes

This means we don't have to new/delete them, which is a waste of
overhead.

Signed-off-by: Thiago Macieira <thiago@macieira.org>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Thiago Macieira 2013-10-03 11:54:25 -07:00 committed by Dirk Hohndel
parent f0f76056ac
commit 8e81d3f100
22 changed files with 563 additions and 572 deletions

View file

@ -13,17 +13,16 @@ SubsurfaceAbout *SubsurfaceAbout::instance()
}
SubsurfaceAbout::SubsurfaceAbout(QWidget* parent, Qt::WindowFlags f)
: ui( new Ui::SubsurfaceAbout())
{
ui->setupUi(this);
ui->aboutLabel->setText(tr("<span style='font-size: 18pt; font-weight: bold;'>" \
ui.setupUi(this);
ui.aboutLabel->setText(tr("<span style='font-size: 18pt; font-weight: bold;'>" \
"Subsurface " VERSION_STRING "</span><br><br>" \
"Multi-platform divelog software in C<br>" \
"<span style='font-size: 8pt'>Linus Torvalds, Dirk Hohndel, and others, 2011, 2012, 2013</span>"));
licenseButton = new QPushButton(tr("&License"));
websiteButton = new QPushButton(tr("&Website"));
ui->buttonBox->addButton(licenseButton, QDialogButtonBox::ActionRole);
ui->buttonBox->addButton(websiteButton, QDialogButtonBox::ActionRole);
ui.buttonBox->addButton(licenseButton, QDialogButtonBox::ActionRole);
ui.buttonBox->addButton(websiteButton, QDialogButtonBox::ActionRole);
connect(licenseButton, SIGNAL(clicked(bool)), this, SLOT(licenseClicked()));
connect(websiteButton, SIGNAL(clicked(bool)), this, SLOT(websiteClicked()));
}

View file

@ -17,7 +17,7 @@ private:
explicit SubsurfaceAbout(QWidget* parent = 0, Qt::WindowFlags f = 0);
QPushButton *licenseButton;
QPushButton *websiteButton;
Ui::SubsurfaceAbout *ui;
Ui::SubsurfaceAbout ui;
};
#endif

View file

@ -6,12 +6,11 @@
#include "../helpers.h"
DiveComputerManagementDialog::DiveComputerManagementDialog(QWidget* parent, Qt::WindowFlags f): QDialog(parent, f),
ui( new Ui::DiveComputerManagementDialog()),
model(0)
{
ui->setupUi(this);
ui.setupUi(this);
init();
connect(ui->tableView, SIGNAL(clicked(QModelIndex)), this, SLOT(tryRemove(QModelIndex)));
connect(ui.tableView, SIGNAL(clicked(QModelIndex)), this, SLOT(tryRemove(QModelIndex)));
}
void DiveComputerManagementDialog::init()
@ -19,7 +18,7 @@ void DiveComputerManagementDialog::init()
if (model)
delete model;
model = new DiveComputerModel(dcList.dcMap);
ui->tableView->setModel(model);
ui.tableView->setModel(model);
}
DiveComputerManagementDialog* DiveComputerManagementDialog::instance()
@ -32,8 +31,8 @@ DiveComputerManagementDialog* DiveComputerManagementDialog::instance()
void DiveComputerManagementDialog::update()
{
model->update();
ui->tableView->resizeColumnsToContents();
ui->tableView->setColumnWidth(DiveComputerModel::REMOVE, 22);
ui.tableView->resizeColumnsToContents();
ui.tableView->setColumnWidth(DiveComputerModel::REMOVE, 22);
layout()->activate();
}

View file

@ -21,7 +21,7 @@ public slots:
private:
explicit DiveComputerManagementDialog(QWidget* parent = 0, Qt::WindowFlags f = 0);
Ui::DiveComputerManagementDialog *ui;
Ui::DiveComputerManagementDialog ui;
DiveComputerModel *model;
};

View file

@ -855,37 +855,37 @@ void Button::mousePressEvent(QGraphicsSceneMouseEvent* event)
emit clicked();
}
DivePlannerWidget::DivePlannerWidget(QWidget* parent, Qt::WindowFlags f): QWidget(parent, f), ui(new Ui::DivePlanner())
DivePlannerWidget::DivePlannerWidget(QWidget* parent, Qt::WindowFlags f): QWidget(parent, f)
{
ui->setupUi(this);
ui->tableWidget->setTitle(tr("Dive Planner Points"));
ui->tableWidget->setModel(DivePlannerPointsModel::instance());
ui->tableWidget->view()->setItemDelegateForColumn(DivePlannerPointsModel::GAS, new AirTypesDelegate(this));
ui.setupUi(this);
ui.tableWidget->setTitle(tr("Dive Planner Points"));
ui.tableWidget->setModel(DivePlannerPointsModel::instance());
ui.tableWidget->view()->setItemDelegateForColumn(DivePlannerPointsModel::GAS, new AirTypesDelegate(this));
connect(ui->tableWidget, SIGNAL(addButtonClicked()), DivePlannerPointsModel::instance(), SLOT(addStop()));
connect(ui->startTime, SIGNAL(timeChanged(QTime)), this, SLOT(startTimeChanged(QTime)));
connect(ui->ATMPressure, SIGNAL(textChanged(QString)), this, SLOT(atmPressureChanged(QString)));
connect(ui->bottomSAC, SIGNAL(textChanged(QString)), this, SLOT(bottomSacChanged(QString)));
connect(ui->decoStopSAC, SIGNAL(textChanged(QString)), this, SLOT(decoSacChanged(QString)));
connect(ui->highGF, SIGNAL(textChanged(QString)), this, SLOT(gfhighChanged(QString)));
connect(ui->lowGF, SIGNAL(textChanged(QString)), this, SLOT(gflowChanged(QString)));
connect(ui->highGF, SIGNAL(textChanged(QString)), this, SLOT(gfhighChanged(QString)));
connect(ui->lastStop, SIGNAL(toggled(bool)), this, SLOT(lastStopChanged(bool)));
connect(ui.tableWidget, SIGNAL(addButtonClicked()), DivePlannerPointsModel::instance(), SLOT(addStop()));
connect(ui.startTime, SIGNAL(timeChanged(QTime)), this, SLOT(startTimeChanged(QTime)));
connect(ui.ATMPressure, SIGNAL(textChanged(QString)), this, SLOT(atmPressureChanged(QString)));
connect(ui.bottomSAC, SIGNAL(textChanged(QString)), this, SLOT(bottomSacChanged(QString)));
connect(ui.decoStopSAC, SIGNAL(textChanged(QString)), this, SLOT(decoSacChanged(QString)));
connect(ui.highGF, SIGNAL(textChanged(QString)), this, SLOT(gfhighChanged(QString)));
connect(ui.lowGF, SIGNAL(textChanged(QString)), this, SLOT(gflowChanged(QString)));
connect(ui.highGF, SIGNAL(textChanged(QString)), this, SLOT(gfhighChanged(QString)));
connect(ui.lastStop, SIGNAL(toggled(bool)), this, SLOT(lastStopChanged(bool)));
// Creating the plan
connect(ui->buttonBox, SIGNAL(accepted()), plannerModel, SLOT(createPlan()));
connect(ui->buttonBox, SIGNAL(rejected()), plannerModel, SLOT(cancelPlan()));
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()));
/* set defaults. */
ui->startTime->setTime( QTime(1, 0) );
ui->ATMPressure->setText( "1013" );
ui->bottomSAC->setText("20");
ui->decoStopSAC->setText("17");
ui->lowGF->setText("30");
ui->highGF->setText("75");
ui.startTime->setTime( QTime(1, 0) );
ui.ATMPressure->setText( "1013" );
ui.bottomSAC->setText("20");
ui.decoStopSAC->setText("17");
ui.lowGF->setText("30");
ui.highGF->setText("75");
setMinimumWidth(0);
setMinimumHeight(0);

View file

@ -216,7 +216,7 @@ public slots:
void gfhighChanged(const QString& gfhigh);
void lastStopChanged(bool checked);
private:
Ui::DivePlanner *ui;
Ui::DivePlanner ui;
};
#endif

View file

@ -43,28 +43,28 @@ DownloadFromDCWidget *DownloadFromDCWidget::instance()
}
DownloadFromDCWidget::DownloadFromDCWidget(QWidget* parent, Qt::WindowFlags f) :
QDialog(parent, f), ui(new Ui::DownloadFromDiveComputer), thread(0), timer(new QTimer(this)),
QDialog(parent, f), thread(0), timer(new QTimer(this)),
currentState(INITIAL)
{
ui->setupUi(this);
ui->progressBar->hide();
ui->progressBar->setMinimum(0);
ui->progressBar->setMaximum(100);
ui.setupUi(this);
ui.progressBar->hide();
ui.progressBar->setMinimum(0);
ui.progressBar->setMaximum(100);
fill_device_list();
fill_computer_list();
vendorModel = new QStringListModel(vendorList);
ui->vendor->setModel(vendorModel);
ui.vendor->setModel(vendorModel);
if (default_dive_computer_vendor) {
ui->vendor->setCurrentIndex(ui->vendor->findText(default_dive_computer_vendor));
ui.vendor->setCurrentIndex(ui.vendor->findText(default_dive_computer_vendor));
productModel = new QStringListModel(productList[default_dive_computer_vendor]);
ui->product->setModel(productModel);
ui.product->setModel(productModel);
if (default_dive_computer_product)
ui->product->setCurrentIndex(ui->product->findText(default_dive_computer_product));
ui.product->setCurrentIndex(ui.product->findText(default_dive_computer_product));
}
if (default_dive_computer_device)
ui->device->setEditText(default_dive_computer_device);
ui.device->setEditText(default_dive_computer_device);
timer->setInterval(200);
connect(timer, SIGNAL(timeout()), this, SLOT(updateProgressBar()));
@ -81,7 +81,7 @@ void DownloadFromDCWidget::runDialog()
void DownloadFromDCWidget::updateProgressBar()
{
ui->progressBar->setValue(progress_bar_fraction *100);
ui.progressBar->setValue(progress_bar_fraction *100);
}
void DownloadFromDCWidget::updateState(states state)
@ -91,7 +91,7 @@ void DownloadFromDCWidget::updateState(states state)
if (state == INITIAL) {
fill_device_list();
ui->progressBar->hide();
ui.progressBar->hide();
markChildrenAsEnabled();
timer->stop();
}
@ -99,7 +99,7 @@ void DownloadFromDCWidget::updateState(states state)
// tries to cancel an on going download
else if (currentState == DOWNLOADING && state == CANCELLING) {
import_thread_cancelled = true;
ui->cancel->setEnabled(false);
ui.cancel->setEnabled(false);
}
// user pressed cancel but the application isn't doing anything.
@ -114,15 +114,15 @@ void DownloadFromDCWidget::updateState(states state)
else if (currentState == CANCELLING && (state == DONE || state == CANCELLED)) {
timer->stop();
state = CANCELLED;
ui->progressBar->setValue(0);
ui->progressBar->hide();
ui.progressBar->setValue(0);
ui.progressBar->hide();
markChildrenAsEnabled();
}
// DOWNLOAD is finally done, close the dialog and go back to the main window
else if (currentState == DOWNLOADING && state == DONE) {
timer->stop();
ui->progressBar->setValue(100);
ui.progressBar->setValue(100);
markChildrenAsEnabled();
accept();
}
@ -130,8 +130,8 @@ void DownloadFromDCWidget::updateState(states state)
// DOWNLOAD is started.
else if (state == DOWNLOADING) {
timer->start();
ui->progressBar->setValue(0);
ui->progressBar->show();
ui.progressBar->setValue(0);
ui.progressBar->show();
markChildrenAsDisabled();
}
@ -140,8 +140,8 @@ void DownloadFromDCWidget::updateState(states state)
QMessageBox::critical(this, tr("Error"), this->thread->error, QMessageBox::Ok);
markChildrenAsEnabled();
ui->progressBar->hide();
ui->ok->setText(tr("retry"));
ui.progressBar->hide();
ui.ok->setText(tr("retry"));
}
// properly updating the widget state
@ -150,12 +150,12 @@ void DownloadFromDCWidget::updateState(states state)
void DownloadFromDCWidget::on_vendor_currentIndexChanged(const QString& vendor)
{
QAbstractItemModel *currentModel = ui->product->model();
QAbstractItemModel *currentModel = ui.product->model();
if (!currentModel)
return;
productModel = new QStringListModel(productList[vendor]);
ui->product->setModel(productModel);
ui.product->setModel(productModel);
// Memleak - but deleting gives me a crash.
//currentModel->deleteLater();
@ -219,12 +219,12 @@ void DownloadFromDCWidget::on_ok_clicked()
thread->deleteLater();
}
data.devname = strdup(ui->device->currentText().toUtf8().data());
data.vendor = strdup(ui->vendor->currentText().toUtf8().data());
data.product = strdup(ui->product->currentText().toUtf8().data());
data.devname = strdup(ui.device->currentText().toUtf8().data());
data.vendor = strdup(ui.vendor->currentText().toUtf8().data());
data.product = strdup(ui.product->currentText().toUtf8().data());
data.descriptor = descriptorLookup[ui->vendor->currentText() + ui->product->currentText()];
data.force_download = ui->forceDownload->isChecked();
data.descriptor = descriptorLookup[ui.vendor->currentText() + ui.product->currentText()];
data.force_download = ui.forceDownload->isChecked();
data.deviceid = data.diveid = 0;
set_default_dive_computer(data.vendor, data.product);
set_default_dive_computer_device(data.devname);
@ -242,7 +242,7 @@ void DownloadFromDCWidget::on_ok_clicked()
bool DownloadFromDCWidget::preferDownloaded()
{
return ui->preferDownloaded->isChecked();
return ui.preferDownloaded->isChecked();
}
void DownloadFromDCWidget::reject()
@ -270,25 +270,25 @@ void DownloadFromDCWidget::onDownloadThreadFinished()
void DownloadFromDCWidget::markChildrenAsDisabled()
{
ui->device->setDisabled(true);
ui->vendor->setDisabled(true);
ui->product->setDisabled(true);
ui->forceDownload->setDisabled(true);
ui->preferDownloaded->setDisabled(true);
ui->ok->setDisabled(true);
ui->search->setDisabled(true);
ui.device->setDisabled(true);
ui.vendor->setDisabled(true);
ui.product->setDisabled(true);
ui.forceDownload->setDisabled(true);
ui.preferDownloaded->setDisabled(true);
ui.ok->setDisabled(true);
ui.search->setDisabled(true);
}
void DownloadFromDCWidget::markChildrenAsEnabled()
{
ui->device->setDisabled(false);
ui->vendor->setDisabled(false);
ui->product->setDisabled(false);
ui->forceDownload->setDisabled(false);
ui->preferDownloaded->setDisabled(false);
ui->ok->setDisabled(false);
ui->cancel->setDisabled(false);
ui->search->setDisabled(false);
ui.device->setDisabled(false);
ui.vendor->setDisabled(false);
ui.product->setDisabled(false);
ui.forceDownload->setDisabled(false);
ui.preferDownloaded->setDisabled(false);
ui.ok->setDisabled(false);
ui.cancel->setDisabled(false);
ui.search->setDisabled(false);
}
static void fillDeviceList(const char *name, void *data)
@ -300,10 +300,10 @@ static void fillDeviceList(const char *name, void *data)
void DownloadFromDCWidget::fill_device_list()
{
int deviceIndex;
ui->device->clear();
deviceIndex = enumerate_devices(fillDeviceList, ui->device);
ui.device->clear();
deviceIndex = enumerate_devices(fillDeviceList, ui.device);
if (deviceIndex >= 0)
ui->device->setCurrentIndex(deviceIndex);
ui.device->setCurrentIndex(deviceIndex);
}
DownloadThread::DownloadThread(QObject* parent, device_data_t* data): QThread(parent),

View file

@ -51,7 +51,7 @@ private:
void markChildrenAsDisabled();
void markChildrenAsEnabled();
Ui::DownloadFromDiveComputer *ui;
Ui::DownloadFromDiveComputer ui;
DownloadThread *thread;
bool downloading;

View file

@ -24,20 +24,19 @@
#include <QPalette>
MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
ui(new Ui::MainTab()),
weightModel(new WeightModel()),
cylindersModel(new CylindersModel()),
editMode(NONE)
{
ui->setupUi(this);
ui->cylinders->setModel(cylindersModel);
ui->weights->setModel(weightModel);
ui->diveNotesMessage->hide();
ui->diveEquipmentMessage->hide();
ui->notesButtonBox->hide();
ui->equipmentButtonBox->hide();
ui->diveNotesMessage->setCloseButtonVisible(false);
ui->diveEquipmentMessage->setCloseButtonVisible(false);
ui.setupUi(this);
ui.cylinders->setModel(cylindersModel);
ui.weights->setModel(weightModel);
ui.diveNotesMessage->hide();
ui.diveEquipmentMessage->hide();
ui.notesButtonBox->hide();
ui.equipmentButtonBox->hide();
ui.diveNotesMessage->setCloseButtonVisible(false);
ui.diveEquipmentMessage->setCloseButtonVisible(false);
if (qApp->style()->objectName() == "oxygen")
setDocumentMode(true);
@ -48,50 +47,50 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
// filled from a dive, they are made writeable
setEnabled(false);
ui->location->installEventFilter(this);
ui->coordinates->installEventFilter(this);
ui->divemaster->installEventFilter(this);
ui->buddy->installEventFilter(this);
ui->suit->installEventFilter(this);
ui->notes->viewport()->installEventFilter(this);
ui->rating->installEventFilter(this);
ui->visibility->installEventFilter(this);
ui->airtemp->installEventFilter(this);
ui->watertemp->installEventFilter(this);
ui->dateTimeEdit->installEventFilter(this);
ui.location->installEventFilter(this);
ui.coordinates->installEventFilter(this);
ui.divemaster->installEventFilter(this);
ui.buddy->installEventFilter(this);
ui.suit->installEventFilter(this);
ui.notes->viewport()->installEventFilter(this);
ui.rating->installEventFilter(this);
ui.visibility->installEventFilter(this);
ui.airtemp->installEventFilter(this);
ui.watertemp->installEventFilter(this);
ui.dateTimeEdit->installEventFilter(this);
QList<QObject *> statisticsTabWidgets = ui->statisticsTab->children();
QList<QObject *> statisticsTabWidgets = ui.statisticsTab->children();
Q_FOREACH(QObject* obj, statisticsTabWidgets) {
QLabel* label = qobject_cast<QLabel *>(obj);
if (label)
label->setAlignment(Qt::AlignHCenter);
}
ui->cylinders->setTitle(tr("Cylinders"));
ui->cylinders->setBtnToolTip(tr("Add Cylinder"));
connect(ui->cylinders, SIGNAL(addButtonClicked()), this, SLOT(addCylinder_clicked()));
ui.cylinders->setTitle(tr("Cylinders"));
ui.cylinders->setBtnToolTip(tr("Add Cylinder"));
connect(ui.cylinders, SIGNAL(addButtonClicked()), this, SLOT(addCylinder_clicked()));
ui->weights->setTitle(tr("Weights"));
ui->weights->setBtnToolTip(tr("Add Weight System"));
connect(ui->weights, SIGNAL(addButtonClicked()), this, SLOT(addWeight_clicked()));
ui.weights->setTitle(tr("Weights"));
ui.weights->setBtnToolTip(tr("Add Weight System"));
connect(ui.weights, SIGNAL(addButtonClicked()), this, SLOT(addWeight_clicked()));
connect(ui->cylinders->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editCylinderWidget(QModelIndex)));
connect(ui->weights->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editWeigthWidget(QModelIndex)));
connect(ui->notesButtonBox, SIGNAL(accepted()), this, SLOT(acceptChanges()));
connect(ui->notesButtonBox, SIGNAL(rejected()), this, SLOT(rejectChanges()));
connect(ui->equipmentButtonBox, SIGNAL(accepted()), this, SLOT(acceptChanges()));
connect(ui->equipmentButtonBox, SIGNAL(rejected()), this, SLOT(rejectChanges()));
connect(ui.cylinders->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editCylinderWidget(QModelIndex)));
connect(ui.weights->view(), SIGNAL(clicked(QModelIndex)), this, SLOT(editWeigthWidget(QModelIndex)));
connect(ui.notesButtonBox, SIGNAL(accepted()), this, SLOT(acceptChanges()));
connect(ui.notesButtonBox, SIGNAL(rejected()), this, SLOT(rejectChanges()));
connect(ui.equipmentButtonBox, SIGNAL(accepted()), this, SLOT(acceptChanges()));
connect(ui.equipmentButtonBox, SIGNAL(rejected()), this, SLOT(rejectChanges()));
ui->cylinders->view()->setItemDelegateForColumn(CylindersModel::TYPE, new TankInfoDelegate());
ui->weights->view()->setItemDelegateForColumn(WeightModel::TYPE, new WSInfoDelegate());
ui.cylinders->view()->setItemDelegateForColumn(CylindersModel::TYPE, new TankInfoDelegate());
ui.weights->view()->setItemDelegateForColumn(WeightModel::TYPE, new WSInfoDelegate());
completers.buddy = new QCompleter(BuddyCompletionModel::instance(), ui->buddy);
completers.divemaster = new QCompleter(DiveMasterCompletionModel::instance(), ui->divemaster);
completers.location = new QCompleter(LocationCompletionModel::instance(), ui->location);
completers.suit = new QCompleter(SuitCompletionModel::instance(), ui->suit);
ui->buddy->setCompleter(completers.buddy);
ui->divemaster->setCompleter(completers.divemaster);
ui->location->setCompleter(completers.location);
ui->suit->setCompleter(completers.suit);
completers.buddy = new QCompleter(BuddyCompletionModel::instance(), ui.buddy);
completers.divemaster = new QCompleter(DiveMasterCompletionModel::instance(), ui.divemaster);
completers.location = new QCompleter(LocationCompletionModel::instance(), ui.location);
completers.suit = new QCompleter(SuitCompletionModel::instance(), ui.suit);
ui.buddy->setCompleter(completers.buddy);
ui.divemaster->setCompleter(completers.divemaster);
ui.location->setCompleter(completers.location);
ui.suit->setCompleter(completers.suit);
setMinimumHeight(0);
setMinimumWidth(0);
@ -101,10 +100,10 @@ MainTab::MainTab(QWidget *parent) : QTabWidget(parent),
if (isGnome3Session()) {
QPalette p;
p.setColor(QPalette::Window, QColor(Qt::white));
ui->scrollArea->viewport()->setPalette(p);
ui->scrollArea_2->viewport()->setPalette(p);
ui->scrollArea_3->viewport()->setPalette(p);
ui->scrollArea_4->viewport()->setPalette(p);
ui.scrollArea->viewport()->setPalette(p);
ui.scrollArea_2->viewport()->setPalette(p);
ui.scrollArea_3->viewport()->setPalette(p);
ui.scrollArea_4->viewport()->setPalette(p);
}
}
@ -122,23 +121,23 @@ void MainTab::enableEdition()
mainWindow()->dive_list()->setEnabled(false);
// We may be editing one or more dives here. backup everything.
notesBackup.clear();
ui->notesButtonBox->show();
ui->equipmentButtonBox->show();
ui.notesButtonBox->show();
ui.equipmentButtonBox->show();
if (mainWindow() && mainWindow()->dive_list()->selectedTrips.count() == 1) {
// we are editing trip location and notes
ui->diveNotesMessage->setText(tr("This trip is being edited. Select Save or Undo when ready."));
ui->diveNotesMessage->animatedShow();
ui->diveEquipmentMessage->setText(tr("This trip is being edited. Select Save or Undo when ready."));
ui->diveEquipmentMessage->animatedShow();
notesBackup[NULL].notes = ui->notes->toPlainText();
notesBackup[NULL].location = ui->location->text();
ui.diveNotesMessage->setText(tr("This trip is being edited. Select Save or Undo when ready."));
ui.diveNotesMessage->animatedShow();
ui.diveEquipmentMessage->setText(tr("This trip is being edited. Select Save or Undo when ready."));
ui.diveEquipmentMessage->animatedShow();
notesBackup[NULL].notes = ui.notes->toPlainText();
notesBackup[NULL].location = ui.location->text();
editMode = TRIP;
} else {
ui->diveNotesMessage->setText(tr("This dive is being edited. Select Save or Undo when ready."));
ui->diveNotesMessage->animatedShow();
ui->diveEquipmentMessage->setText(tr("This dive is being edited. Select Save or Undo when ready."));
ui->diveEquipmentMessage->animatedShow();
ui.diveNotesMessage->setText(tr("This dive is being edited. Select Save or Undo when ready."));
ui.diveNotesMessage->animatedShow();
ui.diveEquipmentMessage->setText(tr("This dive is being edited. Select Save or Undo when ready."));
ui.diveEquipmentMessage->animatedShow();
// We may be editing one or more dives here. backup everything.
struct dive *mydive;
@ -158,7 +157,7 @@ void MainTab::enableEdition()
notesBackup[mydive].visibility = mydive->visibility;
notesBackup[mydive].latitude = mydive->latitude;
notesBackup[mydive].longitude = mydive->longitude;
notesBackup[mydive].coordinates = ui->coordinates->text();
notesBackup[mydive].coordinates = ui.coordinates->text();
notesBackup[mydive].airtemp = get_temperature_string(mydive->airtemp, true);
notesBackup[mydive].watertemp = get_temperature_string(mydive->watertemp, true);
notesBackup[mydive].datetime = QDateTime::fromTime_t(mydive->when - gettimezoneoffset()).toString(QString("M/d/yy h:mm"));
@ -177,12 +176,12 @@ void MainTab::enableEdition()
bool MainTab::eventFilter(QObject* object, QEvent* event)
{
if (isEnabled() && event->type() == QEvent::KeyPress && object == ui->dateTimeEdit) {
if (isEnabled() && event->type() == QEvent::KeyPress && object == ui.dateTimeEdit) {
tabBar()->setTabIcon(currentIndex(), QIcon(":warning"));
enableEdition();
}
if (isEnabled() && event->type() == QEvent::FocusIn && (object == ui->rating || object == ui->visibility)) {
if (isEnabled() && event->type() == QEvent::FocusIn && (object == ui.rating || object == ui.visibility)) {
tabBar()->setTabIcon(currentIndex(), QIcon(":warning"));
enableEdition();
}
@ -200,41 +199,41 @@ void MainTab::clearEquipment()
void MainTab::clearInfo()
{
ui->sacText->clear();
ui->otuText->clear();
ui->oxygenHeliumText->clear();
ui->gasUsedText->clear();
ui->dateText->clear();
ui->diveTimeText->clear();
ui->surfaceIntervalText->clear();
ui->maximumDepthText->clear();
ui->averageDepthText->clear();
ui->waterTemperatureText->clear();
ui->airTemperatureText->clear();
ui->airPressureText->clear();
ui.sacText->clear();
ui.otuText->clear();
ui.oxygenHeliumText->clear();
ui.gasUsedText->clear();
ui.dateText->clear();
ui.diveTimeText->clear();
ui.surfaceIntervalText->clear();
ui.maximumDepthText->clear();
ui.averageDepthText->clear();
ui.waterTemperatureText->clear();
ui.airTemperatureText->clear();
ui.airPressureText->clear();
}
void MainTab::clearStats()
{
ui->depthLimits->clear();
ui->sacLimits->clear();
ui->divesAllText->clear();
ui->tempLimits->clear();
ui->totalTimeAllText->clear();
ui->timeLimits->clear();
ui.depthLimits->clear();
ui.sacLimits->clear();
ui.divesAllText->clear();
ui.tempLimits->clear();
ui.totalTimeAllText->clear();
ui.timeLimits->clear();
}
#define UPDATE_TEXT(d, field) \
if (!d || !d->field) \
ui->field->setText(""); \
ui.field->setText(""); \
else \
ui->field->setText(d->field)
ui.field->setText(d->field)
#define UPDATE_TEMP(d, field) \
if (!d || d->field.mkelvin == 0) \
ui->field->setText(""); \
ui.field->setText(""); \
else \
ui->field->setText(get_temperature_string(d->field, TRUE))
ui.field->setText(get_temperature_string(d->field, TRUE))
void MainTab::updateDiveInfo(int dive)
@ -267,121 +266,121 @@ void MainTab::updateDiveInfo(int dive)
if (d) {
char buffer[256];
print_gps_coordinates(buffer, sizeof buffer, d->latitude.udeg, d->longitude.udeg);
ui->coordinates->setText(buffer);
ui->dateTimeEdit->setDateTime(QDateTime::fromTime_t(d->when - gettimezoneoffset()));
ui.coordinates->setText(buffer);
ui.dateTimeEdit->setDateTime(QDateTime::fromTime_t(d->when - gettimezoneoffset()));
if (mainWindow() && mainWindow()->dive_list()->selectedTrips.count() == 1) {
// only use trip relevant fields
ui->coordinates->setVisible(false);
ui->divemaster->setVisible(false);
ui->DivemasterLabel->setVisible(false);
ui->buddy->setVisible(false);
ui->BuddyLabel->setVisible(false);
ui->suit->setVisible(false);
ui->SuitLabel->setVisible(false);
ui->rating->setVisible(false);
ui->RatingLabel->setVisible(false);
ui->visibility->setVisible(false);
ui->visibilityLabel->setVisible(false);
ui.coordinates->setVisible(false);
ui.divemaster->setVisible(false);
ui.DivemasterLabel->setVisible(false);
ui.buddy->setVisible(false);
ui.BuddyLabel->setVisible(false);
ui.suit->setVisible(false);
ui.SuitLabel->setVisible(false);
ui.rating->setVisible(false);
ui.RatingLabel->setVisible(false);
ui.visibility->setVisible(false);
ui.visibilityLabel->setVisible(false);
// rename the remaining fields and fill data from selected trip
dive_trip_t *currentTrip = *mainWindow()->dive_list()->selectedTrips.begin();
ui->LocationLabel->setText(tr("Trip Location"));
ui->location->setText(currentTrip->location);
ui->NotesLabel->setText(tr("Trip Notes"));
ui->notes->setText(currentTrip->notes);
ui.LocationLabel->setText(tr("Trip Location"));
ui.location->setText(currentTrip->location);
ui.NotesLabel->setText(tr("Trip Notes"));
ui.notes->setText(currentTrip->notes);
} else {
// make all the fields visible writeable
ui->coordinates->setVisible(true);
ui->divemaster->setVisible(true);
ui->buddy->setVisible(true);
ui->suit->setVisible(true);
ui->SuitLabel->setVisible(true);
ui->rating->setVisible(true);
ui->RatingLabel->setVisible(true);
ui->visibility->setVisible(true);
ui->visibilityLabel->setVisible(true);
ui->BuddyLabel->setVisible(true);
ui->DivemasterLabel->setVisible(true);
ui.coordinates->setVisible(true);
ui.divemaster->setVisible(true);
ui.buddy->setVisible(true);
ui.suit->setVisible(true);
ui.SuitLabel->setVisible(true);
ui.rating->setVisible(true);
ui.RatingLabel->setVisible(true);
ui.visibility->setVisible(true);
ui.visibilityLabel->setVisible(true);
ui.BuddyLabel->setVisible(true);
ui.DivemasterLabel->setVisible(true);
/* and fill them from the dive */
ui->rating->setCurrentStars(d->rating);
ui->visibility->setCurrentStars(d->visibility);
ui.rating->setCurrentStars(d->rating);
ui.visibility->setCurrentStars(d->visibility);
// reset labels in case we last displayed trip notes
ui->LocationLabel->setText(tr("Location"));
ui->NotesLabel->setText(tr("Notes"));
ui.LocationLabel->setText(tr("Location"));
ui.NotesLabel->setText(tr("Notes"));
}
ui->maximumDepthText->setText(get_depth_string(d->maxdepth, TRUE));
ui->averageDepthText->setText(get_depth_string(d->meandepth, TRUE));
ui->otuText->setText(QString("%1").arg(d->otu));
ui->waterTemperatureText->setText(get_temperature_string(d->watertemp, TRUE));
ui->airTemperatureText->setText(get_temperature_string(d->airtemp, TRUE));
ui->gasUsedText->setText(get_volume_string(get_gas_used(d), TRUE));
ui->oxygenHeliumText->setText(get_gaslist(d));
ui->dateText->setText(get_short_dive_date_string(d->when));
ui->diveTimeText->setText(QString::number((int)((d->duration.seconds + 30) / 60)));
ui.maximumDepthText->setText(get_depth_string(d->maxdepth, TRUE));
ui.averageDepthText->setText(get_depth_string(d->meandepth, TRUE));
ui.otuText->setText(QString("%1").arg(d->otu));
ui.waterTemperatureText->setText(get_temperature_string(d->watertemp, TRUE));
ui.airTemperatureText->setText(get_temperature_string(d->airtemp, TRUE));
ui.gasUsedText->setText(get_volume_string(get_gas_used(d), TRUE));
ui.oxygenHeliumText->setText(get_gaslist(d));
ui.dateText->setText(get_short_dive_date_string(d->when));
ui.diveTimeText->setText(QString::number((int)((d->duration.seconds + 30) / 60)));
if (prevd)
ui->surfaceIntervalText->setText(get_time_string(d->when - (prevd->when + prevd->duration.seconds), 4));
ui.surfaceIntervalText->setText(get_time_string(d->when - (prevd->when + prevd->duration.seconds), 4));
if ((sacVal.mliter = d->sac) > 0)
ui->sacText->setText(get_volume_string(sacVal, TRUE).append(tr("/min")));
ui.sacText->setText(get_volume_string(sacVal, TRUE).append(tr("/min")));
else
ui->sacText->clear();
ui.sacText->clear();
if (d->surface_pressure.mbar)
/* this is ALWAYS displayed in mbar */
ui->airPressureText->setText(QString("%1mbar").arg(d->surface_pressure.mbar));
ui.airPressureText->setText(QString("%1mbar").arg(d->surface_pressure.mbar));
else
ui->airPressureText->clear();
ui.airPressureText->clear();
(get_depth_string(stats_selection.max_depth, TRUE));
ui->depthLimits->setMinimum(get_depth_string(stats_selection.min_depth, TRUE));
ui->depthLimits->setAverage(get_depth_string(stats_selection.avg_depth, TRUE));
ui->sacLimits->setMaximum(get_volume_string(stats_selection.max_sac, TRUE).append(tr("/min")));
ui->sacLimits->setMinimum(get_volume_string(stats_selection.min_sac, TRUE).append(tr("/min")));
ui->sacLimits->setAverage(get_volume_string(stats_selection.avg_sac, TRUE).append(tr("/min")));
ui->divesAllText->setText(QString::number(stats_selection.selection_size));
ui.depthLimits->setMinimum(get_depth_string(stats_selection.min_depth, TRUE));
ui.depthLimits->setAverage(get_depth_string(stats_selection.avg_depth, TRUE));
ui.sacLimits->setMaximum(get_volume_string(stats_selection.max_sac, TRUE).append(tr("/min")));
ui.sacLimits->setMinimum(get_volume_string(stats_selection.min_sac, TRUE).append(tr("/min")));
ui.sacLimits->setAverage(get_volume_string(stats_selection.avg_sac, TRUE).append(tr("/min")));
ui.divesAllText->setText(QString::number(stats_selection.selection_size));
temp.mkelvin = stats_selection.max_temp;
ui->tempLimits->setMaximum(get_temperature_string(temp, TRUE));
ui.tempLimits->setMaximum(get_temperature_string(temp, TRUE));
temp.mkelvin = stats_selection.min_temp;
ui->tempLimits->setMinimum(get_temperature_string(temp, TRUE));
ui.tempLimits->setMinimum(get_temperature_string(temp, TRUE));
if (stats_selection.combined_temp && stats_selection.combined_count) {
const char *unit;
get_temp_units(0, &unit);
ui->tempLimits->setAverage(QString("%1%2").arg(stats_selection.combined_temp / stats_selection.combined_count, 0, 'f', 1).arg(unit));
ui.tempLimits->setAverage(QString("%1%2").arg(stats_selection.combined_temp / stats_selection.combined_count, 0, 'f', 1).arg(unit));
}
ui->totalTimeAllText->setText(get_time_string(stats_selection.total_time.seconds, 0));
ui.totalTimeAllText->setText(get_time_string(stats_selection.total_time.seconds, 0));
int seconds = stats_selection.total_time.seconds;
if (stats_selection.selection_size)
seconds /= stats_selection.selection_size;
ui->timeLimits->setAverage(get_time_string(seconds, 0));
ui->timeLimits->setMaximum(get_time_string(stats_selection.longest_time.seconds, 0));
ui->timeLimits->setMinimum(get_time_string(stats_selection.shortest_time.seconds, 0));
ui.timeLimits->setAverage(get_time_string(seconds, 0));
ui.timeLimits->setMaximum(get_time_string(stats_selection.longest_time.seconds, 0));
ui.timeLimits->setMinimum(get_time_string(stats_selection.shortest_time.seconds, 0));
multiEditEquipmentPlaceholder = *d;
cylindersModel->setDive(&multiEditEquipmentPlaceholder);
weightModel->setDive(&multiEditEquipmentPlaceholder);
} else {
/* clear the fields */
ui->rating->setCurrentStars(0);
ui->coordinates->clear();
ui->sacText->clear();
ui->otuText->clear();
ui->oxygenHeliumText->clear();
ui->dateText->clear();
ui->diveTimeText->clear();
ui->surfaceIntervalText->clear();
ui->maximumDepthText->clear();
ui->averageDepthText->clear();
ui->visibility->setCurrentStars(0);
ui->waterTemperatureText->clear();
ui->airTemperatureText->clear();
ui->gasUsedText->clear();
ui->airPressureText->clear();
ui.rating->setCurrentStars(0);
ui.coordinates->clear();
ui.sacText->clear();
ui.otuText->clear();
ui.oxygenHeliumText->clear();
ui.dateText->clear();
ui.diveTimeText->clear();
ui.surfaceIntervalText->clear();
ui.maximumDepthText->clear();
ui.averageDepthText->clear();
ui.visibility->setCurrentStars(0);
ui.waterTemperatureText->clear();
ui.airTemperatureText->clear();
ui.gasUsedText->clear();
ui.airPressureText->clear();
cylindersModel->clear();
weightModel->clear();
ui->depthLimits->clear();
ui->sacLimits->clear();
ui->divesAllText->clear();
ui->tempLimits->clear();
ui->totalTimeAllText->clear();
ui->timeLimits->clear();
ui.depthLimits->clear();
ui.sacLimits->clear();
ui.divesAllText->clear();
ui.tempLimits->clear();
ui.totalTimeAllText->clear();
ui.timeLimits->clear();
/* turns out this is non-trivial for a dateTimeEdit... this is a partial hack */
QLineEdit *le = ui->dateTimeEdit->findChild<QLineEdit*>();
QLineEdit *le = ui.dateTimeEdit->findChild<QLineEdit*>();
le->setText("");
}
}
@ -413,14 +412,14 @@ void MainTab::acceptChanges()
mainWindow()->dive_list()->setEnabled(true);
tabBar()->setTabIcon(0, QIcon()); // Notes
tabBar()->setTabIcon(1, QIcon()); // Equipment
ui->diveNotesMessage->animatedHide();
ui->diveEquipmentMessage->animatedHide();
ui->notesButtonBox->hide();
ui->equipmentButtonBox->hide();
ui.diveNotesMessage->animatedHide();
ui.diveEquipmentMessage->animatedHide();
ui.notesButtonBox->hide();
ui.equipmentButtonBox->hide();
/* now figure out if things have changed */
if (mainWindow() && mainWindow()->dive_list()->selectedTrips.count() == 1) {
if (notesBackup[NULL].notes != ui->notes->toPlainText() ||
notesBackup[NULL].location != ui->location->text())
if (notesBackup[NULL].notes != ui.notes->toPlainText() ||
notesBackup[NULL].location != ui.location->text())
mark_divelist_changed(TRUE);
} else {
struct dive *curr = current_dive;
@ -428,22 +427,22 @@ void MainTab::acceptChanges()
char buffer[256];
print_gps_coordinates(buffer, sizeof buffer
, current_dive->latitude.udeg, current_dive->longitude.udeg);
ui->coordinates->setText(buffer);
if (notesBackup[curr].buddy != ui->buddy->text() ||
notesBackup[curr].suit != ui->suit->text() ||
notesBackup[curr].notes != ui->notes->toPlainText() ||
notesBackup[curr].divemaster != ui->divemaster->text() ||
notesBackup[curr].location != ui->location->text() ||
notesBackup[curr].coordinates != ui->coordinates->text() ||
notesBackup[curr].rating != ui->visibility->currentStars() ||
notesBackup[curr].airtemp != ui->airtemp->text() ||
notesBackup[curr].watertemp != ui->watertemp->text() ||
notesBackup[curr].datetime != ui->dateTimeEdit->dateTime().toString(QString("M/d/yy h:mm")) ||
notesBackup[curr].visibility != ui->rating->currentStars()) {
ui.coordinates->setText(buffer);
if (notesBackup[curr].buddy != ui.buddy->text() ||
notesBackup[curr].suit != ui.suit->text() ||
notesBackup[curr].notes != ui.notes->toPlainText() ||
notesBackup[curr].divemaster != ui.divemaster->text() ||
notesBackup[curr].location != ui.location->text() ||
notesBackup[curr].coordinates != ui.coordinates->text() ||
notesBackup[curr].rating != ui.visibility->currentStars() ||
notesBackup[curr].airtemp != ui.airtemp->text() ||
notesBackup[curr].watertemp != ui.watertemp->text() ||
notesBackup[curr].datetime != ui.dateTimeEdit->dateTime().toString(QString("M/d/yy h:mm")) ||
notesBackup[curr].visibility != ui.rating->currentStars()) {
mark_divelist_changed(TRUE);
}
if (notesBackup[curr].location != ui->location->text() ||
notesBackup[curr].coordinates != ui->coordinates->text()) {
if (notesBackup[curr].location != ui.location->text() ||
notesBackup[curr].coordinates != ui.coordinates->text()) {
mainWindow()->globe()->reload();
mainWindow()->globe()->centerOn(current_dive);
}
@ -488,15 +487,15 @@ void MainTab::acceptChanges()
void MainTab::resetPallete()
{
QPalette p;
ui->buddy->setPalette(p);
ui->notes->setPalette(p);
ui->location->setPalette(p);
ui->coordinates->setPalette(p);
ui->divemaster->setPalette(p);
ui->suit->setPalette(p);
ui->airtemp->setPalette(p);
ui->watertemp->setPalette(p);
ui->dateTimeEdit->setPalette(p);
ui.buddy->setPalette(p);
ui.notes->setPalette(p);
ui.location->setPalette(p);
ui.coordinates->setPalette(p);
ui.divemaster->setPalette(p);
ui.suit->setPalette(p);
ui.airtemp->setPalette(p);
ui.watertemp->setPalette(p);
ui.dateTimeEdit->setPalette(p);
}
@ -517,8 +516,8 @@ void MainTab::rejectChanges()
mainWindow()->dive_list()->setEnabled(true);
if (mainWindow() && mainWindow()->dive_list()->selectedTrips.count() == 1){
ui->notes->setText(notesBackup[NULL].notes );
ui->location->setText(notesBackup[NULL].location);
ui.notes->setText(notesBackup[NULL].notes );
ui.location->setText(notesBackup[NULL].location);
}else{
if (editMode == ADD) {
// clean up
@ -526,17 +525,17 @@ void MainTab::rejectChanges()
DivePlannerPointsModel::instance()->cancelPlan();
}
struct dive *curr = current_dive;
ui->notes->setText(notesBackup[curr].notes );
ui->location->setText(notesBackup[curr].location);
ui->coordinates->setText(notesBackup[curr].coordinates);
ui->buddy->setText(notesBackup[curr].buddy);
ui->suit->setText(notesBackup[curr].suit);
ui->divemaster->setText(notesBackup[curr].divemaster);
ui->rating->setCurrentStars(notesBackup[curr].rating);
ui->visibility->setCurrentStars(notesBackup[curr].visibility);
ui->airtemp->setText(notesBackup[curr].airtemp);
ui->watertemp->setText(notesBackup[curr].watertemp);
ui->dateTimeEdit->setDateTime(QDateTime::fromString(notesBackup[curr].datetime, QString("M/d/y h:mm")));
ui.notes->setText(notesBackup[curr].notes );
ui.location->setText(notesBackup[curr].location);
ui.coordinates->setText(notesBackup[curr].coordinates);
ui.buddy->setText(notesBackup[curr].buddy);
ui.suit->setText(notesBackup[curr].suit);
ui.divemaster->setText(notesBackup[curr].divemaster);
ui.rating->setCurrentStars(notesBackup[curr].rating);
ui.visibility->setCurrentStars(notesBackup[curr].visibility);
ui.airtemp->setText(notesBackup[curr].airtemp);
ui.watertemp->setText(notesBackup[curr].watertemp);
ui.dateTimeEdit->setDateTime(QDateTime::fromString(notesBackup[curr].datetime, QString("M/d/y h:mm")));
struct dive *mydive;
for (int i = 0; i < dive_table.nr; i++) {
@ -570,11 +569,11 @@ void MainTab::rejectChanges()
weightModel->setDive(&multiEditEquipmentPlaceholder);
}
ui->diveNotesMessage->animatedHide();
ui->diveEquipmentMessage->animatedHide();
ui.diveNotesMessage->animatedHide();
ui.diveEquipmentMessage->animatedHide();
mainWindow()->dive_list()->setEnabled(true);
ui->notesButtonBox->hide();
ui->equipmentButtonBox->hide();
ui.notesButtonBox->hide();
ui.equipmentButtonBox->hide();
notesBackup.clear();
resetPallete();
if (editMode == ADD) {
@ -611,31 +610,31 @@ void markChangedWidget(QWidget *w){
void MainTab::on_buddy_textChanged(const QString& text)
{
EDIT_SELECTED_DIVES( EDIT_TEXT(mydive->buddy, text) );
markChangedWidget(ui->buddy);
markChangedWidget(ui.buddy);
}
void MainTab::on_divemaster_textChanged(const QString& text)
{
EDIT_SELECTED_DIVES( EDIT_TEXT(mydive->divemaster, text) );
markChangedWidget(ui->divemaster);
markChangedWidget(ui.divemaster);
}
void MainTab::on_airtemp_textChanged(const QString& text)
{
EDIT_SELECTED_DIVES( mydive->airtemp.mkelvin = parseTemperatureToMkelvin(text) );
markChangedWidget(ui->airtemp);
markChangedWidget(ui.airtemp);
}
void MainTab::on_watertemp_textChanged(const QString& text)
{
EDIT_SELECTED_DIVES( mydive->watertemp.mkelvin = parseTemperatureToMkelvin(text) );
markChangedWidget(ui->watertemp);
markChangedWidget(ui.watertemp);
}
void MainTab::on_dateTimeEdit_dateTimeChanged(const QDateTime& datetime)
{
EDIT_SELECTED_DIVES( mydive->when = datetime.toTime_t() + gettimezoneoffset() );
markChangedWidget(ui->dateTimeEdit);
markChangedWidget(ui.dateTimeEdit);
}
void MainTab::on_location_textChanged(const QString& text)
@ -647,8 +646,8 @@ void MainTab::on_location_textChanged(const QString& text)
dive_trip_t *currentTrip = *mainWindow()->dive_list()->selectedTrips.begin();
EDIT_TEXT(currentTrip->location, text);
} else if (editMode == DIVE || editMode == ADD){
if (!ui->coordinates->isModified() ||
ui->coordinates->text().trimmed().isEmpty()) {
if (!ui.coordinates->isModified() ||
ui.coordinates->text().trimmed().isEmpty()) {
struct dive* dive;
int i = 0;
for_each_dive(i, dive){
@ -660,8 +659,8 @@ void MainTab::on_location_textChanged(const QString& text)
char buffer[256];
print_gps_coordinates(buffer, sizeof buffer
, dive->latitude.udeg, dive->longitude.udeg);
ui->coordinates->setText(buffer);
markChangedWidget(ui->coordinates);
ui.coordinates->setText(buffer);
markChangedWidget(ui.coordinates);
break;
}
}
@ -669,13 +668,13 @@ void MainTab::on_location_textChanged(const QString& text)
EDIT_SELECTED_DIVES( EDIT_TEXT(mydive->location, text) );
}
markChangedWidget(ui->location);
markChangedWidget(ui.location);
}
void MainTab::on_suit_textChanged(const QString& text)
{
EDIT_SELECTED_DIVES( EDIT_TEXT(mydive->suit, text) );
markChangedWidget(ui->suit);
markChangedWidget(ui.suit);
}
void MainTab::on_notes_textChanged()
@ -685,11 +684,11 @@ void MainTab::on_notes_textChanged()
if (editMode == TRIP && mainWindow() && mainWindow()->dive_list()->selectedTrips.count() == 1) {
// we are editing a trip
dive_trip_t *currentTrip = *mainWindow()->dive_list()->selectedTrips.begin();
EDIT_TEXT(currentTrip->notes, ui->notes->toPlainText());
EDIT_TEXT(currentTrip->notes, ui.notes->toPlainText());
} else if (editMode == DIVE || editMode == ADD) {
EDIT_SELECTED_DIVES( EDIT_TEXT(mydive->notes, ui->notes->toPlainText()) );
EDIT_SELECTED_DIVES( EDIT_TEXT(mydive->notes, ui.notes->toPlainText()) );
}
markChangedWidget(ui->notes);
markChangedWidget(ui.notes);
}
#undef EDIT_TEXT
@ -700,11 +699,11 @@ void MainTab::on_coordinates_textChanged(const QString& text)
gboolean gpsChanged = FALSE;
EDIT_SELECTED_DIVES(gpsChanged |= gps_changed(mydive, NULL, textByteArray.data()));
if (gpsChanged) {
markChangedWidget(ui->coordinates);
markChangedWidget(ui.coordinates);
} else {
QPalette p;
p.setBrush(QPalette::Base, QColor(Qt::red).lighter());
ui->coordinates->setPalette(p);
ui.coordinates->setPalette(p);
}
}
@ -724,7 +723,7 @@ void MainTab::editCylinderWidget(const QModelIndex& index)
enableEdition();
if (index.isValid() && index.column() != CylindersModel::REMOVE)
ui->cylinders->edit(index);
ui.cylinders->edit(index);
}
void MainTab::editWeigthWidget(const QModelIndex& index)
@ -733,5 +732,5 @@ void MainTab::editWeigthWidget(const QModelIndex& index)
enableEdition();
if (index.isValid() && index.column() != WeightModel::REMOVE)
ui->weights->edit(index);
ui.weights->edit(index);
}

View file

@ -76,7 +76,7 @@ public slots:
void addDiveStarted();
private:
Ui::MainTab *ui;
Ui::MainTab ui;
WeightModel *weightModel;
CylindersModel *cylindersModel;
QMap<dive*, NotesBackup> notesBackup;

View file

@ -44,32 +44,32 @@ MainWindow* mainWindow()
return instance;
}
MainWindow::MainWindow() : ui(new Ui::MainWindow()), helpView(0)
MainWindow::MainWindow() : helpView(0)
{
instance = this;
ui->setupUi(this);
ui.setupUi(this);
setWindowIcon(QIcon(":subsurface-icon"));
connect(ui->ListWidget, SIGNAL(currentDiveChanged(int)), this, SLOT(current_dive_changed(int)));
connect(ui.ListWidget, SIGNAL(currentDiveChanged(int)), this, SLOT(current_dive_changed(int)));
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), this, SLOT(readSettings()));
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui->ListWidget, SLOT(update()));
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui->ListWidget, SLOT(reloadHeaderActions()));
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui->ProfileWidget, SLOT(refresh()));
ui->mainErrorMessage->hide();
ui->ListWidget->reload(DiveTripModel::TREE);
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui.ListWidget, SLOT(update()));
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui.ListWidget, SLOT(reloadHeaderActions()));
connect(PreferencesDialog::instance(), SIGNAL(settingsChanged()), ui.ProfileWidget, SLOT(refresh()));
ui.mainErrorMessage->hide();
ui.ListWidget->reload(DiveTripModel::TREE);
initialUiSetup();
readSettings();
ui->ListWidget->reloadHeaderActions();
ui->ListWidget->setFocus();
ui->globe->reload();
ui.ListWidget->reloadHeaderActions();
ui.ListWidget->setFocus();
ui.globe->reload();
}
// this gets called after we download dives from a divecomputer
void MainWindow::refreshDisplay()
{
ui->InfoWidget->reload();
ui->globe->reload();
ui->ListWidget->reload(DiveTripModel::TREE);
ui->ListWidget->setFocus();
ui.InfoWidget->reload();
ui.globe->reload();
ui.ListWidget->reload(DiveTripModel::TREE);
ui.ListWidget->setFocus();
WSInfoModel *wsim = WSInfoModel::instance();
wsim->updateInfo();
}
@ -78,15 +78,15 @@ void MainWindow::current_dive_changed(int divenr)
{
if (divenr >= 0) {
select_dive(divenr);
ui->globe->centerOn(get_dive(selected_dive));
ui.globe->centerOn(get_dive(selected_dive));
redrawProfile();
}
ui->InfoWidget->updateDiveInfo(divenr);
ui.InfoWidget->updateDiveInfo(divenr);
}
void MainWindow::redrawProfile()
{
ui->ProfileWidget->refresh();
ui.ProfileWidget->refresh();
}
void MainWindow::on_actionNew_triggered()
@ -136,13 +136,13 @@ void MainWindow::on_actionSaveAs_triggered()
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();
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);
}
@ -200,29 +200,29 @@ void MainWindow::on_actionPrint_triggered()
void MainWindow::disableDcShortcuts()
{
ui->actionPreviousDC->setShortcut(QKeySequence());
ui->actionNextDC->setShortcut(QKeySequence());
ui.actionPreviousDC->setShortcut(QKeySequence());
ui.actionNextDC->setShortcut(QKeySequence());
}
void MainWindow::enableDcShortcuts()
{
ui->actionPreviousDC->setShortcut(Qt::Key_Left);
ui->actionNextDC->setShortcut(Qt::Key_Right);
ui.actionPreviousDC->setShortcut(Qt::Key_Left);
ui.actionNextDC->setShortcut(Qt::Key_Right);
}
void MainWindow::on_actionDivePlanner_triggered()
{
disableDcShortcuts();
DivePlannerPointsModel::instance()->setPlanMode(true);
ui->stackedWidget->setCurrentIndex(PLANNERPROFILE);
ui->infoPane->setCurrentIndex(PLANNERWIDGET);
ui.stackedWidget->setCurrentIndex(PLANNERPROFILE);
ui.infoPane->setCurrentIndex(PLANNERWIDGET);
}
void MainWindow::showProfile()
{
enableDcShortcuts();
ui->stackedWidget->setCurrentIndex(PROFILE);
ui->infoPane->setCurrentIndex(MAINTAB);
ui.stackedWidget->setCurrentIndex(PROFILE);
ui.infoPane->setCurrentIndex(MAINTAB);
}
@ -273,12 +273,12 @@ void MainWindow::on_actionAddDive_triggered()
dive->dc.model = _("manually added dive"); // do not use tr here since it expects a char*.
record_dive(dive);
select_dive(get_divenr(dive));
ui->InfoWidget->updateDiveInfo(selected_dive);
ui->stackedWidget->setCurrentIndex(PLANNERPROFILE); // Planner.
ui->infoPane->setCurrentIndex(MAINTAB);
ui.InfoWidget->updateDiveInfo(selected_dive);
ui.stackedWidget->setCurrentIndex(PLANNERPROFILE); // Planner.
ui.infoPane->setCurrentIndex(MAINTAB);
DivePlannerPointsModel::instance()->createSimpleDive();
refreshDisplay();
ui->InfoWidget->addDiveStarted();
ui.InfoWidget->addDiveStarted();
}
void MainWindow::on_actionRenumber_triggered()
@ -294,7 +294,7 @@ void MainWindow::on_actionAutoGroup_triggered()
void MainWindow::on_actionToggleZoom_triggered()
{
zoomed_plot = !zoomed_plot;
ui->ProfileWidget->refresh();
ui.ProfileWidget->refresh();
}
void MainWindow::on_actionYearlyStatistics_triggered()
@ -333,40 +333,40 @@ void MainWindow::on_infoProfileSplitter_splitterMoved(int pos, int idx)
#define BEHAVIOR QList<int>()
void MainWindow::on_actionViewList_triggered()
{
ui->listGlobeSplitter->setSizes( BEHAVIOR << EXPANDED << COLLAPSED);
ui->mainSplitter->setSizes( BEHAVIOR << COLLAPSED << EXPANDED);
ui.listGlobeSplitter->setSizes( BEHAVIOR << EXPANDED << COLLAPSED);
ui.mainSplitter->setSizes( BEHAVIOR << COLLAPSED << EXPANDED);
}
void MainWindow::on_actionViewProfile_triggered()
{
ui->infoProfileSplitter->setSizes(BEHAVIOR << COLLAPSED << EXPANDED);
ui->mainSplitter->setSizes( BEHAVIOR << EXPANDED << COLLAPSED);
ui.infoProfileSplitter->setSizes(BEHAVIOR << COLLAPSED << EXPANDED);
ui.mainSplitter->setSizes( BEHAVIOR << EXPANDED << COLLAPSED);
redrawProfile();
}
void MainWindow::on_actionViewInfo_triggered()
{
ui->infoProfileSplitter->setSizes(BEHAVIOR << EXPANDED << COLLAPSED);
ui->mainSplitter->setSizes( BEHAVIOR << EXPANDED << COLLAPSED);
ui.infoProfileSplitter->setSizes(BEHAVIOR << EXPANDED << COLLAPSED);
ui.mainSplitter->setSizes( BEHAVIOR << EXPANDED << COLLAPSED);
}
void MainWindow::on_actionViewGlobe_triggered()
{
ui->mainSplitter->setSizes(BEHAVIOR << COLLAPSED << EXPANDED);
ui->listGlobeSplitter->setSizes(BEHAVIOR << COLLAPSED << EXPANDED);
ui.mainSplitter->setSizes(BEHAVIOR << COLLAPSED << EXPANDED);
ui.listGlobeSplitter->setSizes(BEHAVIOR << COLLAPSED << EXPANDED);
}
#undef BEHAVIOR
void MainWindow::on_actionViewAll_triggered()
{
// big number squash the info profile to it's minimum.
ui->infoProfileSplitter->setSizes(QList<int>() << 1 << 20000);
ui.infoProfileSplitter->setSizes(QList<int>() << 1 << 20000);
// big number squash the globe view.
ui->listGlobeSplitter->setSizes(QList<int>() << 2000 << 1 );
ui.listGlobeSplitter->setSizes(QList<int>() << 2000 << 1 );
// half and half?
ui->mainSplitter->setSizes( QList<int>() << 1 << 1);
ui.mainSplitter->setSizes( QList<int>() << 1 << 1);
redrawProfile();
}
@ -505,25 +505,25 @@ void MainWindow::initialUiSetup()
settings.beginGroup("MainWindow");
QSize sz = settings.value("size").value<QSize>();
resize(sz);
ui->mainSplitter->restoreState(settings.value("mainSplitter").toByteArray());
ui->infoProfileSplitter->restoreState(settings.value("infoProfileSplitter").toByteArray());
ui->listGlobeSplitter->restoreState(settings.value("listGlobeSplitter").toByteArray());
ui.mainSplitter->restoreState(settings.value("mainSplitter").toByteArray());
ui.infoProfileSplitter->restoreState(settings.value("infoProfileSplitter").toByteArray());
ui.listGlobeSplitter->restoreState(settings.value("listGlobeSplitter").toByteArray());
settings.endGroup();
settings.beginGroup("ListWidget");
/* if no width are set, use the calculated width for each column;
* for that to work we need to temporarily expand all rows */
ui->ListWidget->expandAll();
ui.ListWidget->expandAll();
for (i = DiveTripModel::NR; i < DiveTripModel::COLUMNS; i++) {
QVariant width = settings.value(QString("colwidth%1").arg(i));
if (width.isValid())
ui->ListWidget->setColumnWidth(i, width.toInt());
ui.ListWidget->setColumnWidth(i, width.toInt());
else
ui->ListWidget->resizeColumnToContents(i);
ui.ListWidget->resizeColumnToContents(i);
}
ui->ListWidget->collapseAll();
ui->ListWidget->expand(ui->ListWidget->model()->index(0,0));
ui->ListWidget->scrollTo(ui->ListWidget->model()->index(0,0), QAbstractItemView::PositionAtCenter);
ui.ListWidget->collapseAll();
ui.ListWidget->expand(ui.ListWidget->model()->index(0,0));
ui.ListWidget->scrollTo(ui.ListWidget->model()->index(0,0), QAbstractItemView::PositionAtCenter);
settings.endGroup();
}
@ -598,15 +598,15 @@ void MainWindow::writeSettings()
settings.beginGroup("MainWindow");
settings.setValue("size",size());
settings.setValue("mainSplitter", ui->mainSplitter->saveState());
settings.setValue("infoProfileSplitter", ui->infoProfileSplitter->saveState());
settings.setValue("listGlobeSplitter", ui->listGlobeSplitter->saveState());
settings.setValue("mainSplitter", ui.mainSplitter->saveState());
settings.setValue("infoProfileSplitter", ui.infoProfileSplitter->saveState());
settings.setValue("listGlobeSplitter", ui.listGlobeSplitter->saveState());
settings.endGroup();
settings.beginGroup("ListWidget");
for (i = DiveTripModel::NR; i < DiveTripModel::COLUMNS; i++)
if (!ui->ListWidget->isColumnHidden(i))
settings.setValue(QString("colwidth%1").arg(i), ui->ListWidget->columnWidth(i));
if (!ui.ListWidget->isColumnHidden(i))
settings.setValue(QString("colwidth%1").arg(i), ui.ListWidget->columnWidth(i));
settings.endGroup();
settings.beginGroup("Units");
SAVE_VALUE("length", units.length);
@ -665,22 +665,22 @@ void MainWindow::closeEvent(QCloseEvent *event)
DiveListView* MainWindow::dive_list()
{
return ui->ListWidget;
return ui.ListWidget;
}
GlobeGPS* MainWindow::globe()
{
return ui->globe;
return ui.globe;
}
ProfileGraphicsView* MainWindow::graphics()
{
return ui->ProfileWidget;
return ui.ProfileWidget;
}
MainTab* MainWindow::information()
{
return ui->InfoWidget;
return ui.InfoWidget;
}
void MainWindow::file_save_as(void)
@ -725,10 +725,10 @@ void MainWindow::showError(QString message)
{
if (message.isEmpty())
return;
ui->mainErrorMessage->setText(message);
ui->mainErrorMessage->setCloseButtonVisible(true);
ui->mainErrorMessage->setMessageType(KMessageWidget::Error);
ui->mainErrorMessage->animatedShow();
ui.mainErrorMessage->setText(message);
ui.mainErrorMessage->setCloseButtonVisible(true);
ui.mainErrorMessage->setMessageType(KMessageWidget::Error);
ui.mainErrorMessage->animatedShow();
}
void MainWindow::setTitle(enum MainWindowTitleFormat format)
@ -761,10 +761,10 @@ void MainWindow::importFiles(const QStringList fileNames)
}
process_dives(TRUE, FALSE);
ui->InfoWidget->reload();
ui->globe->reload();
ui->ListWidget->reload(DiveTripModel::TREE);
ui->ListWidget->setFocus();
ui.InfoWidget->reload();
ui.globe->reload();
ui.ListWidget->reload(DiveTripModel::TREE);
ui.ListWidget->setFocus();
WSInfoModel *wsim = WSInfoModel::instance();
wsim->updateInfo();
}
@ -788,10 +788,10 @@ void MainWindow::loadFiles(const QStringList fileNames)
process_dives(FALSE, FALSE);
ui->InfoWidget->reload();
ui->globe->reload();
ui->ListWidget->reload(DiveTripModel::TREE);
ui->ListWidget->setFocus();
ui.InfoWidget->reload();
ui.globe->reload();
ui.ListWidget->reload(DiveTripModel::TREE);
ui.ListWidget->setFocus();
WSInfoModel *wsim = WSInfoModel::instance();
wsim->updateInfo();
}

View file

@ -108,7 +108,7 @@ public slots:
void showProfile();
private:
Ui::MainWindow *ui;
Ui::MainWindow ui;
QAction *actionNextDive;
QAction *actionPreviousDive;
QWebView *helpView;

View file

@ -9,11 +9,10 @@ PreferencesDialog* PreferencesDialog::instance()
return dialog;
}
PreferencesDialog::PreferencesDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f),
ui(new Ui::PreferencesDialog())
PreferencesDialog::PreferencesDialog(QWidget* parent, Qt::WindowFlags f) : QDialog(parent, f)
{
ui->setupUi(this);
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
ui.setupUi(this);
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
setUiFromPrefs();
rememberPrefs();
}
@ -28,52 +27,52 @@ void PreferencesDialog::showEvent(QShowEvent *event)
void PreferencesDialog::setUiFromPrefs()
{
// graphs
ui->phe->setChecked(prefs.pp_graphs.phe);
ui->pheThreshold->setEnabled(ui->phe->isChecked());
ui->po2->setChecked(prefs.pp_graphs.po2);
ui->po2Threshold->setEnabled(ui->po2->isChecked());
ui->pn2->setChecked(prefs.pp_graphs.pn2);
ui->pn2Threshold->setEnabled(ui->pn2->isChecked());
ui->pheThreshold->setValue(prefs.pp_graphs.phe_threshold);
ui->po2Threshold->setValue(prefs.pp_graphs.po2_threshold);
ui->pn2Threshold->setValue(prefs.pp_graphs.pn2_threshold);
ui->ead_end_eadd->setChecked(prefs.ead);
ui->dc_reported_ceiling->setChecked(prefs.profile_dc_ceiling);
ui->red_ceiling->setEnabled(ui->dc_reported_ceiling->isChecked());
ui->red_ceiling->setChecked(prefs.profile_red_ceiling);
ui->calculated_ceiling->setChecked(prefs.profile_calc_ceiling);
ui->increment_3m->setEnabled(ui->calculated_ceiling->isChecked());
ui->increment_3m->setChecked(prefs.calc_ceiling_3m_incr);
ui->all_tissues->setEnabled(ui->calculated_ceiling->isChecked());
ui->all_tissues->setChecked(prefs.calc_all_tissues);
ui->groupBox->setEnabled(ui->personalize->isChecked());
ui.phe->setChecked(prefs.pp_graphs.phe);
ui.pheThreshold->setEnabled(ui.phe->isChecked());
ui.po2->setChecked(prefs.pp_graphs.po2);
ui.po2Threshold->setEnabled(ui.po2->isChecked());
ui.pn2->setChecked(prefs.pp_graphs.pn2);
ui.pn2Threshold->setEnabled(ui.pn2->isChecked());
ui.pheThreshold->setValue(prefs.pp_graphs.phe_threshold);
ui.po2Threshold->setValue(prefs.pp_graphs.po2_threshold);
ui.pn2Threshold->setValue(prefs.pp_graphs.pn2_threshold);
ui.ead_end_eadd->setChecked(prefs.ead);
ui.dc_reported_ceiling->setChecked(prefs.profile_dc_ceiling);
ui.red_ceiling->setEnabled(ui.dc_reported_ceiling->isChecked());
ui.red_ceiling->setChecked(prefs.profile_red_ceiling);
ui.calculated_ceiling->setChecked(prefs.profile_calc_ceiling);
ui.increment_3m->setEnabled(ui.calculated_ceiling->isChecked());
ui.increment_3m->setChecked(prefs.calc_ceiling_3m_incr);
ui.all_tissues->setEnabled(ui.calculated_ceiling->isChecked());
ui.all_tissues->setChecked(prefs.calc_all_tissues);
ui.groupBox->setEnabled(ui.personalize->isChecked());
ui->gflow->setValue(prefs.gflow);
ui->gfhigh->setValue(prefs.gfhigh);
ui.gflow->setValue(prefs.gflow);
ui.gfhigh->setValue(prefs.gfhigh);
// units
if (prefs.unit_system == METRIC)
ui->metric->setChecked(true);
ui.metric->setChecked(true);
else if (prefs.unit_system == IMPERIAL)
ui->imperial->setChecked(true);
ui.imperial->setChecked(true);
else
ui->personalize->setChecked(true);
ui.personalize->setChecked(true);
ui->celsius->setChecked(prefs.units.temperature == units::CELSIUS);
ui->fahrenheit->setChecked(prefs.units.temperature == units::FAHRENHEIT);
ui->meter->setChecked(prefs.units.length == units::METERS);
ui->feet->setChecked(prefs.units.length == units::FEET);
ui->bar->setChecked(prefs.units.pressure == units::BAR);
ui->psi->setChecked(prefs.units.pressure == units::PSI);
ui->liter->setChecked(prefs.units.volume == units::LITER);
ui->cuft->setChecked(prefs.units.volume == units::CUFT);
ui->kgs->setChecked(prefs.units.weight == units::KG);
ui->lbs->setChecked(prefs.units.weight == units::LBS);
ui->font->setFont(QString(prefs.divelist_font));
ui->fontsize->setValue(prefs.font_size);
ui->defaultfilename->setText(prefs.default_filename);
ui->displayinvalid->setChecked(prefs.show_invalid);
ui->show_time->setChecked(prefs.show_time);
ui.celsius->setChecked(prefs.units.temperature == units::CELSIUS);
ui.fahrenheit->setChecked(prefs.units.temperature == units::FAHRENHEIT);
ui.meter->setChecked(prefs.units.length == units::METERS);
ui.feet->setChecked(prefs.units.length == units::FEET);
ui.bar->setChecked(prefs.units.pressure == units::BAR);
ui.psi->setChecked(prefs.units.pressure == units::PSI);
ui.liter->setChecked(prefs.units.volume == units::LITER);
ui.cuft->setChecked(prefs.units.volume == units::CUFT);
ui.kgs->setChecked(prefs.units.weight == units::KG);
ui.lbs->setChecked(prefs.units.weight == units::LBS);
ui.font->setFont(QString(prefs.divelist_font));
ui.fontsize->setValue(prefs.font_size);
ui.defaultfilename->setText(prefs.default_filename);
ui.displayinvalid->setChecked(prefs.show_invalid);
ui.show_time->setChecked(prefs.show_time);
}
void PreferencesDialog::restorePrefs()
@ -90,31 +89,31 @@ void PreferencesDialog::rememberPrefs()
void PreferencesDialog::setPrefsFromUi()
{
SP(pp_graphs.phe, ui->phe);
SP(pp_graphs.po2, ui->po2);
SP(pp_graphs.pn2, ui->pn2);
prefs.pp_graphs.phe_threshold = ui->pheThreshold->value();
prefs.pp_graphs.po2_threshold = ui->po2Threshold->value();
prefs.pp_graphs.pn2_threshold = ui->pn2Threshold->value();
SP(ead, ui->ead_end_eadd);
SP(profile_dc_ceiling, ui->dc_reported_ceiling);
SP(profile_red_ceiling, ui->red_ceiling);
SP(profile_calc_ceiling, ui->calculated_ceiling);
SP(calc_ceiling_3m_incr, ui->increment_3m);
SP(calc_all_tissues, ui->all_tissues);
prefs.gflow = ui->gflow->value();
prefs.gfhigh = ui->gfhigh->value();
prefs.unit_system = ui->metric->isChecked() ? METRIC : (ui->imperial->isChecked() ? IMPERIAL : PERSONALIZE);
prefs.units.temperature = ui->fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS;
prefs.units.length = ui->feet->isChecked() ? units::FEET : units::METERS;
prefs.units.pressure = ui->psi->isChecked() ? units::PSI : units::BAR;
prefs.units.volume = ui->cuft->isChecked() ? units::CUFT : units::LITER;
prefs.units.weight = ui->lbs->isChecked() ? units::LBS : units::KG;
prefs.divelist_font = strdup(ui->font->font().family().toUtf8().data());
prefs.font_size = ui->fontsize->value();
prefs.default_filename = strdup(ui->defaultfilename->text().toUtf8().data());
prefs.display_invalid_dives = ui->displayinvalid->isChecked();
SP(show_time, ui->show_time);
SP(pp_graphs.phe, ui.phe);
SP(pp_graphs.po2, ui.po2);
SP(pp_graphs.pn2, ui.pn2);
prefs.pp_graphs.phe_threshold = ui.pheThreshold->value();
prefs.pp_graphs.po2_threshold = ui.po2Threshold->value();
prefs.pp_graphs.pn2_threshold = ui.pn2Threshold->value();
SP(ead, ui.ead_end_eadd);
SP(profile_dc_ceiling, ui.dc_reported_ceiling);
SP(profile_red_ceiling, ui.red_ceiling);
SP(profile_calc_ceiling, ui.calculated_ceiling);
SP(calc_ceiling_3m_incr, ui.increment_3m);
SP(calc_all_tissues, ui.all_tissues);
prefs.gflow = ui.gflow->value();
prefs.gfhigh = ui.gfhigh->value();
prefs.unit_system = ui.metric->isChecked() ? METRIC : (ui.imperial->isChecked() ? IMPERIAL : PERSONALIZE);
prefs.units.temperature = ui.fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS;
prefs.units.length = ui.feet->isChecked() ? units::FEET : units::METERS;
prefs.units.pressure = ui.psi->isChecked() ? units::PSI : units::BAR;
prefs.units.volume = ui.cuft->isChecked() ? units::CUFT : units::LITER;
prefs.units.weight = ui.lbs->isChecked() ? units::LBS : units::KG;
prefs.divelist_font = strdup(ui.font->font().family().toUtf8().data());
prefs.font_size = ui.fontsize->value();
prefs.default_filename = strdup(ui.defaultfilename->text().toUtf8().data());
prefs.display_invalid_dives = ui.displayinvalid->isChecked();
SP(show_time, ui.show_time);
}
#define SB(V, B) s.setValue(V, (int)(B->isChecked() ? 1 : 0))
@ -126,39 +125,39 @@ void PreferencesDialog::syncSettings()
// Graph
s.beginGroup("TecDetails");
SB("phegraph", ui->phe);
SB("po2graph", ui->po2);
SB("pn2graph", ui->pn2);
s.setValue("phethreshold", ui->pheThreshold->value());
s.setValue("po2threshold", ui->po2Threshold->value());
s.setValue("pn2threshold", ui->pn2Threshold->value());
SB("ead", ui->ead_end_eadd);
SB("dcceiling", ui->dc_reported_ceiling);
SB("redceiling", ui->red_ceiling);
SB("calcceiling", ui->calculated_ceiling);
SB("calcceiling3m", ui->increment_3m);
SB("calcalltissues", ui->all_tissues);
s.setValue("gflow", ui->gflow->value());
s.setValue("gfhigh", ui->gfhigh->value());
SB("show_time", ui->show_time);
SB("phegraph", ui.phe);
SB("po2graph", ui.po2);
SB("pn2graph", ui.pn2);
s.setValue("phethreshold", ui.pheThreshold->value());
s.setValue("po2threshold", ui.po2Threshold->value());
s.setValue("pn2threshold", ui.pn2Threshold->value());
SB("ead", ui.ead_end_eadd);
SB("dcceiling", ui.dc_reported_ceiling);
SB("redceiling", ui.red_ceiling);
SB("calcceiling", ui.calculated_ceiling);
SB("calcceiling3m", ui.increment_3m);
SB("calcalltissues", ui.all_tissues);
s.setValue("gflow", ui.gflow->value());
s.setValue("gfhigh", ui.gfhigh->value());
SB("show_time", ui.show_time);
s.endGroup();
// Units
s.beginGroup("Units");
QString unitSystem = ui->metric->isChecked() ? "metric" : (ui->imperial->isChecked() ? "imperial" : "personal");
QString unitSystem = ui.metric->isChecked() ? "metric" : (ui.imperial->isChecked() ? "imperial" : "personal");
s.setValue("unit_system", unitSystem);
s.setValue("temperature", ui->fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS);
s.setValue("length", ui->feet->isChecked() ? units::FEET : units::METERS);
s.setValue("pressure", ui->psi->isChecked() ? units::PSI : units::BAR);
s.setValue("volume", ui->cuft->isChecked() ? units::CUFT : units::LITER);
s.setValue("weight", ui->lbs->isChecked() ? units::LBS : units::KG);
s.setValue("temperature", ui.fahrenheit->isChecked() ? units::FAHRENHEIT : units::CELSIUS);
s.setValue("length", ui.feet->isChecked() ? units::FEET : units::METERS);
s.setValue("pressure", ui.psi->isChecked() ? units::PSI : units::BAR);
s.setValue("volume", ui.cuft->isChecked() ? units::CUFT : units::LITER);
s.setValue("weight", ui.lbs->isChecked() ? units::LBS : units::KG);
s.endGroup();
// Defaults
s.beginGroup("GeneralSettings");
s.value("table_fonts", ui->font->font().family());
s.value("font_size", ui->fontsize->value());
s.value("default_filename", ui->defaultfilename->text());
s.value("displayinvalid", ui->displayinvalid->isChecked());
s.value("table_fonts", ui.font->font().family());
s.value("font_size", ui.fontsize->value());
s.value("default_filename", ui.defaultfilename->text());
s.value("displayinvalid", ui.displayinvalid->isChecked());
s.endGroup();
s.sync();
@ -167,7 +166,7 @@ void PreferencesDialog::syncSettings()
void PreferencesDialog::buttonClicked(QAbstractButton* button)
{
switch(ui->buttonBox->standardButton(button)){
switch(ui.buttonBox->standardButton(button)){
case QDialogButtonBox::Discard:
restorePrefs();
setUiFromPrefs();

View file

@ -27,7 +27,7 @@ private:
void setUiFromPrefs();
void setPrefsFromUi();
void setUIFromSettings();
Ui::PreferencesDialog* ui;
Ui::PreferencesDialog ui;
struct preferences oldPrefs;
};

View file

@ -2,10 +2,9 @@
#include "../display.h"
PrintOptions::PrintOptions(QWidget *parent, struct options *printOpt)
: ui( new Ui::PrintOptions())
{
hasSetupSlots = false;
ui->setupUi(this);
ui.setupUi(this);
if (parent)
setParent(parent);
if (!printOpt)
@ -17,48 +16,48 @@ void PrintOptions::setup(struct options *printOpt)
{
printOptions = printOpt;
// layout height sliders
initSliderWithLabel(ui->sliderPHeight, ui->valuePHeight, printOptions->profile_height);
initSliderWithLabel(ui->sliderOHeight, ui->valueOHeight, printOptions->notes_height);
initSliderWithLabel(ui->sliderNHeight, ui->valueNHeight, printOptions->tanks_height);
initSliderWithLabel(ui.sliderPHeight, ui.valuePHeight, printOptions->profile_height);
initSliderWithLabel(ui.sliderOHeight, ui.valueOHeight, printOptions->notes_height);
initSliderWithLabel(ui.sliderNHeight, ui.valueNHeight, printOptions->tanks_height);
// print type radio buttons
switch (printOptions->type) {
case options::PRETTY:
ui->radioSixDives->setChecked(true);
ui.radioSixDives->setChecked(true);
break;
case options::TWOPERPAGE:
ui->radioTwoDives->setChecked(true);
ui.radioTwoDives->setChecked(true);
break;
case options::TABLE:
ui->radioTablePrint->setChecked(true);
ui.radioTablePrint->setChecked(true);
break;
}
// general print option checkboxes
if (printOptions->color_selected)
ui->printInColor->setChecked(true);
ui.printInColor->setChecked(true);
if (printOptions->print_selected)
ui->printSelected->setChecked(true);
ui.printSelected->setChecked(true);
// ordering
if (printOptions->notes_up)
ui->notesOnTop->setChecked(true);
ui.notesOnTop->setChecked(true);
else
ui->profileOnTop->setChecked(true);
ui.profileOnTop->setChecked(true);
// connect slots only once
if (hasSetupSlots)
return;
connect(ui->sliderPHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderPHeightMoved(int)));
connect(ui->sliderOHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderOHeightMoved(int)));
connect(ui->sliderNHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderNHeightMoved(int)));
connect(ui.sliderPHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderPHeightMoved(int)));
connect(ui.sliderOHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderOHeightMoved(int)));
connect(ui.sliderNHeight, SIGNAL(sliderMoved(int)), this, SLOT(sliderNHeightMoved(int)));
connect(ui->radioSixDives, SIGNAL(clicked(bool)), this, SLOT(radioSixDivesClicked(bool)));
connect(ui->radioTwoDives, SIGNAL(clicked(bool)), this, SLOT(radioTwoDivesClicked(bool)));
connect(ui->radioTablePrint, SIGNAL(clicked(bool)), this, SLOT(radioTablePrintClicked(bool)));
connect(ui.radioSixDives, SIGNAL(clicked(bool)), this, SLOT(radioSixDivesClicked(bool)));
connect(ui.radioTwoDives, SIGNAL(clicked(bool)), this, SLOT(radioTwoDivesClicked(bool)));
connect(ui.radioTablePrint, SIGNAL(clicked(bool)), this, SLOT(radioTablePrintClicked(bool)));
connect(ui->printInColor, SIGNAL(clicked(bool)), this, SLOT(printInColorClicked(bool)));
connect(ui->printSelected, SIGNAL(clicked(bool)), this, SLOT(printSelectedClicked(bool)));
connect(ui.printInColor, SIGNAL(clicked(bool)), this, SLOT(printInColorClicked(bool)));
connect(ui.printSelected, SIGNAL(clicked(bool)), this, SLOT(printSelectedClicked(bool)));
connect(ui->notesOnTop, SIGNAL(clicked(bool)), this, SLOT(notesOnTopClicked(bool)));
connect(ui->profileOnTop, SIGNAL(clicked(bool)), this, SLOT(profileOnTopClicked(bool)));
connect(ui.notesOnTop, SIGNAL(clicked(bool)), this, SLOT(notesOnTopClicked(bool)));
connect(ui.profileOnTop, SIGNAL(clicked(bool)), this, SLOT(profileOnTopClicked(bool)));
hasSetupSlots = true;
}
@ -77,19 +76,19 @@ QString PrintOptions::formatSliderValueText(int value)
void PrintOptions::sliderPHeightMoved(int value)
{
ui->valuePHeight->setText(formatSliderValueText(value));
ui.valuePHeight->setText(formatSliderValueText(value));
printOptions->profile_height = value;
}
void PrintOptions::sliderOHeightMoved(int value)
{
ui->valueOHeight->setText(formatSliderValueText(value));
ui.valueOHeight->setText(formatSliderValueText(value));
printOptions->notes_height = value;
}
void PrintOptions::sliderNHeightMoved(int value)
{
ui->valueNHeight->setText(formatSliderValueText(value));
ui.valueNHeight->setText(formatSliderValueText(value));
printOptions->tanks_height = value;
}

View file

@ -16,7 +16,7 @@ public:
void setup(struct options *printOpt);
private:
Ui::PrintOptions *ui;
Ui::PrintOptions ui;
void setLabelFromSlider(QSlider *slider, QLabel *label);
void initSliderWithLabel(QSlider *slider, QLabel *label, int value);
QString formatSliderValueText(int value);

View file

@ -108,16 +108,16 @@ RenumberDialog* RenumberDialog::instance()
void RenumberDialog::buttonClicked(QAbstractButton* button)
{
if (ui->buttonBox->buttonRole(button) == QDialogButtonBox::AcceptRole){
if (ui.buttonBox->buttonRole(button) == QDialogButtonBox::AcceptRole){
qDebug() << "Renumbering.";
renumber_dives(ui->spinBox->value());
renumber_dives(ui.spinBox->value());
}
}
RenumberDialog::RenumberDialog(): QDialog(), ui( new Ui::RenumberDialog())
RenumberDialog::RenumberDialog(): QDialog()
{
ui->setupUi(this);
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
ui.setupUi(this);
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
}
bool isGnome3Session()

View file

@ -30,10 +30,6 @@ private:
MinMaxAvgWidgetPrivate *d;
};
namespace Ui{
class RenumberDialog;
};
class RenumberDialog : public QDialog {
Q_OBJECT
public:
@ -42,7 +38,7 @@ private slots:
void buttonClicked(QAbstractButton *button);
private:
explicit RenumberDialog();
Ui::RenumberDialog *ui;
Ui::RenumberDialog ui;
};
bool isGnome3Session();

View file

@ -23,13 +23,13 @@ SubsurfaceWebServices* SubsurfaceWebServices::instance()
}
SubsurfaceWebServices::SubsurfaceWebServices(QWidget* parent, Qt::WindowFlags f)
: ui( new Ui::SubsurfaceWebServices()){
ui->setupUi(this);
connect(ui->buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
connect(ui->download, SIGNAL(clicked(bool)), this, SLOT(startDownload()));
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
{
ui.setupUi(this);
connect(ui.buttonBox, SIGNAL(clicked(QAbstractButton*)), this, SLOT(buttonClicked(QAbstractButton*)));
connect(ui.download, SIGNAL(clicked(bool)), this, SLOT(startDownload()));
ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
QSettings s;
ui->userID->setText(s.value("webservice_uid").toString());
ui.userID->setText(s.value("webservice_uid").toString());
}
@ -43,8 +43,8 @@ static void clear_table(struct dive_table *table)
void SubsurfaceWebServices::buttonClicked(QAbstractButton* button)
{
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
switch(ui->buttonBox->buttonRole(button)){
ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
switch(ui.buttonBox->buttonRole(button)){
case QDialogButtonBox::ApplyRole:{
clear_table(&gps_location_table);
QByteArray url = tr("Webservice").toLocal8Bit();
@ -57,7 +57,7 @@ void SubsurfaceWebServices::buttonClicked(QAbstractButton* button)
/* store last entered uid in config */
QSettings s;
s.setValue("webservice_uid", ui->userID->text());
s.setValue("webservice_uid", ui.userID->text());
s.sync();
hide();
close();
@ -68,7 +68,7 @@ void SubsurfaceWebServices::buttonClicked(QAbstractButton* button)
// makes Subsurface throw a SIGSEGV...
// manager->deleteLater();
reply->deleteLater();
ui->progressBar->setMaximum(1);
ui.progressBar->setMaximum(1);
break;
case QDialogButtonBox::HelpRole:
QDesktopServices::openUrl(QUrl("http://api.hohndel.org"));
@ -81,17 +81,17 @@ void SubsurfaceWebServices::buttonClicked(QAbstractButton* button)
void SubsurfaceWebServices::startDownload()
{
QUrl url("http://api.hohndel.org/api/dive/get/");
url.setQueryItems( QList<QPair<QString,QString> >() << qMakePair(QString("login"), ui->userID->text()));
url.setQueryItems( QList<QPair<QString,QString> >() << qMakePair(QString("login"), ui.userID->text()));
manager = new QNetworkAccessManager(this);
QNetworkRequest request;
request.setUrl(url);
request.setRawHeader("Accept", "text/xml");
reply = manager->get(request);
ui->status->setText(tr("Wait a bit untill we have something..."));
ui->progressBar->setRange(0,0); // this makes the progressbar do an 'infinite spin'
ui->download->setEnabled(false);
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
ui.status->setText(tr("Wait a bit untill we have something..."));
ui.progressBar->setRange(0,0); // this makes the progressbar do an 'infinite spin'
ui.download->setEnabled(false);
ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
connect(reply, SIGNAL(finished()), this, SLOT(downloadFinished()));
connect(reply, SIGNAL(error(QNetworkReply::NetworkError)),
@ -100,16 +100,16 @@ void SubsurfaceWebServices::startDownload()
void SubsurfaceWebServices::downloadFinished()
{
ui->progressBar->setRange(0,1);
ui.progressBar->setRange(0,1);
downloadedData = reply->readAll();
ui->download->setEnabled(true);
ui->status->setText(tr("Download Finished"));
ui.download->setEnabled(true);
ui.status->setText(tr("Download Finished"));
uint resultCode = download_dialog_parse_response(downloadedData);
setStatusText(resultCode);
if (resultCode == DD_STATUS_OK){
ui->buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true);
ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(true);
}
manager->deleteLater();
reply->deleteLater();
@ -117,9 +117,9 @@ void SubsurfaceWebServices::downloadFinished()
void SubsurfaceWebServices::downloadError(QNetworkReply::NetworkError error)
{
ui->download->setEnabled(true);
ui->progressBar->setRange(0,1);
ui->status->setText(QString::number((int)QNetworkRequest::HttpStatusCodeAttribute));
ui.download->setEnabled(true);
ui.progressBar->setRange(0,1);
ui.status->setText(QString::number((int)QNetworkRequest::HttpStatusCodeAttribute));
manager->deleteLater();
reply->deleteLater();
}
@ -133,7 +133,7 @@ void SubsurfaceWebServices::setStatusText(int status)
case DD_STATUS_ERROR_PARSE: text = tr("Cannot parse response!"); break;
case DD_STATUS_OK: text = tr("Download Success!"); break;
}
ui->status->setText(text);
ui.status->setText(text);
}
void SubsurfaceWebServices::runDialog()

View file

@ -5,9 +5,8 @@
#include <QNetworkReply>
#include <libxml/tree.h>
namespace Ui{
class SubsurfaceWebServices;
};
#include "ui_subsurfacewebservices.h"
class QAbstractButton;
class QNetworkReply;
@ -29,10 +28,10 @@ private:
unsigned int download_dialog_parse_response(const QByteArray& length);
explicit SubsurfaceWebServices(QWidget* parent = 0, Qt::WindowFlags f = 0);
Ui::SubsurfaceWebServices *ui;
Ui::SubsurfaceWebServices ui;
QNetworkReply *reply;
QNetworkAccessManager *manager;
QByteArray downloadedData;
};
#endif
#endif

View file

@ -7,20 +7,21 @@
#include <QTextStream>
#include <QSettings>
TableView::TableView(QWidget *parent) : QWidget(parent), ui(new Ui::TableView){
ui->setupUi(this);
TableView::TableView(QWidget *parent) : QWidget(parent)
{
ui.setupUi(this);
QFile cssFile(":table-css");
cssFile.open(QIODevice::ReadOnly);
QTextStream reader(&cssFile);
QString css = reader.readAll();
ui->tableView->setStyleSheet(css);
ui.tableView->setStyleSheet(css);
/* There`s mostly a need for a Mac fix here too. */
if (qApp->style()->objectName() == "gtk+")
ui->groupBox->layout()->setContentsMargins(0, 9, 0, 0);
ui.groupBox->layout()->setContentsMargins(0, 9, 0, 0);
else
ui->groupBox->layout()->setContentsMargins(0, 0, 0, 0);
ui.groupBox->layout()->setContentsMargins(0, 0, 0, 0);
QIcon plusIcon(":plus");
plusBtn = new QPushButton(plusIcon, QString(), ui->groupBox);
plusBtn = new QPushButton(plusIcon, QString(), ui.groupBox);
plusBtn->setFlat(true);
plusBtn->setToolTip(tr("Add Cylinder"));
plusBtn->setIconSize(QSize(16,16));
@ -31,8 +32,8 @@ TableView::~TableView()
{
QSettings s;
s.beginGroup(objectName());
for (int i = 0; i < ui->tableView->model()->columnCount(); i++) {
s.setValue(QString("colwidth%1").arg(i), ui->tableView->columnWidth(i));
for (int i = 0; i < ui.tableView->model()->columnCount(); i++) {
s.setValue(QString("colwidth%1").arg(i), ui.tableView->columnWidth(i));
}
s.endGroup();
s.sync();
@ -45,31 +46,31 @@ void TableView::setBtnToolTip(const QString& tooltip)
void TableView::setTitle(const QString& title)
{
ui->groupBox->setTitle(title);
ui.groupBox->setTitle(title);
}
void TableView::setModel(QAbstractItemModel *model){
ui->tableView->setModel(model);
connect(ui->tableView, SIGNAL(clicked(QModelIndex)), model, SLOT(remove(QModelIndex)));
ui.tableView->setModel(model);
connect(ui.tableView, SIGNAL(clicked(QModelIndex)), model, SLOT(remove(QModelIndex)));
QSettings s;
s.beginGroup(objectName());
for (int i = 0; i < ui->tableView->model()->columnCount(); i++) {
for (int i = 0; i < ui.tableView->model()->columnCount(); i++) {
QVariant width = s.value(QString("colwidth%1").arg(i));
if (width.isValid())
ui->tableView->setColumnWidth(i, width.toInt());
ui.tableView->setColumnWidth(i, width.toInt());
else
ui->tableView->resizeColumnToContents(i);
ui.tableView->resizeColumnToContents(i);
}
s.endGroup();
QFontMetrics metrics(defaultModelFont());
ui->tableView->horizontalHeader()->setMinimumHeight(metrics.height() + 10);
ui.tableView->horizontalHeader()->setMinimumHeight(metrics.height() + 10);
}
void TableView::fixPlusPosition()
{
plusBtn->setGeometry(ui->groupBox->contentsRect().width() - 30, 2, 24,24);
plusBtn->setGeometry(ui.groupBox->contentsRect().width() - 30, 2, 24,24);
}
// We need to manually position the 'plus' on cylinder and weight.
@ -86,9 +87,9 @@ void TableView::showEvent(QShowEvent* event)
}
void TableView::edit(const QModelIndex& index){
ui->tableView->edit(index);
ui.tableView->edit(index);
}
QTableView *TableView::view(){
return ui->tableView;
return ui.tableView;
}

View file

@ -37,7 +37,7 @@ signals:
void addButtonClicked();
private:
Ui::TableView *ui;
Ui::TableView ui;
QPushButton *plusBtn;
};