diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-10-13 11:56:14 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2024-10-29 21:58:42 +0900 |
commit | 2879ff70be9271550477982a1a6371714db38562 (patch) | |
tree | c2054149dba923ab080fe7093432c7663a990111 /src/datablocks/unit.cpp | |
parent | 3eb38d2556f676d1027746f20bf12a1dd74451ef (diff) | |
download | krecipes-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.cpp | 75 |
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 ); +} |