summaryrefslogtreecommitdiff
authorcniehaus <cniehaus>2002-09-16 10:45:04 (UTC)
committer cniehaus <cniehaus>2002-09-16 10:45:04 (UTC)
commitd5d64f7617836096a4e9de81997ada7b6f220b47 (patch) (side-by-side diff)
treeb0ad367ecd4327d8a95b22e725ec4e5b14efa230
parent1286c243028874523eb2805a0d07ae478537a20c (diff)
downloadopie-d5d64f7617836096a4e9de81997ada7b6f220b47.zip
opie-d5d64f7617836096a4e9de81997ada7b6f220b47.tar.gz
opie-d5d64f7617836096a4e9de81997ada7b6f220b47.tar.bz2
yes, there is still a lot missing and it won't work for anyone due to
a hardcoded path but at least in theorie (if you copy kmolweights to the correct position) it will work now. more to come this evening or so.
Diffstat (more/less context) (ignore whitespace changes)
-rw-r--r--noncore/apps/oxygen/calcdlg.ui203
-rw-r--r--noncore/apps/oxygen/calcdlgui.cpp2
-rw-r--r--noncore/apps/oxygen/kmolcalc.cpp40
-rw-r--r--noncore/apps/oxygen/kmolcalc.h5
4 files changed, 99 insertions, 151 deletions
diff --git a/noncore/apps/oxygen/calcdlg.ui b/noncore/apps/oxygen/calcdlg.ui
index e0b19f9..5b0c53e 100644
--- a/noncore/apps/oxygen/calcdlg.ui
+++ b/noncore/apps/oxygen/calcdlg.ui
@@ -6,18 +6,18 @@
<name>name</name>
<cstring>CalcDlg</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
<y>0</y>
- <width>218</width>
- <height>274</height>
+ <width>275</width>
+ <height>357</height>
</rect>
</property>
<property stdset="1">
<name>caption</name>
<string>Network Time</string>
</property>
<property>
<name>layoutMargin</name>
@@ -29,20 +29,20 @@
<class>QTabWidget</class>
<property stdset="1">
<name>name</name>
<cstring>TabWidgetMain</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
- <x>10</x>
+ <x>0</x>
<y>0</y>
- <width>200</width>
- <height>260</height>
+ <width>270</width>
+ <height>350</height>
</rect>
</property>
<property>
<name>layoutMargin</name>
</property>
<property>
<name>layoutSpacing</name>
</property>
@@ -60,165 +60,152 @@
<class>QFrame</class>
<property stdset="1">
<name>name</name>
<cstring>FrameSystemTime</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
- <x>2</x>
- <y>2</y>
- <width>180</width>
- <height>220</height>
+ <x>0</x>
+ <y>0</y>
+ <width>260</width>
+ <height>320</height>
</rect>
</property>
<property stdset="1">
<name>frameShape</name>
<enum>StyledPanel</enum>
</property>
<property stdset="1">
<name>frameShadow</name>
<enum>Raised</enum>
</property>
<widget>
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel1_4</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>1</x>
- <y>1</y>
- <width>298</width>
- <height>16</height>
- </rect>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Formula:</string>
- </property>
- </widget>
- <widget>
<class>QLayoutWidget</class>
<property stdset="1">
<name>name</name>
<cstring>Layout7</cstring>
</property>
<property stdset="1">
<name>geometry</name>
<rect>
<x>0</x>
- <y>50</y>
- <width>175</width>
- <height>30</height>
+ <y>0</y>
+ <width>260</width>
+ <height>320</height>
</rect>
</property>
- <hbox>
+ <vbox>
<property stdset="1">
<name>margin</name>
<number>0</number>
</property>
<property stdset="1">
<name>spacing</name>
<number>6</number>
</property>
<widget>
- <class>QPushButton</class>
+ <class>QLabel</class>
<property stdset="1">
<name>name</name>
- <cstring>calculate</cstring>
+ <cstring>TextLabel1_4</cstring>
</property>
<property stdset="1">
<name>text</name>
- <string>Calculate</string>
+ <string>Formula:</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>formula</cstring>
+ </property>
+ </widget>
+ <widget>
+ <class>QLayoutWidget</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>Layout7</cstring>
</property>
+ <hbox>
+ <property stdset="1">
+ <name>margin</name>
+ <number>0</number>
+ </property>
+ <property stdset="1">
+ <name>spacing</name>
+ <number>6</number>
+ </property>
+ <widget>
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>calculate</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Calculate</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QPushButton</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>clear_fields</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Clear</string>
+ </property>
+ </widget>
+ </hbox>
</widget>
<widget>
- <class>QPushButton</class>
+ <class>QLabel</class>
<property stdset="1">
<name>name</name>
- <cstring>clear_fields</cstring>
+ <cstring>TextLabel2_4</cstring>
</property>
<property stdset="1">
<name>text</name>
- <string>Clear</string>
+ <string>Result:</string>
</property>
</widget>
- </hbox>
- </widget>
- <widget>
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>formula</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>20</y>
- <width>170</width>
- <height>22</height>
- </rect>
- </property>
- </widget>
- <widget>
- <class>QMultiLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>anal_display</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>130</y>
- <width>170</width>
- <height>80</height>
- </rect>
- </property>
- </widget>
- <widget>
- <class>QLineEdit</class>
- <property stdset="1">
- <name>name</name>
- <cstring>result</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>0</x>
- <y>100</y>
- <width>170</width>
- <height>22</height>
- </rect>
- </property>
- </widget>
- <widget>
- <class>QLabel</class>
- <property stdset="1">
- <name>name</name>
- <cstring>TextLabel2_4</cstring>
- </property>
- <property stdset="1">
- <name>geometry</name>
- <rect>
- <x>1</x>
- <y>86</y>
- <width>298</width>
- <height>16</height>
- </rect>
- </property>
- <property stdset="1">
- <name>text</name>
- <string>Result:</string>
- </property>
+ <widget>
+ <class>QLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>result</cstring>
+ </property>
+ </widget>
+ <widget>
+ <class>QLabel</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>TextLabel1</cstring>
+ </property>
+ <property stdset="1">
+ <name>text</name>
+ <string>Elemental composition (%):</string>
+ </property>
+ </widget>
+ <widget>
+ <class>QMultiLineEdit</class>
+ <property stdset="1">
+ <name>name</name>
+ <cstring>anal_display</cstring>
+ </property>
+ <property stdset="1">
+ <name>readOnly</name>
+ <bool>true</bool>
+ </property>
+ </widget>
+ </vbox>
</widget>
</widget>
</widget>
<widget>
<class>QWidget</class>
<property stdset="1">
<name>name</name>
<cstring>tabNtp</cstring>
diff --git a/noncore/apps/oxygen/calcdlgui.cpp b/noncore/apps/oxygen/calcdlgui.cpp
index e9b40d3..e40e2c7 100644
--- a/noncore/apps/oxygen/calcdlgui.cpp
+++ b/noncore/apps/oxygen/calcdlgui.cpp
@@ -11,19 +11,21 @@
#include "calcdlgui.h"
#include "kmolcalc.h"
#include <qlineedit.h>
#include <qmultilineedit.h>
#include <qpushbutton.h>
calcDlgUI::calcDlgUI() : CalcDlg()
{
+ this->showMaximized();
kmolcalc = new KMolCalc;
connect( calculate, SIGNAL( clicked() ), this, SLOT( calc() ) );
connect( clear_fields, SIGNAL( clicked() ), this, SLOT( clear() ) );
+ result->setReadOnly( true );
}
void calcDlgUI::calc()
{
QString compound( formula->text() );
if ( compound.isEmpty() ) {
clear();
return;
diff --git a/noncore/apps/oxygen/kmolcalc.cpp b/noncore/apps/oxygen/kmolcalc.cpp
index 7257c4a..0ba52da 100644
--- a/noncore/apps/oxygen/kmolcalc.cpp
+++ b/noncore/apps/oxygen/kmolcalc.cpp
@@ -1,12 +1,12 @@
/*
* kmolcalc.cpp
*
- * Copyright (C) 2000 Tomislav Gountchev <tomi@idiom.com>
+ * Copyright (C) 2000,2001 Tomislav Gountchev <tomi@idiom.com>
* Copyright (C) 2002 Carsten Niehaus <cniehaus@handhelds.org>
*/
/**
* KMOLCALC is the calculation engine. It knows about a hashtable of user defined atomic
* weights and group definitions ELSTABLE, and the currently processed formula, stored
* as a list of elements and their coefficients, ELEMENTS.
*/
@@ -31,38 +31,19 @@ KMolCalc::~KMolCalc() {
delete elements;
}
void KMolCalc::readElstable() {
weight = -1; // not calculated yet
if (elstable) delete elstable;
elstable = new QDict<SubUnit> (197, TRUE);
elstable->setAutoDelete(TRUE);
- QStringList files = "/home/opie/opie/noncore/apps/oxigen/kmolweights";
- mwfile = "/home/opie/opie/noncore/apps/oxigen/kmolweights";
+ mwfile = "/home/opie/opie/noncore/apps/oxygen/kmolweights";
QFile f(mwfile);
- QString* latest_f = &mwfile;
- for (uint i=0; i<files.count(); i++) {
- if (QFileInfo(QFile(files[i])).lastModified() > QFileInfo(QFile(*latest_f)).lastModified()) {
- latest_f = &files[i];
- }
- }
- QFile lf(*latest_f);
if (f.exists()) readMwfile(f);
- if (!f.exists()) {
- readMwfile(lf);
- writeElstable();
- } else if (QFileInfo(f).lastModified() < QFileInfo(lf).lastModified()) {
- // announce
- QMessageBox::information
- (0, "Warning:", "Found new global Mw file.\nLocal definitions will be updated.", QMessageBox::Ok);
- readMwfile(lf);
- writeElstable();
- }
-
}
/**
* Parse a string S and construct the ElementList this->ELEMENTS, representing the
* composition of S. Returns 0 if successful, or an error code (currently -1) if
* parsing failed.
* The elements is S must be valid element or group symbols, as stored in this->ELSTABLE.
@@ -183,33 +164,16 @@ void KMolCalc::readMwfile(QFile& f) {
line = fs.readLine();
SubUnit* s = SubUnit::makeSubUnit(line);
elstable->replace(s->getName(), s);
}
f.close();
}
/**
- * Save the element definitions file.
- */
-void KMolCalc::writeElstable() {
- QFile f(mwfile);
- if (! f.open(IO_WriteOnly)) return; //ERROR
- QTextStream fs (&f);
- QString line;
- QDictIterator<SubUnit> it(*elstable);
- while (it.current()) {
- it.current()->writeOut(line);
- fs << line << endl;
- ++it;
- }
- f.close();
-}
-
-/**
* Remove a group or element definition from ELSTABLE.
*/
void KMolCalc::undefineGroup (const QString& name) {
elstable->remove (name);
}
/**
* Add a new element name - atomic weight record to the ELSTABLE hashtable. Assumes
diff --git a/noncore/apps/oxygen/kmolcalc.h b/noncore/apps/oxygen/kmolcalc.h
index c3e02f3..c589133 100644
--- a/noncore/apps/oxygen/kmolcalc.h
+++ b/noncore/apps/oxygen/kmolcalc.h
@@ -73,21 +73,16 @@ public:
QString defineGroup(const QString& name, const QString& formula);
/**
* Remove a group or element definition from ELSTABLE.
*/
void undefineGroup(const QString& name);
/**
- * Save the element definitions file.
- */
- void writeElstable();
-
- /**
* Read the element definitions file and construct ELSTABLE.
*/
void readElstable();
/**
* The element dictionary.
*/
QDict<SubUnit>* elstable;