diff options
| author | Kevin Smith <git@kismith.co.uk> | 2012-11-02 21:30:40 (GMT) | 
|---|---|---|
| committer | Kevin Smith <git@kismith.co.uk> | 2012-12-23 11:44:45 (GMT) | 
| commit | 0a1d592c7bc85e537b8aa8425d8cbce7b48f915a (patch) | |
| tree | d97a7eb6f7f2d30bc7806bde5ad6e3fff34b4924 /Swift/Controllers/StatusCache.h | |
| parent | 8f922ebfe8b1fd8c7d394da0ebeaf02f04c8e48f (diff) | |
| download | swift-contrib-0a1d592c7bc85e537b8aa8425d8cbce7b48f915a.zip swift-contrib-0a1d592c7bc85e537b8aa8425d8cbce7b48f915a.tar.bz2 | |
Save recent status messages and allow easy setting.
Change-Id: I5baaa2cf28cbc344bf442c4a74e0c9ff3ba31ea1
Diffstat (limited to 'Swift/Controllers/StatusCache.h')
| -rw-r--r-- | Swift/Controllers/StatusCache.h | 40 | 
1 files changed, 40 insertions, 0 deletions
| diff --git a/Swift/Controllers/StatusCache.h b/Swift/Controllers/StatusCache.h new file mode 100644 index 0000000..35b3674 --- /dev/null +++ b/Swift/Controllers/StatusCache.h @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2012 Kevin Smith + * Licensed under the GNU General Public License v3. + * See Documentation/Licenses/GPLv3.txt for more information. + */ + +#pragma once + +#include <string> +#include <utility> +#include <vector> +#include <list> +#include <iostream> + +#include <boost/filesystem/path.hpp> + +#include <Swiften/Elements/StatusShow.h> + +namespace Swift { +	class ApplicationPathProvider; +	class StatusCache { +		public: +			typedef std::pair<std::string, StatusShow::Type> PreviousStatus; +		public: +			StatusCache(ApplicationPathProvider* paths); +			~StatusCache(); + +			std::vector<PreviousStatus> getMatches(const std::string& substring, size_t maxCount) const; +			void addRecent(const std::string& text, StatusShow::Type type); +		private: +			void saveRecents(); +			void loadRecents(); +		private: +			boost::filesystem::path path_; +			std::list<PreviousStatus> previousStatuses_; +			ApplicationPathProvider* paths_; +	}; +} + + | 
 Swift
 Swift