File indexing completed on 2024-05-19 05:41:19
0001 #ifndef CONVERTOR_H 0002 #define CONVERTOR_H 0003 0004 #include <QPair> 0005 #include <QWidget> 0006 0007 #include "convertoroperator.h" 0008 #include "customrulemodel.h" 0009 #include "rwidgets/gmtoolbox/gamemastertool.h" 0010 #include "rwidgets_global.h" 0011 #include "unit.h" 0012 #include "unitmodel.h" 0013 #include <QSettings> 0014 #include <memory> 0015 namespace Ui 0016 { 0017 class Convertor; 0018 } 0019 namespace GMTOOL 0020 { 0021 /** 0022 * @page Convertor Unit Convertor 0023 * 0024 * @section Intro Introduction 0025 * Convertor provides convertion for any kind of unit. This tool is dedicated to GM to convert value from 0026 * books.<br/> 0027 * 0028 * @section unit Supported Units: 0029 * @subsection distance Distance Units: 0030 * @subsection temp Temperature Units: 0031 * @subsection currency Currency Units: 0032 * 0033 * 0034 */ 0035 0036 class RWIDGET_EXPORT Convertor : public QWidget, public GameMasterTool 0037 { 0038 Q_OBJECT 0039 0040 public: 0041 explicit Convertor(QWidget* parent= 0); 0042 virtual ~Convertor(); 0043 0044 void readSettings(); 0045 void writeSettings(); 0046 public slots: 0047 void categoryHasChanged(int i); 0048 void categoryHasChangedOnSecondPanel(int i); 0049 void convert(); 0050 0051 private: 0052 Ui::Convertor* ui= nullptr; 0053 QMap<Unit::Category, QString> m_map; 0054 std::unique_ptr<UnitModel> m_model= nullptr; 0055 std::unique_ptr<CategoryModel> m_catModel= nullptr; 0056 std::unique_ptr<CategoryModel> m_toModel= nullptr; 0057 std::unique_ptr<CustomRuleModel> m_customRulesModel= nullptr; 0058 0059 QHash<QPair<const Unit*, const Unit*>, ConvertorOperator*> m_convertorTable; 0060 }; 0061 } // namespace GMTOOL 0062 #endif // CONVERTOR_H