1 /**************************************************************************** 2 ** 3 ** Copyright (C) 2006-2009 fullmetalcoder <fullmetalcoder@hotmail.fr> 4 ** 5 ** This file is part of the Edyuk project <http://edyuk.org> 6 ** 7 ** This file may be used under the terms of the GNU General Public License 8 ** version 3 as published by the Free Software Foundation and appearing in the 9 ** file GPL.txt included in the packaging of this file. 10 ** 11 ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE 12 ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. 13 ** 14 ****************************************************************************/ 15 16 #ifndef _QSNIPPET_MANAGER_H_ 17 #define _QSNIPPET_MANAGER_H_ 18 19 #include "qce-config.h" 20 21 /*! 22 \file qsnippetmanager.h 23 \brief Definition of the QSnippetManager class 24 */ 25 26 #include <QStringList> 27 28 class QSnippet; 29 class QSnippetPatternLoader; 30 31 class QCE_EXPORT QSnippetManager : public QObject 32 { 33 Q_OBJECT 34 35 public: 36 QSnippetManager(QObject *p = 0); 37 virtual ~QSnippetManager(); 38 39 int snippetCount() const; 40 QSnippet* snippet(int i) const; 41 void removeSnippet(int i, bool cleanup = true); 42 43 bool loadSnippetFromFile(const QString& file, const QString& type = QString()); 44 bool loadSnippetFromString(const QString& name, const QString& pattern, const QString& type = QString()); 45 46 void saveSnippetsToDirectory(const QString& path); 47 void loadSnippetsFromDirectory(const QString& path); 48 49 public slots: 50 void addSnippet(QSnippet *s); 51 void removeSnippet(QSnippet *s); 52 53 void addPatternLoader(QSnippetPatternLoader *pl); 54 void removePatternLoader(QSnippetPatternLoader *pl); 55 56 signals: 57 void snippetAdded(QSnippet *s); 58 59 void snippetRemoved(int i); 60 void snippetRemoved(QSnippet *s); 61 62 private: 63 QString typeGuess(const QString& pattern) const; 64 QSnippetPatternLoader* patternLoader(const QString& type) const; 65 66 QList<QSnippet*> m_snippets; 67 QList<QSnippetPatternLoader*> m_patternLoaders; 68 }; 69 70 #endif // !_SNIPPETS_H_ 71