#ifndef DC_SETTINGS_H #define DC_SETTINGS_H #include "hub_info.h" #include #include #include #include #include #include using namespace std; class FavData { public: FavData(const QString& aIp, const QString& aPwd,bool a,const QString& prof) : ip(aIp), pwd(aPwd), autoconnect(a), profile(prof) {} QString ip; QString pwd; bool autoconnect; QString profile; }; class QStringList; class dc_settings { public: enum { NO_SETTINGS,ERROR_LOADING_PREFS,ERROR_LOADING_FAVOURITES,SUCCESS }; typedef map Map; typedef map StrMap; typedef QMap KeyMap; typedef QMap ProfileMap; dc_settings(); int init(); bool load_from_file(); bool load_favourites_file(); bool save_to_file(); bool save_favourites_file(); void add_favourite(const QString &name,const QString &address,const QString &password,bool,const QString&); void del_favourite(const QString &name); int num_favourites() const {return favourites.size();} bool get_favourite(int i,QString &name,QString &address,QString &password,bool &autoc,QString &prof); const hub_info get_favourite(const QString &name); QStringList get_hub_lists() {return hubLists;} void set_hub_lists(const QStringList& l) {hubLists=l;} QStringList get_connection_types(); //! New, improved settings thingy :) QString get_setting(const QString& key); QString get_setting(const QString& profile, const QString& key); void set_setting(const QString& key,const QString &value); void set_setting(const QString& profile,const QString &key,const QString& value); //! Sets the current profile /** Sets the profile to be used by get and set. \param name Name of the profile. If the profile doesn't exist, it will be created. */ void set_profile(const QString& name); //! Removes a profile and all its settings. void remove_profile(const QString &name); //! Returns a list of profile names. Does not return common. QStringList get_profiles(); const QString get_home_dir() const { return user_home_dir; } private: int get_setting_key(const QString &s) const; QString settings_file; QString favourites_file; // new ProfileMap settings; QString current_profile; StrMap favourites; QString user_home_dir; QStringList hubLists; }; extern dc_settings settings; #endif