bool Ingridients::saveData(QString& fileName) { QJsonObject saveObj; QFile saveFile(fileName); PRINT_DEBUG("Saving all ingridients"); if ( !saveFile.open(QIODevice::WriteOnly) ) { PRINT_WARN("Couldn't open save file."); return false; } saveItems(saveObj); saveFood(saveObj); saveDish(saveObj); QJsonDocument saveDoc(saveObj); if ( !fileName.right(5).compare(".json") ) { saveFile.write(saveDoc.toJson()); } else { saveFile.write(saveDoc.toBinaryData()); } return true; }
void EditFood::saveFoodAndClear() { if (saveFood()) { clearFood(); } }
void EditFood::saveFoodAndClose() { if (saveFood()) { close(); } }
EditFood::EditFood(QWidget *parent, const QSharedPointer<SingleFood>& food) : QDialog(parent), food(food != NULL ? food : SingleFood::createNewFood()) { ui.setupUi(this); populateGroupSelector(ui.cboCategory); populateSourceSelector(ui.cboSource); populateUserSelector(ui.cboOwner); // TODO: Connect source and owner comboboxes when they are enabled populateUnitSelector(ui.cboWeightUnit, Unit::Dimensions::Weight); populateUnitSelector(ui.cboVolumeUnit, Unit::Dimensions::Volume); populateDimensionSelector(ui.cboNutrientDimensions); connect(ui.cboNutrientDimensions, SIGNAL(currentIndexChanged(int)), this, SLOT(basicNutrientsDimensionChanged(int))); populateDimensionSelector(ui.cboVitaminDimensions); connect(ui.cboVitaminDimensions, SIGNAL(currentIndexChanged(int)), this, SLOT(vitaminsDimensionChanged(int))); populateDimensionSelector(ui.cboMineralDimensions); connect(ui.cboMineralDimensions, SIGNAL(currentIndexChanged(int)), this, SLOT(mineralsDimensionChanged(int))); QWidget* tabWidget = ui.cboNutrientDimensions; tabWidget = populateNutrientGroup(ui.grpBasicNutrients, basicNutrients, Nutrient::Categories::Basic, tabWidget); QWidget::setTabOrder(tabWidget, ui.cboVitaminDimensions); tabWidget = ui.cboVitaminDimensions; tabWidget = populateNutrientGroup(ui.grpVitamins, vitamins, Nutrient::Categories::Vitamin, tabWidget); QWidget::setTabOrder(tabWidget, ui.cboMineralDimensions); tabWidget = ui.cboMineralDimensions; tabWidget = populateNutrientGroup(ui.grpMinerals, minerals, Nutrient::Categories::Mineral, tabWidget); QWidget::setTabOrder(tabWidget, ui.btnSaveAndClose); QWidget::setTabOrder(ui.btnSaveAndClose, ui.btnSaveAndAdd); QWidget::setTabOrder(ui.btnSaveAndAdd, ui.btnSave); QWidget::setTabOrder(ui.btnSave, ui.btnCancel); // Default Vitamin and Mineral dimensions to % RDI ui.cboVitaminDimensions->setCurrentIndex (ui.cboVitaminDimensions->findData (QVariant::fromValue(NutrientAmountDisplay::DisplayModes::RDI))); ui.cboMineralDimensions->setCurrentIndex (ui.cboMineralDimensions->findData (QVariant::fromValue(NutrientAmountDisplay::DisplayModes::RDI))); connect(ui.btnFillIn, SIGNAL(clicked()), this, SLOT(promptForFillIn())); connect(ui.btnCancel, SIGNAL(clicked()), this, SLOT(close())); connect(ui.btnSave, SIGNAL(clicked()), this, SLOT(saveFood())); connect(ui.btnSaveAndAdd, SIGNAL(clicked()), this, SLOT(saveFoodAndClear())); connect(ui.btnSaveAndClose, SIGNAL(clicked()), this, SLOT(saveFoodAndClose())); loadFoodInformation(); QSettings settings("Nerdland", "Nutrition Tracker"); settings.beginGroup("editfood"); resize(settings.value("size", size()).toSize()); if (!settings.value("position").isNull()) { move(settings.value("position", pos()).toPoint()); } settings.endGroup(); }