• Skip to content
  • Skip to link menu
KDE API Reference
  • KDE API Reference
  • kdelibs API Reference
  • KDE Home
  • Contact Us
 

KUnitConversion

  • sources
  • kde-4.14
  • kdelibs
  • kunitconversion
unit.cpp
Go to the documentation of this file.
1 /*
2  * Copyright (C) 2007-2009 Petri Damstén <damu@iki.fi>
3  *
4  * This program is free software; you can redistribute it and/or modify
5  * it under the terms of the GNU Library General Public License as
6  * published by the Free Software Foundation; either version 2, or
7  * (at your option) any later version.
8  *
9  * This program is distributed in the hope that it will be useful,
10  * but WITHOUT ANY WARRANTY; without even the implied warranty of
11  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12  * GNU General Public License for more details
13  *
14  * You should have received a copy of the GNU Library General Public
15  * License along with this program; if not, write to the
16  * Free Software Foundation, Inc.,
17  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
18  */
19 
20 #include "unit.h"
21 
22 #include <klocalizedstring.h>
23 
24 #include "unitcategory.h"
25 
26 namespace KUnitConversion
27 {
28 
29 Complex::Complex()
30 {
31 }
32 
33 Complex::~Complex()
34 {
35 }
36 
37 class Unit::Private
38 {
39 public:
40  Private(UnitCategory* category, const Complex* complex = 0)
41  : multiplier(1.0)
42  , complex(complex)
43  , category(category)
44  {
45  };
46 
47  ~Private()
48  {
49  };
50 
51  QString symbol;
52  QString description;
53  double multiplier;
54  KLocalizedString real;
55  KLocalizedString integer;
56  const Complex* complex;
57  UnitCategory* category;
58  int id;
59 };
60 
61 Unit::Unit(UnitCategory* category, int id, double multiplier, const QString& symbol,
62  const QString& description, const QString& match,
63  const KLocalizedString& real, const KLocalizedString& integer)
64 : d(new Unit::Private(category))
65 {
66  if (category) {
67  category->addUnitMapValues(UnitPtr(this), match);
68  category->addIdMapValue(UnitPtr(this), id);
69  }
70  d->multiplier = multiplier;
71  d->real = real;
72  d->integer = integer;
73  d->symbol = symbol;
74  d->description = description;
75  d->id = id;
76 }
77 
78 Unit::Unit(UnitCategory* category, int id, const Complex* complex, const QString& symbol,
79  const QString& description, const QString& match,
80  const KLocalizedString& real, const KLocalizedString& integer)
81 : d(new Unit::Private(category, complex))
82 {
83  if (category) {
84  category->addUnitMapValues(UnitPtr(this), match);
85  category->addIdMapValue(UnitPtr(this), id);
86  }
87  d->real = real;
88  d->integer = integer;
89  d->symbol = symbol;
90  d->description = description;
91  d->id = id;
92 }
93 
94 Unit::~Unit()
95 {
96  delete d;
97 }
98 
99 UnitCategory* Unit::category() const
100 {
101  return d->category;
102 }
103 
104 QString Unit::description() const
105 {
106  return d->description;
107 }
108 
109 QString Unit::symbol() const
110 {
111  return d->symbol;
112 }
113 
114 double Unit::multiplier() const
115 {
116  return d->multiplier;
117 }
118 
119 void Unit::setMultiplier(double multiplier)
120 {
121  d->multiplier = multiplier;
122 }
123 
124 double Unit::toDefault(double value) const
125 {
126  if (d->complex) {
127  return d->complex->toDefault(value);
128  } else {
129  return value * d->multiplier;
130  }
131 }
132 
133 double Unit::fromDefault(double value) const
134 {
135  if (d->complex) {
136  return d->complex->fromDefault(value);
137  } else {
138  return value / d->multiplier;
139  }
140 }
141 
142 QString Unit::toString(double value, int fieldWidth, char format, int precision,
143  const QChar& fillChar) const
144 {
145  if ((int)value == value && precision < 1) {
146  return d->integer.subs((int)value).toString();
147  }
148  return d->real.subs(value, fieldWidth, format, precision, fillChar).toString();
149 }
150 
151 QString Unit::toSymbolString(double value, int fieldWidth, char format, int precision,
152  const QChar& fillChar) const
153 {
154  return category()->symbolStringFormat().subs(value, fieldWidth, format, precision, fillChar)
155  .subs(d->symbol).toString();
156 }
157 
158 bool Unit::isValid() const
159 {
160  return !d->symbol.isEmpty();
161 }
162 
163 int Unit::id() const
164 {
165  return d->id;
166 }
167 
168 }
169 
KUnitConversion::Unit::Unit
Unit(UnitCategory *category, int id, double multiplier, const QString &symbol, const QString &description, const QString &match, const KLocalizedString &real, const KLocalizedString &integer)
Definition: unit.cpp:61
KUnitConversion::Complex
Definition: unit.h:34
KUnitConversion::Unit::category
UnitCategory * category() const
Definition: unit.cpp:99
KUnitConversion::Complex::~Complex
virtual ~Complex()
Definition: unit.cpp:33
QChar
KUnitConversion::UnitCategory::symbolStringFormat
KLocalizedString symbolStringFormat() const
Definition: unitcategory.cpp:65
KUnitConversion::Unit::toString
QString toString(double value, int fieldWidth=0, char format= 'g', int precision=-1, const QChar &fillChar=QLatin1Char(' ')) const
Definition: unit.cpp:142
KUnitConversion::Unit
Definition: unit.h:43
KUnitConversion::Unit::id
int id() const
Definition: unit.cpp:163
KUnitConversion::Unit::fromDefault
double fromDefault(double value) const
Definition: unit.cpp:133
KUnitConversion::UnitCategory::addIdMapValue
void addIdMapValue(UnitPtr unit, int id)
Definition: unitcategory.cpp:132
KUnitConversion::Unit::toSymbolString
QString toSymbolString(double value, int fieldWidth=0, char format= 'g', int precision=-1, const QChar &fillChar=QLatin1Char(' ')) const
Definition: unit.cpp:151
KUnitConversion::Complex::Complex
Complex()
Definition: unit.cpp:29
unitcategory.h
KUnitConversion::UnitCategory::addUnitMapValues
void addUnitMapValues(UnitPtr unit, const QString &names)
Definition: unitcategory.cpp:124
KUnitConversion::Unit::isValid
bool isValid() const
Definition: unit.cpp:158
QString
KUnitConversion::Unit::setMultiplier
void setMultiplier(double multiplier)
Set unit multiplier.
Definition: unit.cpp:119
KUnitConversion::Unit::toDefault
double toDefault(double value) const
Definition: unit.cpp:124
unit.h
KUnitConversion::Unit::symbol
QString symbol() const
Definition: unit.cpp:109
KUnitConversion::UnitCategory
Definition: unitcategory.h:33
KUnitConversion::Unit::~Unit
virtual ~Unit()
Definition: unit.cpp:94
KUnitConversion::Unit::UnitCategory
friend class UnitCategory
Definition: unit.h:120
KUnitConversion::UnitPtr
KSharedPtr< Unit > UnitPtr
Definition: unit.h:125
KUnitConversion::Unit::multiplier
double multiplier() const
Definition: unit.cpp:114
KUnitConversion::Unit::description
QString description() const
Definition: unit.cpp:104
This file is part of the KDE documentation.
Documentation copyright © 1996-2020 The KDE developers.
Generated on Mon Jun 22 2020 13:23:00 by doxygen 1.8.7 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.

KUnitConversion

Skip menu "KUnitConversion"
  • Main Page
  • Namespace List
  • Namespace Members
  • Alphabetical List
  • Class List
  • Class Hierarchy
  • Class Members
  • File List
  • File Members
  • Related Pages

kdelibs API Reference

Skip menu "kdelibs API Reference"
  • DNSSD
  • Interfaces
  •   KHexEdit
  •   KMediaPlayer
  •   KSpeech
  •   KTextEditor
  • kconf_update
  • KDE3Support
  •   KUnitTest
  • KDECore
  • KDED
  • KDEsu
  • KDEUI
  • KDEWebKit
  • KDocTools
  • KFile
  • KHTML
  • KImgIO
  • KInit
  • kio
  • KIOSlave
  • KJS
  •   KJS-API
  •   WTF
  • kjsembed
  • KNewStuff
  • KParts
  • KPty
  • Kross
  • KUnitConversion
  • KUtils
  • Nepomuk
  • Plasma
  • Solid
  • Sonnet
  • ThreadWeaver

Search



Report problems with this website to our bug tracking system.
Contact the specific authors with questions and comments about the page contents.

KDE® and the K Desktop Environment® logo are registered trademarks of KDE e.V. | Legal