From 7a3b1141aa919e21d3e323939f138ab8bc33601f Mon Sep 17 00:00:00 2001 From: Bartosz Szatkowski Date: Tue, 3 Aug 2010 13:24:27 +0200 Subject: [PATCH] First Backbone draft ready --- trunk/src/base/backbone/backbone.cpp | 31 +++++++++++++++++++++++------- trunk/src/base/backbone/backbone.h | 10 ++++------ trunk/src/base/backbone/main.cpp | 7 +++++-- trunk/src/base/mDictionary.pro | 5 ++++- trunk/src/base/mDictionary.pro.user | 6 +++--- trunk/src/includes/CommonDictInterface.h | 15 +++++++++++---- trunk/src/includes/settings.h | 17 ++++++++++------ trunk/src/includes/translation.h | 20 +++++++++++++------ 8 files changed, 76 insertions(+), 35 deletions(-) diff --git a/trunk/src/base/backbone/backbone.cpp b/trunk/src/base/backbone/backbone.cpp index 6ebb152..1cf89d2 100644 --- a/trunk/src/base/backbone/backbone.cpp +++ b/trunk/src/base/backbone/backbone.cpp @@ -34,8 +34,8 @@ Backbone::~Backbone() } -Backbone::Backbone(const Backbone &b) { - dicts = QList (b.dicts); +Backbone::Backbone(const Backbone &b){ + dicts = QHash (b.dicts); plugins = QList (b.plugins); resultv = QHash (b.resultv); } @@ -44,27 +44,32 @@ int Backbone::searchLimit() { return searchLimitv; } -QHash Backbone::getDictionaries() { +QHash Backbone::getDictionaries() { return dicts; } -QList Backbone::getPlugins() { +QList Backbone::getPlugins() { return plugins; } +QList Backbone::getHistory() { + //TODO code needed +} + QHash Backbone::result() { return resultv; } void Backbone::stopSearching() { - foreach(CommonDictInterface* dict, dicts) + foreach(CommonDictInterface* dict, dicts.keys()) dict->stop(); } void Backbone::search(QString word) { //TODO add running searches in new threads - foreach(CommonDictInterface* dict, dicts) - dict->search(word, searchLimit()); + foreach(CommonDictInterface* dict, dicts.keys()) + if(dicts[dict] == 1) + dict->search(word, searchLimit()); } void Backbone::selectedDictionaries(QList activeDicts) { @@ -75,5 +80,17 @@ void Backbone::search(QString word) { dicts[dict] = 0; } + void Backbone::addDictionary(Settings *settings) { + CommonDictInterface* dict = settings->type()->getNew(settings); + dicts[dict] = 1; + } + + void Backbone::quit() { + foreach(CommonDictInterface* dict, dicts.keys()) + dict->stop(); + Q_EMIT closeOk(); +} + + diff --git a/trunk/src/base/backbone/backbone.h b/trunk/src/base/backbone/backbone.h index 9387819..3cd4fc7 100644 --- a/trunk/src/base/backbone/backbone.h +++ b/trunk/src/base/backbone/backbone.h @@ -26,13 +26,11 @@ #include #include +#include #include "../../includes/CommonDictInterface.h" #include "../../includes/settings.h" #include "../../includes/translation.h" -uint qHash(CommonDictInterface* dict) { - return dict->hash(); -} //! Inner part of dictionary - glues together GUI and plugins class Backbone : public QObject @@ -45,13 +43,13 @@ public: Backbone(const Backbone& b); //! \return all loadded dictionaries with activity state flag - QHash getDictionaries(); + QHash getDictionaries(); //! \return all loadded plugins - QList getPlugins(); + QList getPlugins(); //! \return history of performed searches - QList getHistory(); //TODO implementation needed (in future) + QList getHistory(); //TODO implementation needed (in future) //! \return return search fesult QHash result(); diff --git a/trunk/src/base/backbone/main.cpp b/trunk/src/base/backbone/main.cpp index f195704..c0d3099 100644 --- a/trunk/src/base/backbone/main.cpp +++ b/trunk/src/base/backbone/main.cpp @@ -1,11 +1,14 @@ #include #include "backbone.h" +uint qHash(CommonDictInterface* dict) { + return dict->hash(); +} + int main(int argc, char *argv[]) { QApplication a(argc, argv); - backbone w; - w.show(); + Backbone w; return a.exec(); } diff --git a/trunk/src/base/mDictionary.pro b/trunk/src/base/mDictionary.pro index 814e660..89e3adb 100644 --- a/trunk/src/base/mDictionary.pro +++ b/trunk/src/base/mDictionary.pro @@ -15,4 +15,7 @@ SOURCES += \ backbone/backbone.cpp HEADERS += \ - backbone/backbone.h + backbone/backbone.h \ + ../includes/translation.h \ + ../includes/settings.h \ + ../includes/CommonDictInterface.h diff --git a/trunk/src/base/mDictionary.pro.user b/trunk/src/base/mDictionary.pro.user index cb903d6..e1335af 100644 --- a/trunk/src/base/mDictionary.pro.user +++ b/trunk/src/base/mDictionary.pro.user @@ -15,7 +15,7 @@ Desktop Qt4ProjectManager.Target.DesktopTarget - 0 + 2 0 @@ -46,7 +46,7 @@ Qt w PATH Debug Qt4ProjectManager.Qt4BuildConfiguration 2 - /home/bulislaw/devel/mdictionary/trunk/src/base/mDictionary-build-desktop + /home/bulislaw/devel/mDictionary-build 3 0 true @@ -114,7 +114,7 @@ Qt 4.6.3 OpenSource Debug Qt4ProjectManager.Qt4BuildConfiguration 2 - /home/bulislaw/devel/mdictionary/trunk/src/base/mDictionary-build-desktop + /home/bulislaw/devel/mDictionary-build 2 0 true diff --git a/trunk/src/includes/CommonDictInterface.h b/trunk/src/includes/CommonDictInterface.h index 6310ba7..9cc4da4 100644 --- a/trunk/src/includes/CommonDictInterface.h +++ b/trunk/src/includes/CommonDictInterface.h @@ -20,13 +20,17 @@ *******************************************************************************/ // Created by Bartosz Szatkowski + + +#ifndef COMMONDICTINTERFACE_H +#define COMMONDICTINTERFACE_H + #include #include #include #include -#include "CommonDictInterface.h" #include "translation.h" -#include "settings.h" +class Settings; @@ -34,7 +38,7 @@ class CommonDictInterface : public QObject { Q_OBJECT public: - CommonDictInterface(const QObject *parent = 0) = 0; + CommonDictInterface(const QObject *parent = 0) ; //! returns source language code iso 639-2 virtual QString langFrom() const = 0; @@ -64,6 +68,8 @@ class CommonDictInterface : public QObject { //! returns whether plugin can start searching virtual bool isAvailable() const = 0; + virtual uint hash() const = 0; + public Q_SLOTS: /*! performes search in dictionary \param word word to search in dictionary @@ -84,4 +90,5 @@ class CommonDictInterface : public QObject { //! emited after dictionary is ready to use afer being loaded void loaded(CommonDictInterface*); -} +}; +#endif diff --git a/trunk/src/includes/settings.h b/trunk/src/includes/settings.h index 4313692..14a0c2d 100644 --- a/trunk/src/includes/settings.h +++ b/trunk/src/includes/settings.h @@ -20,23 +20,28 @@ *******************************************************************************/ //Created by Bartosz Szatkowski + +#ifndef SETTINGS_H +#define SETTINGS_H + #include #include "CommonDictInterface.h" //! Plugin specific configuration class Settings { public: -<<<<<<< HEAD //! \retrun value fo given key //! \param key - QString value(const QString key) const = 0; + virtual QString value(const QString key) const = 0; //! sets key to value - void setValue(const QString key, const QString value) = 0; + virtual void setValue(const QString key, const QString value) = 0; //! \return dict CommonDictInterface - CommonDictInterface type() const = 0; + virtual CommonDictInterface* type() const = 0; //! sets settings type to given dictionary - void setType(const CommonDictInterface) = 0; -} + virtual void setType(const CommonDictInterface*) = 0; +}; + +#endif diff --git a/trunk/src/includes/translation.h b/trunk/src/includes/translation.h index a56fa11..0ef07f2 100644 --- a/trunk/src/includes/translation.h +++ b/trunk/src/includes/translation.h @@ -20,18 +20,26 @@ *******************************************************************************/ //Created by Bartosz Szatkowski + +#ifndef TRANSLATION_H +#define TRANSLATION_H + #include + + //! Keeping raw form of translation to be parsed only when needed class Translation { public: //! \return word to be translated - QString key() const = 0; + virtual QString key() const = 0; - //! \returns dictionary information (plugin name, languages, etc)\ - //! to be displayed in translation table header - QString dictionaryInfo() const = 0; + /*! \returns dictionary information (plugin name, languages, etc)\ + to be displayed in translation table header */ + virtual QString dictionaryInfo() const = 0; //! \return parsed raw format into html - QString toHtml() const = 0; -} + virtual QString toHtml() const = 0; +}; + +#endif -- 1.7.9.5