Skip to content

Commit

Permalink
Added preferences and many minor fixes.
Browse files Browse the repository at this point in the history
Signed-off-by: chris <cbaba001@comcast.net>
  • Loading branch information
Chris-Baba committed Oct 31, 2024
1 parent fb3240c commit 6ef4d51
Show file tree
Hide file tree
Showing 14 changed files with 653 additions and 149 deletions.
3 changes: 3 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,9 @@ if(${QT_VERSION_MAJOR} GREATER_EQUAL 6)
COPYING.txt
chemcalc.desktop
chemcalc_icon_120.svg
preferences_dialog.h
preferences_dialog.cpp
preferences_dialog.ui
)

# Define target properties for Android with Qt 6 as:
Expand Down
52 changes: 26 additions & 26 deletions CMakeLists.txt.user
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 14.0.2, 2024-10-22T01:15:25. -->
<!-- Written by QtCreator 14.0.2, 2024-10-31T11:04:40. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
Expand Down Expand Up @@ -101,13 +101,13 @@
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_BUILD_TYPE:STRING=Debug
-DCMAKE_GENERATOR:STRING=Ninja
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
-DCMAKE_BUILD_TYPE:STRING=Debug
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}</value>
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_GENERATOR:STRING=Ninja</value>
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/chris/Cpp-Projects/Lessons/build-Test3-noQt5-Desktop-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
Expand Down Expand Up @@ -158,13 +158,13 @@
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_GENERATOR:STRING=Ninja
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
-DCMAKE_BUILD_TYPE:STRING=Release
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}</value>
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_GENERATOR:STRING=Ninja</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/chris/Cpp-Projects/ChemCalcBuilds</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
Expand Down Expand Up @@ -214,13 +214,13 @@
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
-DCMAKE_GENERATOR:STRING=Ninja
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}</value>
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_GENERATOR:STRING=Ninja</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/chris/Cpp-Projects/Lessons/build-Test3-noQt5-Desktop-RelWithDebInfo</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
Expand Down Expand Up @@ -268,13 +268,13 @@
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
-DCMAKE_GENERATOR:STRING=Ninja
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
-DCMAKE_BUILD_TYPE:STRING=RelWithDebInfo
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}</value>
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_GENERATOR:STRING=Ninja</value>
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/chris/Cpp-Projects/Lessons/build-Test3-noQt5-Desktop-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
Expand Down Expand Up @@ -323,13 +323,13 @@
<value type="bool" key="CMake.Configure.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="CMake.Configure.UserEnvironmentChanges"/>
<value type="QString" key="CMake.Initial.Parameters">-DCMAKE_C_COMPILER:FILEPATH=%{Compiler:Executable:C}
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
-DCMAKE_GENERATOR:STRING=Ninja
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DCMAKE_CXX_FLAGS_INIT:STRING=%{Qt:QML_DEBUG_FLAG}
-DCMAKE_BUILD_TYPE:STRING=MinSizeRel
-DCMAKE_CXX_COMPILER:FILEPATH=%{Compiler:Executable:Cxx}
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}</value>
-DCMAKE_PREFIX_PATH:PATH=%{Qt:QT_INSTALL_PREFIX}
-DCMAKE_PROJECT_INCLUDE_BEFORE:FILEPATH=%{BuildConfig:BuildDirectory:NativeFilePath}/.qtc/package-manager/auto-setup.cmake
-DQT_QMAKE_EXECUTABLE:FILEPATH=%{Qt:qmakeExecutable}
-DCMAKE_GENERATOR:STRING=Ninja</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/chris/Cpp-Projects/Lessons/build-Test3-noQt5-Desktop-MinSizeRel</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
Expand Down
20 changes: 15 additions & 5 deletions ChemCalc.conf
Original file line number Diff line number Diff line change
Expand Up @@ -7,23 +7,33 @@
## If you change this and break it simply delete this file and
## restart Chemical Calulator to reinstall the default file.

## Ask for user's permission to access internet in order to
## lookup molecular weights (MW).
## Do not change the next 3 lines. (For computer use only.)
NetworkAccessPermission = True
---
NetworkAccessAsked =False
---
NetworkAccessDontAskAgain =False
---
##----------------------------
## These two comboboxes contain the same items (suffixes).:
## comboBox_StartingSolutionSuffix (= QStrings of maps A2 and A3)
## comboBox_DesiredSolutionSuffix (= QStrings of maps A2 and A3)
## Don't use double quotes(") use single quotes (').

suffix_molar_map_A2 = {{"M",1}, {"mM",1e3}, {"uM",1e6}, {"nM",1e9}, {"pM",1e12}, {"fM",1e15}};
suffix_molar_map_A2 = {{'M',1}, {'mM',1e3}, {'uM',1e6}, {'nM',1e9}, {'pM',1e12}, {'fM',1e15}};

suffix_weight_per_liter_map_A3 = {{"%",100},{"g/L",1e3},{"mg/L",1e6},{"ug/L",1e9},{"ng/L",1e12},{"pg/L",1e15},{"fg/L",1e18}};
suffix_weight_per_liter_map_A3 = {{'%',100},{'g/L',1e3},{'mg/L',1e6},{'ug/L',1e9},{'ng/L',1e12},{'pg/L',1e15},{'fg/L',1e18}};
##-----------------------------

volume_suffix_map_B2 = {{"ml",1e3}, {"L",1}, {"ul",1e6}};
volume_suffix_map_B2 = {{'ml',1e3}, {'L',1}, {'ul',1e6}};
##-----------------------------

## comboBox_TotalAmountSuffix (= next 2)
total_amount_suffix_map_moles_C2 = {{"moles",1}, {"millimoles",1e3}, {"micromoles",1e6}};
total_amount_suffix_map_moles_C2 = {{'moles',1}, {'millimoles',1e3}, {'micromoles',1e6}};

total_amount_suffix_map_weight_C3 = {{"g",1}, {"mg",1e3}, {"ug",1e6}};
total_amount_suffix_map_weight_C3 = {{'g',1}, {'mg',1e3}, {'ug',1e6}};
##-----------------------------


42 changes: 26 additions & 16 deletions edit_dialog.cpp
Original file line number Diff line number Diff line change
@@ -1,6 +1,4 @@
#include <QtGui>
#include <QSql>
#include <QtSql>
#include <QSqlRecord>
#include <QSqlDatabase>
#include <QSqlTableModel>
Expand All @@ -20,11 +18,8 @@
#include <QPrintDialog>
#include <QDialog>
#include <QLabel>
#include <QtWidgets>
#include <QMainWindow>
#include <QObject>
#include <QtGui>
#include <QtCore>

#include <QRadioButton>
#include <QLineEdit>
Expand All @@ -49,6 +44,10 @@ QString Edit_Dialog::g_mw_string = "0.0";
QSqlTableModel* Edit_Dialog::model = NULL;
int Edit_Dialog::g_selected_row = 0;
int Edit_Dialog::g_selected_column = 0;

// Setup database connection outside of any function.
//QSqlDatabase MainWindow::g_db = QSqlDatabase::addDatabase("QSQLITE", \
"dbConnection");
//--------------------------------------

Edit_Dialog::Edit_Dialog(QWidget *parent)
Expand All @@ -60,18 +59,29 @@ Edit_Dialog::Edit_Dialog(QWidget *parent)
qDebug() << "Edit_Dialog::Edit_Dialog Constructor - STARTED";
setWindowTitle("Edit Database");
// QSqlDatabase db;
g_db = QSqlDatabase::addDatabase("QSQLITE");

qDebug() << "In Edit_Dialog, g_db.isValid() = " <<
MainWindow::g_db.isValid();
if (!MainWindow::g_db.isValid()){
qDebug() << "In db_save -B";
MainWindow::g_db = QSqlDatabase::addDatabase("QSQLITE");
}

// MainWindow::g_db = QSqlDatabase::addDatabase("QSQLITE");
// QString 'g_dataBaseFilePath' is static class scope, declared in MainWindow header file.
g_db.setDatabaseName(MainWindow::g_dataBaseFilePath);
qDebug() << "In Edit_Dialog, g_dataBaseFilePath = " << MainWindow::g_dataBaseFilePath;

bool DB_opened_OK = g_db.open();
qDebug() << "DB_opend_OK = " << DB_opened_OK;
if (DB_opened_OK == false) {
qDebug() << "Unable to connect to the database";
MainWindow myObj;
myObj.cc_msgBox("Unable to connect to the local database");
return;
MainWindow::g_db.setDatabaseName(MainWindow::g_dataBaseFilePath);
qDebug() << "In Edit_Dialog, g_dataBaseFilePath = " << \
MainWindow::g_dataBaseFilePath;

if (!MainWindow::g_db.isOpen()){
bool DB_opened_OK = MainWindow::g_db.open();
qDebug() << "DB_opend_OK = " << DB_opened_OK;
if (DB_opened_OK == false) {
qDebug() << "Unable to connect to the database";
MainWindow myObj;
myObj.cc_msgBox("Unable to connect to the local database");
return;
}
}
model = new QSqlTableModel(this);
model->setTable("USER");
Expand Down
6 changes: 2 additions & 4 deletions edit_dialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,13 +2,11 @@
#define EDIT_DIALOG_H

#include <QDialog>
#include <QtGui>
#include <QSql>
#include <QObject>
#include <QSqlTableModel>
#include <QTableView>


namespace Ui {
class Edit_Dialog;
}
Expand All @@ -23,13 +21,13 @@ class Edit_Dialog : public QDialog
explicit Edit_Dialog(QWidget *parent = nullptr);
~Edit_Dialog();
Ui::Edit_Dialog *ui3;
// void chem_db_read(QString reagent_fragment);

//------------------------------------------------
//These declarations have class(?) scope,
// Use scope resolution operator (::) to use these public variables.
// For example: "Edit_Dialog::g_selected_row".
QSqlDatabase g_db;

// QSqlDatabase g_db; // Delete?
static int g_selected_row;
static int g_selected_column;
static QString g_reagent;
Expand Down
16 changes: 13 additions & 3 deletions main.cpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
#include "mainwindow.h"

#include <QApplication>
#include <QGuiApplication> //?
#include <QDebug>
#include <QCommandLineParser>
#include <QCoreApplication>
#include <QLoggingCategory>

#include "mainwindow.h"

//--------------------------------------------------------
// Declare database connection outside of any function. It
// also needs "include QCoreApplication" environment.
QSqlDatabase MainWindow::g_db;
//--------------------------------------------------------

int main(int argc, char *argv[])
{
Expand All @@ -21,7 +30,8 @@ int main(int argc, char *argv[])
verbose = parser.isSet(verboseOption);
if (!verbose){
// This turns off qDebug messages in all chemcalc code.
QLoggingCategory::setFilterRules("*.debug=false");
// Comment out next line (and revert when done) for IDE debugging.
QLoggingCategory::setFilterRules("*.debug=false"); //<-- UNCOMMENT <<--<<--
};
//----

Expand Down
Loading

0 comments on commit 6ef4d51

Please sign in to comment.