summaryrefslogtreecommitdiffstats
path: root/src/datablocks/unit.cpp
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2024-10-13 11:56:14 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2024-10-29 21:58:42 +0900
commit2879ff70be9271550477982a1a6371714db38562 (patch)
treec2054149dba923ab080fe7093432c7663a990111 /src/datablocks/unit.cpp
parent3eb38d2556f676d1027746f20bf12a1dd74451ef (diff)
downloadkrecipes-2879ff70.tar.gz
krecipes-2879ff70.zip
Rearrange folders structure to remove unnecessary 'krecipes' second level subfolder
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it> (cherry picked from commit 0c8ed6c9a4000af8f48581a81c4b5c2f5b9fd502)
Diffstat (limited to 'src/datablocks/unit.cpp')
-rw-r--r--src/datablocks/unit.cpp75
1 files changed, 75 insertions, 0 deletions
diff --git a/src/datablocks/unit.cpp b/src/datablocks/unit.cpp
new file mode 100644
index 0000000..ab670f3
--- /dev/null
+++ b/src/datablocks/unit.cpp
@@ -0,0 +1,75 @@
+/***************************************************************************
+* Copyright (C) 2004 by *
+* Jason Kivlighn (jkivlighn@gmail.com) *
+* *
+* This program is free software; you can redistribute it and/or modify *
+* it under the terms of the GNU General Public License as published by *
+* the Free Software Foundation; either version 2 of the License, or *
+* (at your option) any later version. *
+***************************************************************************/
+
+#include "unit.h"
+
+Unit::Unit() : type(Unit::Other), id( -1 )
+{}
+
+Unit::Unit( const TQString &_name, const TQString &_plural, int _id ) :
+ type(Unit::Other),
+ id( _id ),
+ name( _name ),
+ plural( _plural )
+{}
+
+Unit::Unit( const TQString &_name, double amount ) : type(Unit::Other)
+{
+ if ( amount > 1 )
+ plural = _name;
+ else
+ name = _name;
+}
+
+TQString Unit::determineName( double amount, bool useAbbrev ) const
+{
+ if ( useAbbrev ) {
+ TQString unit = ( amount > 1 ) ? plural_abbrev : name_abbrev;
+ if ( unit.isEmpty() )
+ unit = ( amount > 1 ) ? plural : name;
+ return unit;
+ }
+ else
+ return ( amount > 1 ) ? plural : name;
+}
+
+bool Unit::operator==( const Unit &u ) const
+{
+ //treat TQString::null and "" as the same
+ TQString plural_test1 = u.plural.lower();
+ if ( plural_test1.isNull() )
+ plural_test1 = "";
+
+ TQString plural_test2 = plural.lower();
+ if ( plural_test2.isNull() )
+ plural_test2 = "";
+
+ TQString single_test1 = u.name.lower();
+ if ( single_test1.isNull() )
+ single_test1 = "";
+
+ TQString single_test2 = name.lower();
+ if ( single_test2.isNull() )
+ single_test2 = "";
+
+ if ( plural_test1.isEmpty() && plural_test2.isEmpty() && single_test1.isEmpty() && single_test2.isEmpty() )
+ return true;
+ else if ( plural_test1.isEmpty() && plural_test2.isEmpty() )
+ return single_test1 == single_test2;
+ else if ( single_test1.isEmpty() && single_test2.isEmpty() )
+ return plural_test1 == plural_test2;
+ else
+ return ( plural_test1 == plural_test2 || single_test1 == single_test2 );
+}
+
+bool Unit::operator<( const Unit &u ) const
+{
+ return ( TQString::localeAwareCompare( name.lower(), u.name.lower() ) < 0 );
+}