source: src/HaliteDialogBase.hpp @ 237

Revision 237, 1.7 KB checked in by Eoin, 13 years ago (diff)
Line 
1
2#pragma once
3
4#include "global/ini_adapter.hpp"
5#include "halEvent.hpp"
6#include "HaliteWindow.hpp"
7#include "HaliteListView.hpp"
8
9#include <boost/archive/xml_woarchive.hpp>
10#include <boost/archive/xml_wiarchive.hpp>
11
12template <class TBase>
13class CHaliteDialogBase
14{
15        typedef CHaliteDialogBase<TBase> thisClass;
16       
17public:
18        CHaliteDialogBase(HaliteWindow& theDaddy, ui_signal& ui_sig, ListViewManager& single_sel) :
19                ui_(ui_sig),
20                selection_manager_(single_sel)
21        {               
22                theDaddy.connectUiUpdate(bind(&TBase::uiUpdate, static_cast<TBase*>(this), _1));
23        }
24       
25        void InitializeHalDialogBase()
26        {       
27        //      ui_.attach(bind(&TBase::updateDialog, static_cast<TBase*>(this)));
28        //      selection_manager_.attach(bind(&TBase::selectionChanged, static_cast<TBase*>(this), _1));
29        }
30       
31        void uiUpdate(const hal::TorrentDetails& tD)
32        {}
33       
34/*      void save()
35        {
36                std::wstringstream xml_data;
37               
38                boost::archive::xml_woarchive oxml(xml_data);
39                T* pT = static_cast<T*>(this); 
40                oxml << boost::serialization::make_nvp(name_.c_str(), *pT);
41               
42                adapter_.save_stream_data(xml_data);
43        }
44       
45        void load()
46        {
47                std::wstringstream xml_data;           
48                adapter_.load_stream_data(xml_data);
49               
50                try
51                {
52               
53                boost::archive::xml_wiarchive ixml(xml_data);   
54               
55                T* pT = static_cast<T*>(this); 
56                ixml >> boost::serialization::make_nvp(name_.c_str(), *pT);
57               
58                }
59                catch (const std::exception& e)
60                {                       
61                        hal::event().post(boost::shared_ptr<hal::EventDetail>(
62                                new hal::EventXmlException(hal::from_utf8(e.what()), hal::from_utf8(name_))));
63                }
64        }
65*/     
66        ui_signal& ui() { return ui_; }
67        ListViewManager&  selection_manager() { return selection_manager_; }
68       
69private:
70        ui_signal& ui_;
71        ListViewManager& selection_manager_;
72};
73
Note: See TracBrowser for help on using the repository browser.