1 /*******************************************************************************
3 This file is part of mDictionary.
5 mDictionary is free software: you can redistribute it and/or modify
6 it under the terms of the GNU General Public License as published by
7 the Free Software Foundation, either version 3 of the License, or
8 (at your option) any later version.
10 mDictionary is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY; without even the implied warranty of
12 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with mDictionary. If not, see <http://www.gnu.org/licenses/>.
18 Copyright 2010 Comarch S.A.
20 *******************************************************************************/
23 \brief Bookmarks functionality - marking words as favorite, managing marked
24 words, searching in marked words (with cached translations)
27 \author Bartosz Szatkowski <bulislaw@linux.com>
36 #include <QStringList>
39 #include <QSqlDatabase>
43 #include "../../include/settings.h"
44 #include "../../include/translation.h"
45 #include "../../include/AccentsNormalizer.h"
46 class BookmarkTranslation;
49 /*! Bookmarks are way to store words that You think You will need to search
52 When You add bookmark (by clicking on "star" in words list) You add it to
53 special list with cached translations from all available dictionaries so
54 You can search for them quickly even when You delete corresponding dict.
56 class Bookmarks : public AccentsNormalizer {
61 /*! Adds new word and translation to bookmarks
62 \param translation new translation to be saved and cached as a bookmark
64 void add(Translation* translation);
66 /*! Removes word and corresponding translation cache from bookmark list
67 \param translation translation to be removed
69 void remove(Translation* translation);
71 /*! \return all bookmarks (word and translation as a translation object
74 QList<Translation*> list();
76 /*! Searches in bookmarks for given word (wildcards may apply '*' and '?')
77 \param word to search for
78 \return list of matching Translation objects
80 QList<Translation*> searchWordList(QString word);
82 /*! Searches for final translation of given word
83 \return word translation list in text format xml or html to be formatted
85 \param word word to search for
87 QStringList search(QString word, QString dbname);
90 /*! Clears bookmarks database */
94 /*! \return true if given word is already in bookmarks
97 bool inBookmarks(QString word);
100 bool checkAndCreateDb();
104 QSqlDatabase getDbCnx(QString dbName);
105 QMap<QChar, QRegExp> letters;
111 #endif // BOOKMARKS_H