OpenMW
|
00001 #ifndef ABSTRACTWIDGET_HPP 00002 #define ABSTRACTWIDGET_HPP 00003 00004 #include <QWidget> 00005 #include "support.hpp" 00006 00007 class QLayout; 00008 00009 namespace CSVSettings 00010 { 00012 class AbstractWidget : public QObject 00013 { 00014 Q_OBJECT 00015 00016 QLayout *mLayout; 00017 00018 public: 00019 00022 explicit AbstractWidget (QLayout *layout = 0, QWidget* parent = 0) 00023 : QObject (parent), mLayout (layout) 00024 {} 00025 00027 QLayout *getLayout(); 00028 00030 void build (QWidget* widget, WidgetDef &def, bool noLabel = false); 00031 00033 virtual QWidget *widget() = 0; 00034 00035 protected: 00036 00038 virtual void updateWidget (const QString &value) = 0; 00039 00041 QFlags<Qt::AlignmentFlag> getAlignment (Alignment flag); 00042 00043 private: 00044 00046 void createLayout (Orientation direction, bool isZeroMargin); 00047 00049 void buildLabelAndWidget (QWidget *widget, WidgetDef &def, bool noLabel); 00050 00051 00052 signals: 00053 00055 void signalUpdateItem (const QString &value); 00056 00057 public slots: 00058 00060 void slotUpdateWidget (const QString &value); 00061 00063 void slotUpdateItem (const QString &value); 00064 void slotUpdateItem (bool value); 00065 void slotUpdateItem (int value); 00066 void slotUpdateItem (QListWidgetItem* current, QListWidgetItem* previous); 00067 }; 00068 } 00069 #endif // ABSTRACTWIDGET_HPP