Blob Blame Raw


#ifndef HISTORY_INCLUDED
#define HISTORY_INCLUDED

//#include "tfilepath.h"
#include "tsystem.h"

#include <set>
#include <qdatetime>

class History
{ // singleton
public:
	class Item
	{
	public:
		TFilePath m_filePath;
		Item(const TFilePath &fp) : m_filePath(fp) {}
		bool operator<(const Item &item) const
		{
			return m_filePath < item.m_filePath;
		}
	};

	class Day
	{
	public:
		QDate m_timeStamp;
		string getDate() const;
		std::set<Item> m_items;
		Day(const QDate &t) : m_timeStamp(t){};
		void getFiles(std::vector<TFilePath> &files) const;
	};

	~History();

	static History *instance();
	int getDayCount() const { return m_days.size(); };
	const Day *getDay(int i) const;
	const Day *getDay(const QDate &time) const;
	const Day *getDay(string dateString) const; // getDay(dateString)->getDate() == dateString

	// nota. ritorna il giorno (se c'e') che ha un timeStamp IDENTICO a time
	void addItem(const TFilePath &fp);

private:
	vector<Day *> m_days;

	History();
	void load();
	void save();
};

#endif