diff options
| author | Dennis Brentjes <d.brentjes@gmail.com> | 2014-05-05 15:36:59 +0200 |
|---|---|---|
| committer | Dennis Brentjes <d.brentjes@gmail.com> | 2014-05-05 15:36:59 +0200 |
| commit | dfefe42d0fe40dd97260d3ec0b3e1cb7690cf669 (patch) | |
| tree | 38db4835d86d4f056395ed731affb9afc2e558aa /qt_adapter.hpp | |
| parent | 13cfd05f9b2bb3c8d7d1bf47fcef037a745bacf8 (diff) | |
| download | generic-gui-dfefe42d0fe40dd97260d3ec0b3e1cb7690cf669.tar.gz generic-gui-dfefe42d0fe40dd97260d3ec0b3e1cb7690cf669.tar.bz2 generic-gui-dfefe42d0fe40dd97260d3ec0b3e1cb7690cf669.zip | |
Cleaned up the api to eliminate some intermediate steps
Diffstat (limited to 'qt_adapter.hpp')
| -rw-r--r-- | qt_adapter.hpp | 27 |
1 files changed, 7 insertions, 20 deletions
diff --git a/qt_adapter.hpp b/qt_adapter.hpp index 8af44d7..6ce5ca1 100644 --- a/qt_adapter.hpp +++ b/qt_adapter.hpp @@ -34,23 +34,6 @@ struct QtModelType<std::map<std::string, V>> template <typename T> struct widget_type { -// typedef void type; -}; - -template <typename T> -struct widget_type<std::shared_ptr<T>> { - typedef typename T::widget type; -}; - -template <typename T> -struct widget_type<std::shared_ptr<T>&&> -{ - typedef typename T::widget type; -}; - -template <typename T> -struct widget_type<std::shared_ptr<T>&> -{ typedef typename T::widget type; }; @@ -142,7 +125,11 @@ struct QtAdapter<T, QAbstractTableModel> : public QAbstractTableModel }; template <typename T> -std::shared_ptr<QtAdapter<T, typename QtModelType<typename T::data_type>::type>> make_qt_adapter(T value) { - typedef QtAdapter<T, typename QtModelType<typename T::data_type>::type> type; - return std::make_shared<type>(value); +std::shared_ptr<typename widget_type<QtAdapter<T, typename QtModelType<typename T::data_type>::type>>::type> +make_qt_widget(T& x) +{ + typedef QtAdapter<T, typename QtModelType<typename T::data_type>::type> adapter_type; + auto adapter_ptr = std::make_shared<adapter_type>(x); + auto widget_ptr = std::make_shared<typename widget_type<adapter_type>::type>(adapter_ptr); + return widget_ptr; } |
