00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #ifndef OST_GUI_LOADER_MANAGER_HH
00020 #define OST_GUI_LOADER_MANAGER_HH
00021 #include <vector>
00022
00023 #include <boost/shared_ptr.hpp>
00024
00025 #include <QString>
00026 #include <QMap>
00027
00028 #include <ost/gui/remote_site_loader.hh>
00029
00030 namespace ost { namespace gui {
00031
00032 class DLLEXPORT_OST_GUI LoaderManager {
00033
00034 QMap<QString,RemoteSiteLoader*> site_loaders_;
00035 QActionGroup* site_actions_;
00036 QMenu* site_menu_;
00037 QString default_site_;
00038
00039 public:
00040 LoaderManager();
00041 virtual ~LoaderManager();
00042 std::vector<String> GetSiteLoaderIdents();
00043 void AddRemoteSiteLoader(const QString& ident, RemoteSiteLoader* site_loader);
00044 void RemoveRemoteSiteLoader(const QString& ident);
00045 RemoteSiteLoader* GetRemoteSiteLoader(const QString& ident);
00046 RemoteSiteLoader* GetCurrentSiteLoader();
00047 RemoteSiteLoader* GetDefaultRemoteSiteLoader();
00048 QString GetDefaultRemoteSiteIdent();
00049 void SetDefaultRemoteSiteIdent(const QString& ident);
00050 QMenu* GetSiteMenu();
00051 };
00052
00053 typedef boost::shared_ptr<LoaderManager> LoaderManagerPtr;
00054
00055 } }
00056
00057 #endif