summaryrefslogtreecommitdiffstats
path: root/fbreader/src/optionsDialog
diff options
context:
space:
mode:
Diffstat (limited to 'fbreader/src/optionsDialog')
-rw-r--r--fbreader/src/optionsDialog/AbstractOptionsDialog.cpp48
-rw-r--r--fbreader/src/optionsDialog/AbstractOptionsDialog.h50
-rw-r--r--fbreader/src/optionsDialog/IntegrationTab.cpp159
-rw-r--r--fbreader/src/optionsDialog/bookInfo/BookInfoDialog.cpp564
-rw-r--r--fbreader/src/optionsDialog/bookInfo/BookInfoDialog.h80
-rw-r--r--fbreader/src/optionsDialog/library/LibraryOptionsDialog.cpp39
-rw-r--r--fbreader/src/optionsDialog/library/LibraryOptionsDialog.h32
-rw-r--r--fbreader/src/optionsDialog/lookAndFeel/FormatOptionsPage.cpp112
-rw-r--r--fbreader/src/optionsDialog/lookAndFeel/FormatOptionsPage.h33
-rw-r--r--fbreader/src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.cpp78
-rw-r--r--fbreader/src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.h38
-rw-r--r--fbreader/src/optionsDialog/lookAndFeel/OptionsPage.cpp52
-rw-r--r--fbreader/src/optionsDialog/lookAndFeel/OptionsPage.h76
-rw-r--r--fbreader/src/optionsDialog/lookAndFeel/StyleOptionsPage.cpp127
-rw-r--r--fbreader/src/optionsDialog/lookAndFeel/StyleOptionsPage.h34
-rw-r--r--fbreader/src/optionsDialog/network/NetworkOptionsDialog.cpp104
-rw-r--r--fbreader/src/optionsDialog/network/NetworkOptionsDialog.h32
-rw-r--r--fbreader/src/optionsDialog/reading/IndicatorTab.cpp171
-rw-r--r--fbreader/src/optionsDialog/reading/KeyBindingsTab.cpp285
-rw-r--r--fbreader/src/optionsDialog/reading/ReadingOptionsDialog.cpp125
-rw-r--r--fbreader/src/optionsDialog/reading/ReadingOptionsDialog.h36
-rw-r--r--fbreader/src/optionsDialog/system/SystemOptionsDialog.cpp86
-rw-r--r--fbreader/src/optionsDialog/system/SystemOptionsDialog.h32
23 files changed, 0 insertions, 2393 deletions
diff --git a/fbreader/src/optionsDialog/AbstractOptionsDialog.cpp b/fbreader/src/optionsDialog/AbstractOptionsDialog.cpp
deleted file mode 100644
index eb687b8..0000000
--- a/fbreader/src/optionsDialog/AbstractOptionsDialog.cpp
+++ /dev/null
@@ -1,48 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLDialogManager.h>
-#include <ZLOptionsDialog.h>
-
-#include "AbstractOptionsDialog.h"
-
-#include "../fbreader/FBReader.h"
-
-
-class OptionsApplyRunnable : public ZLRunnable {
-
-public:
- void run();
-};
-
-void OptionsApplyRunnable::run() {
- FBReader &fbreader = FBReader::Instance();
- fbreader.grabAllKeys(fbreader.KeyboardControlOption.value());
- fbreader.clearTextCaches();
- fbreader.refreshWindow();
-}
-
-
-AbstractOptionsDialog::AbstractOptionsDialog(const ZLResourceKey &key, bool showApplyButton) {
- myDialog = ZLDialogManager::Instance().createOptionsDialog(key, new OptionsApplyRunnable(), showApplyButton);
-}
-
-void AbstractOptionsDialog::storeTemporaryOption(ZLOption *option) {
- myTemporaryOptions.push_back(option);
-}
diff --git a/fbreader/src/optionsDialog/AbstractOptionsDialog.h b/fbreader/src/optionsDialog/AbstractOptionsDialog.h
deleted file mode 100644
index 31f4904..0000000
--- a/fbreader/src/optionsDialog/AbstractOptionsDialog.h
+++ /dev/null
@@ -1,50 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __ABSTRACTOPTIONSDIALOG_H__
-#define __ABSTRACTOPTIONSDIALOG_H__
-
-#include <vector>
-#include <shared_ptr.h>
-
-class ZLOptionsDialog;
-class ZLResourceKey;
-class ProgramCollection;
-class ZLOption;
-class ZLOptionEntry;
-
-class AbstractOptionsDialog {
-
-public:
- AbstractOptionsDialog(const ZLResourceKey &key, bool showApplyButton);
-
- ZLOptionsDialog &dialog();
-
-protected:
- void createIntegrationTab(shared_ptr<ProgramCollection> collection, const ZLResourceKey &key, std::vector<std::pair<ZLResourceKey,ZLOptionEntry*> > &additionalOptions);
- void storeTemporaryOption(ZLOption *option);
-
-private:
- shared_ptr<ZLOptionsDialog> myDialog;
- std::vector<shared_ptr<ZLOption> > myTemporaryOptions;
-};
-
-inline ZLOptionsDialog &AbstractOptionsDialog::dialog() { return *myDialog; }
-
-#endif /* __ABSTRACTOPTIONSDIALOG_H__ */
diff --git a/fbreader/src/optionsDialog/IntegrationTab.cpp b/fbreader/src/optionsDialog/IntegrationTab.cpp
deleted file mode 100644
index ca3ebf0..0000000
--- a/fbreader/src/optionsDialog/IntegrationTab.cpp
+++ /dev/null
@@ -1,159 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLOptionsDialog.h>
-#include <ZLOptionEntry.h>
-#include <ZLStringUtil.h>
-
-#include <ZLToggleBooleanOptionEntry.h>
-#include <ZLSimpleOptionEntry.h>
-
-#include "AbstractOptionsDialog.h"
-
-#include "../options/FBCategoryKey.h"
-#include "../external/ProgramCollection.h"
-
-
-class ProgramChoiceEntry : public ZLComboOptionEntry {
-
-public:
- ProgramChoiceEntry(const ProgramCollection &collection);
-
-private:
- const std::vector<std::string> &values() const;
- void onAccept(const std::string &value);
- void onValueSelected(int index);
-
-public:
- const std::string &initialValue() const;
- void addDependentEntry(const std::string &name, ZLOptionEntry *dependentEntry);
- void updateDependentEntries(bool visible);
-
-private:
- const ProgramCollection &myCollection;
- std::string myValue;
- std::map<ZLOptionEntry*,std::string> myDependentEntries;
-};
-
-class EnableIntegrationEntry : public ZLToggleBooleanOptionEntry {
-
-public:
- EnableIntegrationEntry(ZLBooleanOption &option);
- void setProgramChoiceEntry(ProgramChoiceEntry *programChoiceEntry);
- void onStateChanged(bool state);
-
-private:
- ProgramChoiceEntry *myProgramChoiceEntry;
-};
-
-ProgramChoiceEntry::ProgramChoiceEntry(const ProgramCollection &collection) : myCollection(collection) {
- myValue = initialValue();
-}
-
-const std::string &ProgramChoiceEntry::initialValue() const {
- return myCollection.CurrentNameOption.value();
-}
-
-const std::vector<std::string> &ProgramChoiceEntry::values() const {
- return myCollection.names();
-}
-
-void ProgramChoiceEntry::onAccept(const std::string &value) {
- myCollection.CurrentNameOption.setValue(value);
-}
-
-void ProgramChoiceEntry::addDependentEntry(const std::string &name, ZLOptionEntry *dependentEntry) {
- myDependentEntries[dependentEntry] = name;
-}
-
-void ProgramChoiceEntry::onValueSelected(int index) {
- myValue = values()[index];
- updateDependentEntries(true);
-}
-
-void ProgramChoiceEntry::updateDependentEntries(bool visible) {
- for (std::map<ZLOptionEntry*,std::string>::const_iterator it = myDependentEntries.begin(); it != myDependentEntries.end(); ++it) {
- it->first->setVisible(visible && (it->second == myValue));
- }
-}
-
-EnableIntegrationEntry::EnableIntegrationEntry(ZLBooleanOption &option) : ZLToggleBooleanOptionEntry(option), myProgramChoiceEntry(0) {
-}
-
-void EnableIntegrationEntry::setProgramChoiceEntry(ProgramChoiceEntry *programChoiceEntry) {
- addDependentEntry(programChoiceEntry);
- myProgramChoiceEntry = programChoiceEntry;
-}
-
-void EnableIntegrationEntry::onStateChanged(bool state) {
- ZLToggleBooleanOptionEntry::onStateChanged(state);
- if (myProgramChoiceEntry != 0) {
- myProgramChoiceEntry->updateDependentEntries(state);
- }
-}
-
-void AbstractOptionsDialog::createIntegrationTab(shared_ptr<ProgramCollection> collection, const ZLResourceKey &key, std::vector<std::pair<ZLResourceKey,ZLOptionEntry*> > &additionalOptions) {
- if (!collection.isNull()) {
- const std::vector<std::string> &programNames = collection->names();
- if (!programNames.empty()) {
- ZLDialogContent &tab = myDialog->createTab(key);
- std::string optionName;
- if (programNames.size() == 1) {
- optionName = ZLStringUtil::printf(tab.value(ZLResourceKey("enableIntegration")), programNames[0]);
- } else {
- optionName = tab.value(ZLResourceKey("defaultText"));
- }
- EnableIntegrationEntry *enableIntegrationEntry =
- new EnableIntegrationEntry(collection->EnableCollectionOption);
- tab.addOption(optionName, "", enableIntegrationEntry);
-
- ProgramChoiceEntry *programChoiceEntry = 0;
- if (programNames.size() > 1) {
- programChoiceEntry = new ProgramChoiceEntry(*collection);
- tab.addOption(ZLResourceKey("choice"), programChoiceEntry);
- enableIntegrationEntry->setProgramChoiceEntry(programChoiceEntry);
- }
-
- for (std::vector<std::string>::const_iterator it = programNames.begin(); it != programNames.end(); ++it) {
- const std::vector<Program::OptionDescription> &options = collection->program(*it)->options();
- for (std::vector<Program::OptionDescription>::const_iterator jt = options.begin(); jt != options.end(); ++jt) {
- ZLStringOption *parameterOption = new ZLStringOption(FBCategoryKey::EXTERNAL, *it, jt->OptionName, jt->DefaultValue);
- storeTemporaryOption(parameterOption);
- ZLOptionEntry *parameterEntry = new ZLSimpleStringOptionEntry(*parameterOption);
- if (programChoiceEntry != 0) {
- programChoiceEntry->addDependentEntry(*it, parameterEntry);
- } else {
- enableIntegrationEntry->addDependentEntry(parameterEntry);
- }
- tab.addOption(ZLResourceKey(jt->OptionName), parameterEntry);
- }
- }
- for (std::vector<std::pair<ZLResourceKey,ZLOptionEntry*> >::const_iterator it = additionalOptions.begin(); it != additionalOptions.end(); ++it) {
- enableIntegrationEntry->addDependentEntry(it->second);
- tab.addOption(it->first, it->second);
- }
- enableIntegrationEntry->onStateChanged(enableIntegrationEntry->initialState());
- return;
- }
- }
-
- for (std::vector<std::pair<ZLResourceKey,ZLOptionEntry*> >::const_iterator it = additionalOptions.begin(); it != additionalOptions.end(); ++it) {
- delete it->second;
- }
-}
diff --git a/fbreader/src/optionsDialog/bookInfo/BookInfoDialog.cpp b/fbreader/src/optionsDialog/bookInfo/BookInfoDialog.cpp
deleted file mode 100644
index 197bd98..0000000
--- a/fbreader/src/optionsDialog/bookInfo/BookInfoDialog.cpp
+++ /dev/null
@@ -1,564 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <algorithm>
-
-#include <ZLDialogManager.h>
-#include <ZLOptionsDialog.h>
-#include <ZLOptionEntry.h>
-#include <ZLFile.h>
-#include <ZLLanguageList.h>
-#include <ZLStringUtil.h>
-
-#include <ZLStringInfoEntry.h>
-#include <ZLSimpleOptionEntry.h>
-#include <ZLLanguageOptionEntry.h>
-
-#include "BookInfoDialog.h"
-
-#include "../../library/Library.h"
-#include "../../encodingOption/EncodingOptionEntry.h"
-#include "../../library/Book.h"
-#include "../../library/Tag.h"
-#include "../../library/Author.h"
-
-static const std::size_t AUTHOR_ENTRIES_POOL_SIZE = 64;
-static const std::size_t TAG_ENTRIES_POOL_SIZE = 64;
-
-class AuthorDisplayNameEntry : public ZLComboOptionEntry {
-
-public:
- AuthorDisplayNameEntry(BookInfoDialog &dialog, shared_ptr<Author> initialAuthor, bool &visible);
-
- const std::string &initialValue() const;
- const std::vector<std::string> &values() const;
- void onAccept(const std::string &value);
-
- bool useOnValueEdited() const;
- void onValueEdited(const std::string &value);
- void onValueSelected(int index);
-
-private:
- void onValueChanged(const std::string &value);
-
-private:
- BookInfoDialog &myInfoDialog;
- mutable std::vector<std::string> myValues;
- shared_ptr<Author> myCurrentAuthor;
-
- std::string myInitialValue;
- bool myEmpty;
-
-friend class SeriesTitleEntry;
-friend class BookInfoApplyAction;
-};
-
-
-class SeriesTitleEntry : public ZLComboOptionEntry {
-
-public:
- SeriesTitleEntry(BookInfoDialog &dialog);
-
- const std::string &initialValue() const;
- const std::vector<std::string> &values() const;
- void onAccept(const std::string &value);
-
- bool useOnValueEdited() const;
- void onValueEdited(const std::string &value);
- void onValueSelected(int index);
-
-private:
- BookInfoDialog &myInfoDialog;
- std::set<std::string> myOriginalValuesSet;
- mutable std::vector<std::string> myValues;
-};
-
-
-class BookIndexEntry : public ZLStringOptionEntry {
-
-public:
- BookIndexEntry(BookInfoDialog &dialog);
-
- const std::string &initialValue() const;
- void onAccept(const std::string &value);
-
-private:
- BookInfoDialog &myInfoDialog;
-};
-
-
-
-
-AuthorDisplayNameEntry::AuthorDisplayNameEntry(BookInfoDialog &dialog, shared_ptr<Author> initialAuthor, bool &visible) :
- ZLComboOptionEntry(true), myInfoDialog(dialog), myCurrentAuthor(initialAuthor) {
-
- if (myCurrentAuthor.isNull()) {
- myInitialValue = "";
- myEmpty = true;
- } else {
- myInitialValue = myCurrentAuthor->name();
- myEmpty = myInitialValue.empty();
- }
- setVisible(visible || !myEmpty);
- if (visible && myEmpty) {
- visible = false;
- }
-}
-
-const std::string &AuthorDisplayNameEntry::initialValue() const {
- return myInitialValue;
-}
-
-const std::vector<std::string> &AuthorDisplayNameEntry::values() const {
- if (myValues.empty()) {
- const std::string &initial = initialValue();
- bool addInitial = true;
- const AuthorList &authors = Library::Instance().authors();
- for (AuthorList::const_iterator it = authors.begin(); it != authors.end(); ++it) {
- if (it->isNull()) {
- continue;
- }
- const std::string name = (*it)->name();
- if (addInitial && (name == initial)) {
- addInitial = false;
- }
- myValues.push_back(name);
- }
- if (addInitial) {
- myValues.push_back(initial);
- }
- }
- return myValues;
-}
-
-void AuthorDisplayNameEntry::onAccept(const std::string &value) {
- if (!isVisible() || value.empty()) {
- myCurrentAuthor = 0;
- return;
- }
- if (!myCurrentAuthor.isNull() && value == myCurrentAuthor->name()) {
- //myCurrentAuthor = myCurrentAuthor;
- return;
- }
- myCurrentAuthor = Author::getAuthor(value);
-}
-
-
-bool AuthorDisplayNameEntry::useOnValueEdited() const {
- return true;
-}
-
-void AuthorDisplayNameEntry::onValueEdited(const std::string &value) {
- onValueChanged(value);
-}
-
-void AuthorDisplayNameEntry::onValueSelected(int index) {
- const AuthorList &authors = Library::Instance().authors();
- myCurrentAuthor = (((std::size_t)index) < authors.size()) ? authors[index] : 0;
- myInfoDialog.mySeriesTitleEntry->resetView();
- onValueChanged(myValues[index]);
-}
-
-void AuthorDisplayNameEntry::onValueChanged(const std::string &value) {
- if (!myInfoDialog.myAuthorsDone || !isVisible()) {
- return;
- }
-
- myEmpty = value.empty();
- if (myEmpty) {
- for (std::size_t i = 0; i < myInfoDialog.myAuthorEntries.size(); ++i) {
- AuthorDisplayNameEntry &entry = *myInfoDialog.myAuthorEntries[i];
- if (entry.myEmpty && entry.isVisible() && this != &entry) {
- entry.setVisible(false);
- }
- }
- } else {
- std::size_t i, lastvisible = (std::size_t) -1;
- for (i = 0; i < myInfoDialog.myAuthorEntries.size(); ++i) {
- AuthorDisplayNameEntry &entry = *myInfoDialog.myAuthorEntries[i];
- if (entry.isVisible()) {
- lastvisible = i;
- if (entry.myEmpty) {
- break;
- }
- }
- }
- if (i == myInfoDialog.myAuthorEntries.size()) {
- if (lastvisible + 1 < i) {
- AuthorDisplayNameEntry &entry = *myInfoDialog.myAuthorEntries[lastvisible + 1];
- entry.setVisible(true);
- }
- // else pool is over
- }
- }
-}
-
-
-
-
-SeriesTitleEntry::SeriesTitleEntry(BookInfoDialog &dialog) : ZLComboOptionEntry(true), myInfoDialog(dialog) {
- const AuthorList &authors = myInfoDialog.myBook->authors();
- myOriginalValuesSet.insert(initialValue());
- myOriginalValuesSet.insert("");
- const Library &library = Library::Instance();
- for (AuthorList::const_iterator it = authors.begin(); it != authors.end(); ++it) {
- library.collectSeriesTitles(*it, myOriginalValuesSet);
- }
-}
-
-const std::string &SeriesTitleEntry::initialValue() const {
- return myInfoDialog.myBook->seriesTitle();
-}
-
-const std::vector<std::string> &SeriesTitleEntry::values() const {
- std::set<std::string> valuesSet(myOriginalValuesSet);
-
- const Library &library = Library::Instance();
- const AuthorList &authors = myInfoDialog.myBook->authors();
- for (std::vector<AuthorDisplayNameEntry*>::const_iterator it = myInfoDialog.myAuthorEntries.begin(); it != myInfoDialog.myAuthorEntries.end(); ++it) {
- shared_ptr<Author> currentAuthor = (*it)->myCurrentAuthor;
- if (!currentAuthor.isNull() && std::find(authors.begin(), authors.end(), currentAuthor) == authors.end()) {
- library.collectSeriesTitles(currentAuthor, valuesSet);
- }
- }
-
- /*myValues.clear();
- for (std::set<std::string>::const_iterator it = valuesSet.begin(); it != valuesSet.end(); ++it) {
- myValues.push_back(*it);
- }*/
- myValues.assign(valuesSet.begin(), valuesSet.end());
- return myValues;
-}
-
-void SeriesTitleEntry::onAccept(const std::string &value) {
- Book &book = *myInfoDialog.myBook;
- book.setSeries(value, book.indexInSeries());
-}
-
-void SeriesTitleEntry::onValueSelected(int index) {
- myInfoDialog.myBookIndexEntry->setVisible(index != 0);
-}
-
-bool SeriesTitleEntry::useOnValueEdited() const {
- return true;
-}
-
-void SeriesTitleEntry::onValueEdited(const std::string &value) {
- myInfoDialog.myBookIndexEntry->setVisible(!value.empty());
-}
-
-BookIndexEntry::BookIndexEntry(BookInfoDialog &dialog) : myInfoDialog(dialog) {
-}
-
-const std::string &BookIndexEntry::initialValue() const {
- return myInfoDialog.myBook->indexInSeries().value();
-}
-
-void BookIndexEntry::onAccept(const std::string &value) {
- Book &book = *myInfoDialog.myBook;
- //TODO implement validation
- book.setSeries(book.seriesTitle(), Number(value));
-}
-
-class BookTitleEntry : public ZLStringOptionEntry {
-
-public:
- BookTitleEntry(BookInfoDialog &dialog);
-
- const std::string &initialValue() const;
- void onAccept(const std::string &value);
-
-private:
- BookInfoDialog &myInfoDialog;
-};
-
-BookTitleEntry::BookTitleEntry(BookInfoDialog &dialog) : myInfoDialog(dialog) {
-}
-
-const std::string &BookTitleEntry::initialValue() const {
- return myInfoDialog.myBook->title();
-}
-
-void BookTitleEntry::onAccept(const std::string &value) {
- myInfoDialog.myBook->setTitle(value);
-}
-
-
-
-
-
-
-class BookEncodingEntry : public AbstractEncodingEntry {
-
-public:
- BookEncodingEntry(BookInfoDialog &dialog);
-
- void onAcceptValue(const std::string &value);
-
-private:
- BookInfoDialog &myInfoDialog;
-};
-
-BookEncodingEntry::BookEncodingEntry(BookInfoDialog &dialog) :
- AbstractEncodingEntry(dialog.myBook->encoding()),
- myInfoDialog(dialog) {
-}
-
-void BookEncodingEntry::onAcceptValue(const std::string &value) {
- myInfoDialog.myBook->setEncoding(value);
-}
-
-
-
-class BookLanguageEntry : public ZLAbstractLanguageOptionEntry {
-
-public:
- BookLanguageEntry(BookInfoDialog &dialog, const std::vector<std::string> &languageCodes);
-
- void onAcceptCode(const std::string &code);
-
-private:
- BookInfoDialog &myInfoDialog;
-};
-
-BookLanguageEntry::BookLanguageEntry(BookInfoDialog &dialog, const std::vector<std::string> &languageCodes) :
- ZLAbstractLanguageOptionEntry(dialog.myBook->language(), languageCodes),
- myInfoDialog(dialog) {
-}
-
-void BookLanguageEntry::onAcceptCode(const std::string &code) {
- myInfoDialog.myBook->setLanguage(code);
-}
-
-
-
-
-
-class BookTagEntry : public ZLComboOptionEntry {
-
-public:
- BookTagEntry(BookInfoDialog &dialog, std::string initialTag, bool &visible);
-
- const std::string &initialValue() const;
- const std::vector<std::string> &values() const;
- void onAccept(const std::string &value);
-
- bool useOnValueEdited() const;
- void onValueEdited(const std::string &value);
- void onValueSelected(int index);
-
-private:
- void onValueChanged(const std::string &value);
-
-private:
- BookInfoDialog &myInfoDialog;
- std::string myInitialValue;
- bool myEmpty;
-
- mutable std::vector<std::string> myValues;
-};
-
-BookTagEntry::BookTagEntry(BookInfoDialog &dialog, std::string initialTag, bool &visible) :
- ZLComboOptionEntry(true), myInfoDialog(dialog), myInitialValue(initialTag) {
-
- myEmpty = myInitialValue.empty();
- setVisible(visible || !myEmpty);
- if (visible && myEmpty) {
- visible = false;
- }
-}
-
-const std::string &BookTagEntry::initialValue() const {
- return myInitialValue;
-}
-
-const std::vector<std::string> &BookTagEntry::values() const {
- if (myValues.empty()) {
- myValues.push_back("");
- Tag::collectTagNames(myValues);
- }
- return myValues;
-}
-
-void BookTagEntry::onAccept(const std::string &value) {
- if (isVisible() && !value.empty()) {
- myInfoDialog.myNewTags.push_back(value);
- }
-}
-
-bool BookTagEntry::useOnValueEdited() const {
- return true;
-}
-
-void BookTagEntry::onValueEdited(const std::string &value) {
- onValueChanged(value);
-}
-
-void BookTagEntry::onValueSelected(int index) {
- onValueChanged(myValues[index]);
-}
-
-void BookTagEntry::onValueChanged(const std::string &value) {
- if (!myInfoDialog.myTagsDone || !isVisible()) {
- return;
- }
-
- myEmpty = value.empty();
- if (myEmpty) {
- for (std::size_t i = 0; i < myInfoDialog.myTagEntries.size(); ++i) {
- BookTagEntry &entry = *myInfoDialog.myTagEntries[i];
- if (entry.myEmpty && entry.isVisible() && this != &entry) {
- entry.setVisible(false);
- }
- }
- } else {
- std::size_t i, lastvisible = (std::size_t) -1;
- for (i = 0; i < myInfoDialog.myTagEntries.size(); ++i) {
- BookTagEntry &entry = *myInfoDialog.myTagEntries[i];
- if (entry.isVisible()) {
- lastvisible = i;
- if (entry.myEmpty) {
- break;
- }
- }
- }
- if (i == myInfoDialog.myTagEntries.size()) {
- if (lastvisible + 1 < i) {
- BookTagEntry &entry = *myInfoDialog.myTagEntries[lastvisible + 1];
- entry.setVisible(true);
- }
- }
- }
-}
-
-class BookInfoApplyAction : public ZLRunnable {
-
-public:
- BookInfoApplyAction(BookInfoDialog &dialog);
- void run();
-
-private:
- BookInfoDialog &myInfoDialog;
-};
-
-BookInfoApplyAction::BookInfoApplyAction(BookInfoDialog &dialog) : myInfoDialog(dialog) {}
-
-void BookInfoApplyAction::run() {
- Book &book = *myInfoDialog.myBook;
-
- AuthorList authors;
- for (std::size_t i = 0; i < myInfoDialog.myAuthorEntries.size(); ++i) {
- shared_ptr<Author> a = myInfoDialog.myAuthorEntries[i]->myCurrentAuthor;
- if (!a.isNull() &&
- std::find(authors.begin(), authors.end(), a) == authors.end()) {
- authors.push_back(a);
- }
- }
-
- book.removeAllAuthors();
- for (AuthorList::const_iterator it = authors.begin(); it != authors.end(); ++it) {
- book.addAuthor(*it);
- }
-
- book.removeAllTags();
- for (std::size_t i = 0; i < myInfoDialog.myNewTags.size(); ++i) {
- book.addTag(myInfoDialog.myNewTags[i]);
- }
-
- Library::Instance().updateBook(myInfoDialog.myBook);
-}
-
-BookInfoDialog::BookInfoDialog(shared_ptr<Book> book) : myBook(book) {
- myDialog = ZLDialogManager::Instance().createOptionsDialog(ZLResourceKey("InfoDialog"), new BookInfoApplyAction(*this));
-
- ZLDialogContent &commonTab = myDialog->createTab(ZLResourceKey("Common"));
- commonTab.addOption(ZLResourceKey("file"),
- new ZLStringInfoEntry(ZLFile::fileNameToUtf8(book->file().path()))
- );
- commonTab.addOption(ZLResourceKey("title"), new BookTitleEntry(*this));
-
- myEncodingEntry = new BookEncodingEntry(*this);
- myEncodingSetEntry =
- (myEncodingEntry->initialValue() != Book::AutoEncoding) ?
- new EncodingSetEntry(*(EncodingEntry*)myEncodingEntry) : 0;
- std::vector<std::string> languageCodes = ZLLanguageList::languageCodes();
- languageCodes.push_back("de-traditional");
- myLanguageEntry = new BookLanguageEntry(*this, languageCodes);
- mySeriesTitleEntry = new SeriesTitleEntry(*this);
- myBookIndexEntry = new BookIndexEntry(*this);
-
- commonTab.addOption(ZLResourceKey("language"), myLanguageEntry);
- if (myEncodingSetEntry != 0) {
- commonTab.addOption(ZLResourceKey("encodingSet"), myEncodingSetEntry);
- }
- commonTab.addOption(ZLResourceKey("encoding"), myEncodingEntry);
-
- initAuthorEntries();
-
- ZLDialogContent &seriesTab = myDialog->createTab(ZLResourceKey("Series"));
- seriesTab.addOption(ZLResourceKey("seriesTitle"), mySeriesTitleEntry);
- seriesTab.addOption(ZLResourceKey("bookIndex"), myBookIndexEntry);
-
- mySeriesTitleEntry->onValueEdited(mySeriesTitleEntry->initialValue());
- /*
- ZLOrderOptionEntry *orderEntry = new ZLOrderOptionEntry();
- orderEntry->values().push_back("First");
- orderEntry->values().push_back("Second");
- orderEntry->values().push_back("Third");
- orderEntry->values().push_back("Fourth");
- orderEntry->values().push_back("Fifth");
- seriesTab.addOption(orderEntry);
- */
-
- initTagEntries();
-
- shared_ptr<FormatPlugin> plugin = PluginCollection::Instance().plugin(*book);
- if (!plugin.isNull()) {
- myFormatInfoPage = plugin->createInfoPage(*myDialog, book->file());
- }
-}
-
-void BookInfoDialog::initTagEntries() {
- bool visible = true;
- const TagList &tags = myBook->tags();
- myTagsDone = false;
- myTagsTab = &myDialog->createTab(ZLResourceKey("Tags"));
- for (std::size_t i = 0; i < TAG_ENTRIES_POOL_SIZE; ++i) {
- std::string tag = (i < tags.size()) ? tags[i]->fullName() : "";
- BookTagEntry *entry = new BookTagEntry(*this, tag, visible);
- myTagEntries.push_back(entry);
- myTagsTab->addOption(ZLResourceKey("tags"), entry);
- }
- myTagsDone = true;
-}
-
-void BookInfoDialog::initAuthorEntries() {
- bool visible = true;
- const AuthorList &authors = myBook->authors();
- myAuthorsDone = false;
- myAuthorsTab = &myDialog->createTab(ZLResourceKey("Authors"));
- for (std::size_t i = 0; i < AUTHOR_ENTRIES_POOL_SIZE; ++i) {
- shared_ptr<Author> author = (i < authors.size()) ? authors[i] : 0;
- AuthorDisplayNameEntry *entry = new AuthorDisplayNameEntry(*this, author, visible);
- myAuthorEntries.push_back(entry);
- myAuthorsTab->addOption(ZLResourceKey("authorDisplayName"), entry);
- }
- myAuthorsDone = true;
-}
-
diff --git a/fbreader/src/optionsDialog/bookInfo/BookInfoDialog.h b/fbreader/src/optionsDialog/bookInfo/BookInfoDialog.h
deleted file mode 100644
index a5bb75d..0000000
--- a/fbreader/src/optionsDialog/bookInfo/BookInfoDialog.h
+++ /dev/null
@@ -1,80 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __BOOKINFODIALOG_H__
-#define __BOOKINFODIALOG_H__
-
-#include <string>
-
-#include <ZLOptionEntry.h>
-
-#include "../../formats/FormatPlugin.h"
-
-class ZLOptionsDialog;
-class ZLDialogContent;
-class AuthorDisplayNameEntry;
-class SeriesTitleEntry;
-class BookIndexEntry;
-class BookTagEntry;
-
-class BookInfoDialog {
-
-public:
- BookInfoDialog(shared_ptr<Book> book);
-
- ZLOptionsDialog &dialog();
-
-private:
- void initAuthorEntries();
- void initTagEntries();
-
-private:
- shared_ptr<ZLOptionsDialog> myDialog;
- shared_ptr<Book> myBook;
- shared_ptr<FormatInfoPage> myFormatInfoPage;
-
- ZLComboOptionEntry *myEncodingSetEntry;
- ZLComboOptionEntry *myEncodingEntry;
- ZLComboOptionEntry *myLanguageEntry;
- SeriesTitleEntry *mySeriesTitleEntry;
- BookIndexEntry *myBookIndexEntry;
-
- ZLDialogContent *myTagsTab;
- std::vector<BookTagEntry *> myTagEntries;
- bool myTagsDone;
-
- std::vector<std::string> myNewTags;
-
- ZLDialogContent *myAuthorsTab;
- std::vector<AuthorDisplayNameEntry *> myAuthorEntries;
- bool myAuthorsDone;
-
-friend class AuthorDisplayNameEntry;
-friend class SeriesTitleEntry;
-friend class BookIndexEntry;
-friend class BookTitleEntry;
-friend class BookEncodingEntry;
-friend class BookLanguageEntry;
-friend class BookTagEntry;
-friend class BookInfoApplyAction;
-};
-
-inline ZLOptionsDialog &BookInfoDialog::dialog() { return *myDialog; }
-
-#endif /* __BOOKINFODIALOG_H__ */
diff --git a/fbreader/src/optionsDialog/library/LibraryOptionsDialog.cpp b/fbreader/src/optionsDialog/library/LibraryOptionsDialog.cpp
deleted file mode 100644
index 1c4608a..0000000
--- a/fbreader/src/optionsDialog/library/LibraryOptionsDialog.cpp
+++ /dev/null
@@ -1,39 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include "LibraryOptionsDialog.h"
-
-#include <ZLDialogManager.h>
-#include <ZLOptionsDialog.h>
-
-#include "../../fbreader/FBReader.h"
-
-#include "../../network/NetworkLinkCollection.h"
-
-
-LibraryOptionsDialog::LibraryOptionsDialog() : AbstractOptionsDialog(ZLResourceKey("LibraryOptionsDialog"), true) {
-
- ZLDialogContent &libraryTab = dialog().createTab(ZLResourceKey("Library"));
-
- Library &library = Library::Instance();
- libraryTab.addOption(ZLResourceKey("bookPath"), library.PathOption);
- libraryTab.addOption(ZLResourceKey("lookInSubdirectories"), library.ScanSubdirsOption);
- libraryTab.addOption(ZLResourceKey("collectBooksWithoutMetaInfo"), library.CollectAllBooksOption);
- libraryTab.addOption(ZLResourceKey("downloadDirectory"), NetworkLinkCollection::Instance().DirectoryOption);
-}
diff --git a/fbreader/src/optionsDialog/library/LibraryOptionsDialog.h b/fbreader/src/optionsDialog/library/LibraryOptionsDialog.h
deleted file mode 100644
index da217f6..0000000
--- a/fbreader/src/optionsDialog/library/LibraryOptionsDialog.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __LIBRARYOPTIONSDIALOG_H__
-#define __LIBRARYOPTIONSDIALOG_H__
-
-#include "../AbstractOptionsDialog.h"
-
-
-class LibraryOptionsDialog : public AbstractOptionsDialog {
-
-public:
- LibraryOptionsDialog();
-};
-
-#endif /* __LIBRARYOPTIONSDIALOG_H__ */
diff --git a/fbreader/src/optionsDialog/lookAndFeel/FormatOptionsPage.cpp b/fbreader/src/optionsDialog/lookAndFeel/FormatOptionsPage.cpp
deleted file mode 100644
index 0b77548..0000000
--- a/fbreader/src/optionsDialog/lookAndFeel/FormatOptionsPage.cpp
+++ /dev/null
@@ -1,112 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLOptionsDialog.h>
-
-#include <ZLSimpleOptionEntry.h>
-
-#include <ZLTextStyle.h>
-#include <ZLTextStyleCollection.h>
-#include <ZLTextStyleOptions.h>
-
-#include "FormatOptionsPage.h"
-
-#include "../../options/FBTextStyle.h"
-#include "../../bookmodel/FBTextKind.h"
-
-static const ZLResourceKey KEY_STYLE("style");
-static const ZLResourceKey KEY_BASE("Base");
-
-static const ZLResourceKey KEY_DUMMY("");
-static const ZLResourceKey KEY_LINESPACING("lineSpacing");
-static const ZLResourceKey KEY_FIRSTLINEINDENT("firstLineIndent");
-static const ZLResourceKey KEY_ALIGNMENT("alignment");
-static const ZLResourceKey KEY_SPACEBEFORE("spaceBefore");
-static const ZLResourceKey KEY_SPACEAFTER("spaceAfter");
-static const ZLResourceKey KEY_STARTINDENT("startIndent");
-static const ZLResourceKey KEY_ENDINDENT("endIndent");
-
-FormatOptionsPage::FormatOptionsPage(ZLDialogContent &dialogTab) {
- const ZLResource &styleResource = ZLResource::resource(KEY_STYLE);
-
- myComboEntry = new ComboOptionEntry(*this, styleResource[KEY_BASE].value());
- myComboEntry->addValue(myComboEntry->initialValue());
-
- ZLTextStyleCollection &collection = ZLTextStyleCollection::Instance();
- ZLTextKind styles[] = { REGULAR, TITLE, SECTION_TITLE, SUBTITLE, H1, H2, H3, H4, H5, H6, ANNOTATION, EPIGRAPH, PREFORMATTED, AUTHOR, DATEKIND, POEM_TITLE, STANZA, VERSE };
- const int STYLES_NUMBER = sizeof(styles) / sizeof(ZLTextKind);
- for (int i = 0; i < STYLES_NUMBER; ++i) {
- const ZLTextStyleDecoration *decoration = collection.decoration(styles[i]);
- if (decoration != 0) {
- myComboEntry->addValue(styleResource[decoration->name()].value());
- }
- }
- dialogTab.addOption(ZLResourceKey("optionsFor"), myComboEntry);
-
- {
- const std::string &name = myComboEntry->initialValue();
- FBTextStyle &baseStyle = FBTextStyle::Instance();
-
- registerEntries(dialogTab,
- KEY_LINESPACING, new ZLTextLineSpaceOptionEntry(baseStyle.LineSpacePercentOption, dialogTab.resource(KEY_LINESPACING), false),
- KEY_DUMMY, 0,//new ZLSimpleSpinOptionEntry("First Line Indent", baseStyle.firstLineIndentDeltaOption(), -300, 300, 1),
- name
- );
-
- registerEntries(dialogTab,
- KEY_ALIGNMENT, new ZLTextAlignmentOptionEntry(baseStyle.AlignmentOption, dialogTab.resource(KEY_ALIGNMENT), false),
- KEY_DUMMY, 0,
- name
- );
- }
-
- for (int i = 0; i < STYLES_NUMBER; ++i) {
- ZLTextStyleDecoration *d = collection.decoration(styles[i]);
- if ((d != 0) && (d->isFullDecoration())) {
- ZLTextFullStyleDecoration *decoration = (ZLTextFullStyleDecoration*)d;
- const std::string &name = styleResource[decoration->name()].value();
-
- registerEntries(dialogTab,
- KEY_SPACEBEFORE, new ZLSimpleSpinOptionEntry(decoration->SpaceBeforeOption, 1),
- KEY_STARTINDENT, new ZLSimpleSpinOptionEntry(decoration->LineStartIndentOption, 1),
- name
- );
-
- registerEntries(dialogTab,
- KEY_SPACEAFTER, new ZLSimpleSpinOptionEntry(decoration->SpaceAfterOption, 1),
- KEY_ENDINDENT, new ZLSimpleSpinOptionEntry(decoration->LineEndIndentOption, 1),
- name
- );
-
- registerEntries(dialogTab,
- KEY_LINESPACING, new ZLTextLineSpaceOptionEntry(decoration->LineSpacePercentOption, dialogTab.resource(KEY_LINESPACING), true),
- KEY_FIRSTLINEINDENT, new ZLSimpleSpinOptionEntry(decoration->FirstLineIndentDeltaOption, 1),
- name
- );
-
- registerEntries(dialogTab,
- KEY_ALIGNMENT, new ZLTextAlignmentOptionEntry(decoration->AlignmentOption, dialogTab.resource(KEY_ALIGNMENT), true),
- KEY_DUMMY, 0,
- name
- );
- }
- }
-
- myComboEntry->onValueSelected(0);
-}
diff --git a/fbreader/src/optionsDialog/lookAndFeel/FormatOptionsPage.h b/fbreader/src/optionsDialog/lookAndFeel/FormatOptionsPage.h
deleted file mode 100644
index 81aa33a..0000000
--- a/fbreader/src/optionsDialog/lookAndFeel/FormatOptionsPage.h
+++ /dev/null
@@ -1,33 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __FORMATOPTIONSPAGE_H__
-#define __FORMATOPTIONSPAGE_H__
-
-#include "OptionsPage.h"
-
-class ZLDialogContent;
-
-class FormatOptionsPage : public OptionsPage {
-
-public:
- FormatOptionsPage(ZLDialogContent &dialogTab);
-};
-
-#endif /* __FORMATOPTIONSPAGE_H__ */
diff --git a/fbreader/src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.cpp b/fbreader/src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.cpp
deleted file mode 100644
index b3c20ce..0000000
--- a/fbreader/src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.cpp
+++ /dev/null
@@ -1,78 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLDialogManager.h>
-#include <ZLOptionsDialog.h>
-#include <ZLPaintContext.h>
-
-#include <ZLSimpleOptionEntry.h>
-#include <ZLColorOptionBuilder.h>
-
-#include <ZLTextStyleCollection.h>
-
-#include "LookAndFeelOptionsDialog.h"
-
-#include "FormatOptionsPage.h"
-#include "StyleOptionsPage.h"
-
-#include "../../fbreader/FBReader.h"
-#include "../../fbreader/FBView.h"
-#include "../../options/FBOptions.h"
-
-
-LookAndFeelOptionsDialog::LookAndFeelOptionsDialog() : AbstractOptionsDialog(ZLResourceKey("LookAndFeelOptionsDialog"), true) {
- FBReader &fbreader = FBReader::Instance();
- FBOptions &options = FBOptions::Instance();
-
- ZLOptionsDialog &dialog = this->dialog();
-
- ZLDialogContent &cssTab = dialog.createTab(ZLResourceKey("CSS"));
- cssTab.addOption(ZLResourceKey("overrideSpecifiedFonts"), ZLTextStyleCollection::Instance().OverrideSpecifiedFontsOption);
-
- ZLDialogContent &marginTab = dialog.createTab(ZLResourceKey("Margins"));
- marginTab.addOptions(
- ZLResourceKey("left"), new ZLSimpleSpinOptionEntry(options.LeftMarginOption, 1),
- ZLResourceKey("right"), new ZLSimpleSpinOptionEntry(options.RightMarginOption, 1)
- );
- marginTab.addOptions(
- ZLResourceKey("top"), new ZLSimpleSpinOptionEntry(options.TopMarginOption, 1),
- ZLResourceKey("bottom"), new ZLSimpleSpinOptionEntry(options.BottomMarginOption, 1)
- );
-
- myFormatPage = new FormatOptionsPage(dialog.createTab(ZLResourceKey("Format")));
- myStylePage = new StyleOptionsPage(dialog.createTab(ZLResourceKey("Styles")), *fbreader.context());
-
- ZLDialogContent &colorsTab = dialog.createTab(ZLResourceKey("Colors"));
- ZLResourceKey colorKey("colorFor");
- const ZLResource &resource = colorsTab.resource(colorKey);
- ZLColorOptionBuilder builder;
- const std::string BACKGROUND = resource["background"].value();
- builder.addOption(BACKGROUND, options.BackgroundColorOption);
- builder.addOption(resource["selectionBackground"].value(), options.colorOption(ZLTextStyle::SELECTION_BACKGROUND));
- builder.addOption(resource["text"].value(), options.RegularTextColorOption);
- builder.addOption(resource["internalLink"].value(), options.colorOption("internal"));
- builder.addOption(resource["externalLink"].value(), options.colorOption("external"));
- builder.addOption(resource["bookLink"].value(), options.colorOption("book"));
- builder.addOption(resource["highlighted"].value(), options.colorOption(ZLTextStyle::HIGHLIGHTED_TEXT));
- builder.addOption(resource["treeLines"].value(), options.colorOption(ZLTextStyle::TREE_LINES));
- builder.addOption(resource["indicator"].value(), (FBView::commonIndicatorInfo().ColorOption));
- builder.setInitial(BACKGROUND);
- colorsTab.addOption(colorKey, builder.comboEntry());
- colorsTab.addOption("", "", builder.colorEntry());
-}
diff --git a/fbreader/src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.h b/fbreader/src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.h
deleted file mode 100644
index b908285..0000000
--- a/fbreader/src/optionsDialog/lookAndFeel/LookAndFeelOptionsDialog.h
+++ /dev/null
@@ -1,38 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __LOOKANDFEELOPTIONSDIALOG_H__
-#define __LOOKANDFEELOPTIONSDIALOG_H__
-
-#include "../AbstractOptionsDialog.h"
-
-class OptionsPage;
-
-
-class LookAndFeelOptionsDialog : public AbstractOptionsDialog {
-
-public:
- LookAndFeelOptionsDialog();
-
-private:
- shared_ptr<OptionsPage> myFormatPage;
- shared_ptr<OptionsPage> myStylePage;
-};
-
-#endif /* __LOOKANDFEELOPTIONSDIALOG_H__ */
diff --git a/fbreader/src/optionsDialog/lookAndFeel/OptionsPage.cpp b/fbreader/src/optionsDialog/lookAndFeel/OptionsPage.cpp
deleted file mode 100644
index 55a6970..0000000
--- a/fbreader/src/optionsDialog/lookAndFeel/OptionsPage.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLOptionsDialog.h>
-#include <ZLOptionEntry.h>
-
-#include "OptionsPage.h"
-
-void ComboOptionEntry::onValueSelected(int index) {
- const std::string &selectedValue = values()[index];
- const std::map<ZLOptionEntry*,std::string> &entries = myPage.myEntries;
- int count = 0;
- for (std::map<ZLOptionEntry*,std::string>::const_iterator it = entries.begin(); it != entries.end(); ++it, ++count) {
- it->first->setVisible(it->second == selectedValue);
- }
-}
-
-void OptionsPage::registerEntry(ZLDialogContent &tab, const ZLResourceKey &entryKey, ZLOptionEntry *entry, const std::string &name) {
- if (entry != 0) {
- entry->setVisible(false);
- myEntries[entry] = name;
- }
- tab.addOption(entryKey, entry);
-}
-
-void OptionsPage::registerEntries(ZLDialogContent &tab, const ZLResourceKey &entry0Key, ZLOptionEntry *entry0, const ZLResourceKey &entry1Key, ZLOptionEntry *entry1, const std::string &name) {
- if (entry0 != 0) {
- entry0->setVisible(false);
- myEntries[entry0] = name;
- }
- if (entry1 != 0) {
- entry1->setVisible(false);
- myEntries[entry1] = name;
- }
- tab.addOptions(entry0Key, entry0, entry1Key, entry1);
-}
diff --git a/fbreader/src/optionsDialog/lookAndFeel/OptionsPage.h b/fbreader/src/optionsDialog/lookAndFeel/OptionsPage.h
deleted file mode 100644
index a175c2b..0000000
--- a/fbreader/src/optionsDialog/lookAndFeel/OptionsPage.h
+++ /dev/null
@@ -1,76 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __OPTIONSPAGE_H__
-#define __OPTIONSPAGE_H__
-
-#include <map>
-
-#include <ZLOptionEntry.h>
-
-class ZLDialogContent;
-
-class OptionsPage;
-
-class ComboOptionEntry : public ZLComboOptionEntry {
-
-public:
- ComboOptionEntry(OptionsPage &page, const std::string &initialValue);
- const std::string &initialValue() const;
- const std::vector<std::string> &values() const;
- void onAccept(const std::string&);
- void onValueSelected(int index);
- void addValue(const std::string &value);
-
-protected:
- OptionsPage &myPage;
- std::vector<std::string> myValues;
- std::string myInitialValue;
-};
-
-class OptionsPage {
-
-public:
- virtual ~OptionsPage();
-
-protected:
- OptionsPage();
-
- void registerEntry(ZLDialogContent &tab, const ZLResourceKey &entryKey, ZLOptionEntry *entry, const std::string &name);
- void registerEntries(ZLDialogContent &tab, const ZLResourceKey &entry0Key, ZLOptionEntry *entry0, const ZLResourceKey &entry1Key, ZLOptionEntry *entry1, const std::string &name);
-
-protected:
- ComboOptionEntry *myComboEntry;
-
-private:
- std::map<ZLOptionEntry*,std::string> myEntries;
-
-friend class ComboOptionEntry;
-};
-
-inline ComboOptionEntry::ComboOptionEntry(OptionsPage &page, const std::string &initialValue) : myPage(page), myInitialValue(initialValue) {}
-inline const std::string &ComboOptionEntry::initialValue() const { return myInitialValue; }
-inline const std::vector<std::string> &ComboOptionEntry::values() const { return myValues; }
-inline void ComboOptionEntry::onAccept(const std::string&) {}
-inline void ComboOptionEntry::addValue(const std::string &value) { myValues.push_back(value); }
-
-inline OptionsPage::OptionsPage() {}
-inline OptionsPage::~OptionsPage() {}
-
-#endif /* __OPTIONSPAGE_H__ */
diff --git a/fbreader/src/optionsDialog/lookAndFeel/StyleOptionsPage.cpp b/fbreader/src/optionsDialog/lookAndFeel/StyleOptionsPage.cpp
deleted file mode 100644
index c2086d1..0000000
--- a/fbreader/src/optionsDialog/lookAndFeel/StyleOptionsPage.cpp
+++ /dev/null
@@ -1,127 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLOptionsDialog.h>
-#include <ZLPaintContext.h>
-
-#include <ZLSimpleOptionEntry.h>
-
-#include <ZLTextView.h>
-#include <ZLTextStyle.h>
-#include <ZLTextStyleCollection.h>
-#include <ZLTextStyleOptions.h>
-
-#include "StyleOptionsPage.h"
-
-#include "../../options/FBTextStyle.h"
-#include "../../bookmodel/FBTextKind.h"
-
-static const ZLResourceKey KEY_STYLE("style");
-static const ZLResourceKey KEY_BASE("Base");
-
-static const ZLResourceKey KEY_BOLD("bold");
-static const ZLResourceKey KEY_ITALIC("italic");
-static const ZLResourceKey KEY_FONTFAMILY("fontFamily");
-static const ZLResourceKey KEY_FONTSIZE("fontSize");
-static const ZLResourceKey KEY_FONTSIZEDIFFERENCE("fontSizeDifference");
-static const ZLResourceKey KEY_ALLOWHYPHENATIONS("allowHyphenations");
-static const ZLResourceKey KEY_AUTOHYPHENATIONS("autoHyphenations");
-static const ZLResourceKey KEY_DUMMY("");
-
-StyleOptionsPage::StyleOptionsPage(ZLDialogContent &dialogTab, ZLPaintContext &context) {
- const ZLResource &styleResource = ZLResource::resource(KEY_STYLE);
-
- myComboEntry = new ComboOptionEntry(*this, styleResource[KEY_BASE].value());
- myComboEntry->addValue(myComboEntry->initialValue());
-
- ZLTextStyleCollection &collection = ZLTextStyleCollection::Instance();
- ZLTextKind styles[] = { REGULAR, TITLE, SECTION_TITLE, SUBTITLE, H1, H2, H3, H4, H5, H6, CONTENTS_TABLE_ENTRY, LIBRARY_ENTRY, ANNOTATION, EPIGRAPH, AUTHOR, DATEKIND, POEM_TITLE, STANZA, VERSE, CITE, INTERNAL_HYPERLINK, EXTERNAL_HYPERLINK, BOOK_HYPERLINK, FOOTNOTE, ITALIC, EMPHASIS, BOLD, STRONG, DEFINITION, DEFINITION_DESCRIPTION, PREFORMATTED, CODE };
- const int STYLES_NUMBER = sizeof(styles) / sizeof(ZLTextKind);
- for (int i = 0; i < STYLES_NUMBER; ++i) {
- const ZLTextStyleDecoration *decoration = collection.decoration(styles[i]);
- if (decoration != 0) {
- myComboEntry->addValue(styleResource[decoration->name()].value());
- }
- }
- dialogTab.addOption(ZLResourceKey("optionsFor"), myComboEntry);
-
- {
- const std::string &name = myComboEntry->initialValue();
- FBTextStyle &baseStyle = FBTextStyle::Instance();
-
- registerEntry(dialogTab,
- KEY_FONTFAMILY, new ZLFontFamilyOptionEntry(baseStyle.FontFamilyOption, context),
- name
- );
-
- registerEntry(dialogTab,
- KEY_FONTSIZE, new ZLSimpleSpinOptionEntry(baseStyle.FontSizeOption, 2),
- name
- );
-
- registerEntry(dialogTab,
- KEY_BOLD, new ZLSimpleBooleanOptionEntry(baseStyle.BoldOption),
- name
- );
-
- registerEntry(dialogTab,
- KEY_ITALIC, new ZLSimpleBooleanOptionEntry(baseStyle.ItalicOption),
- name
- );
-
- registerEntry(dialogTab,
- KEY_AUTOHYPHENATIONS, new ZLSimpleBooleanOptionEntry(collection.AutoHyphenationOption),
- name
- );
- }
-
- for (int i = 0; i < STYLES_NUMBER; ++i) {
- ZLTextStyleDecoration *decoration = collection.decoration(styles[i]);
- if (decoration != 0) {
- const std::string &name = styleResource[decoration->name()].value();
-
- registerEntry(dialogTab,
- KEY_FONTFAMILY, new ZLTextFontFamilyWithBaseOptionEntry(decoration->FontFamilyOption, dialogTab.resource(KEY_FONTFAMILY), context),
- name
- );
-
- registerEntry(dialogTab,
- KEY_FONTSIZEDIFFERENCE, new ZLSimpleSpinOptionEntry(decoration->FontSizeDeltaOption, 2),
- name
- );
-
- registerEntry(dialogTab,
- KEY_BOLD, new ZLSimpleBoolean3OptionEntry(decoration->BoldOption),
- name
- );
-
- registerEntry(dialogTab,
- KEY_ITALIC, new ZLSimpleBoolean3OptionEntry(decoration->ItalicOption),
- name
- );
-
- registerEntry(dialogTab,
- KEY_ALLOWHYPHENATIONS, new ZLSimpleBoolean3OptionEntry(decoration->AllowHyphenationsOption),
- name
- );
- }
- }
-
- myComboEntry->onValueSelected(0);
-}
diff --git a/fbreader/src/optionsDialog/lookAndFeel/StyleOptionsPage.h b/fbreader/src/optionsDialog/lookAndFeel/StyleOptionsPage.h
deleted file mode 100644
index c61709d..0000000
--- a/fbreader/src/optionsDialog/lookAndFeel/StyleOptionsPage.h
+++ /dev/null
@@ -1,34 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __STYLEOPTIONSPAGE_H__
-#define __STYLEOPTIONSPAGE_H__
-
-#include "OptionsPage.h"
-
-class ZLDialogContent;
-class ZLPaintContext;
-
-class StyleOptionsPage : public OptionsPage {
-
-public:
- StyleOptionsPage(ZLDialogContent &dialogTab, ZLPaintContext &context);
-};
-
-#endif /* __STYLEOPTIONSPAGE_H__ */
diff --git a/fbreader/src/optionsDialog/network/NetworkOptionsDialog.cpp b/fbreader/src/optionsDialog/network/NetworkOptionsDialog.cpp
deleted file mode 100644
index c7c4b10..0000000
--- a/fbreader/src/optionsDialog/network/NetworkOptionsDialog.cpp
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include "NetworkOptionsDialog.h"
-
-#include <ZLDialogManager.h>
-#include <ZLOptionsDialog.h>
-#include <ZLStringUtil.h>
-
-#include <ZLOptionEntry.h>
-#include <ZLOptionsDialog.h>
-#include <ZLNetworkManager.h>
-#include <ZLSimpleOptionEntry.h>
-#include <ZLToggleBooleanOptionEntry.h>
-
-#include "../../fbreader/FBReader.h"
-
-//#include "../../network/NetworkLinkCollection.h"
-//#include "../../network/NetworkLink.h"
-#include "../../network/UserList.h"
-
-
-class NetworkLinkBooleanOptionEntry : public ZLBooleanOptionEntry {
-
-public:
- NetworkLinkBooleanOptionEntry(ZLBooleanOption &option);
- bool initialState() const;
- void onAccept(bool state);
-
-private:
- ZLBooleanOption &myOption;
-};
-
-NetworkLinkBooleanOptionEntry::NetworkLinkBooleanOptionEntry(ZLBooleanOption &option) : myOption(option) {
-}
-
-bool NetworkLinkBooleanOptionEntry::initialState() const {
- return myOption.value();
-}
-
-void NetworkLinkBooleanOptionEntry::onAccept(bool state) {
- bool oldState = myOption.value();
- myOption.setValue(state);
- if (state != oldState) {
-// FBReader::Instance().invalidateNetworkView();
- }
-}
-
-
-
-NetworkOptionsDialog::NetworkOptionsDialog() : AbstractOptionsDialog(ZLResourceKey("NetworkOptionsDialog"), true) {
- FBReader &fbreader = FBReader::Instance();
-
- ZLDialogContent &connectionTab = dialog().createTab(ZLResourceKey("Connection"));
-
- ZLNetworkManager &networkManager = ZLNetworkManager::Instance();
- connectionTab.addOption(ZLResourceKey("timeout"), new ZLSimpleSpinOptionEntry(networkManager.TimeoutOption(), 5));
- if (!networkManager.providesProxyInfo()) {
- ZLToggleBooleanOptionEntry *useProxyEntry = new ZLToggleBooleanOptionEntry(networkManager.UseProxyOption());
- connectionTab.addOption(ZLResourceKey("useProxy"), useProxyEntry);
- ZLSimpleStringOptionEntry *proxyHostEntry = new ZLSimpleStringOptionEntry(networkManager.ProxyHostOption());
- connectionTab.addOption(ZLResourceKey("proxyHost"), proxyHostEntry);
- ZLSimpleStringOptionEntry *proxyPortEntry = new ZLSimpleStringOptionEntry(networkManager.ProxyPortOption());
- connectionTab.addOption(ZLResourceKey("proxyPort"), proxyPortEntry);
- useProxyEntry->addDependentEntry(proxyHostEntry);
- useProxyEntry->addDependentEntry(proxyPortEntry);
- useProxyEntry->onStateChanged(useProxyEntry->initialState());
- }
-
-// ZLDialogContent &libraryTab = dialog().createTab(ZLResourceKey("NetworkLibrary"));
-
-// NetworkLinkCollection &linkCollection = NetworkLinkCollection::Instance();
-// const std::size_t linkCollectionSize = linkCollection.size();
-// const std::size_t linkCollectionSizeMinusOne = linkCollectionSize - 1;
-// for (std::size_t i = 0; i < linkCollectionSize; ++i) {
-// NetworkLink &link = linkCollection.link(i);
-// if (i < linkCollectionSizeMinusOne) {
-// NetworkLink &link2 = linkCollection.link(++i);
-// libraryTab.addOptions(link.SiteName, "", new NetworkLinkBooleanOptionEntry(link.OnOption),
-// link2.SiteName, "", new NetworkLinkBooleanOptionEntry(link2.OnOption));
-// } else {
-// libraryTab.addOption(link.SiteName, "", new NetworkLinkBooleanOptionEntry(link.OnOption));
-// }
-// }
-
- std::vector<std::pair<ZLResourceKey,ZLOptionEntry*> > additional;
- createIntegrationTab(fbreader.webBrowserCollection(), ZLResourceKey("Web"), additional);
-}
diff --git a/fbreader/src/optionsDialog/network/NetworkOptionsDialog.h b/fbreader/src/optionsDialog/network/NetworkOptionsDialog.h
deleted file mode 100644
index 3c6ca32..0000000
--- a/fbreader/src/optionsDialog/network/NetworkOptionsDialog.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __NETWORKOPTIONSDIALOG_H__
-#define __NETWORKOPTIONSDIALOG_H__
-
-#include "../AbstractOptionsDialog.h"
-
-
-class NetworkOptionsDialog : public AbstractOptionsDialog {
-
-public:
- NetworkOptionsDialog();
-};
-
-#endif /* __NETWORKOPTIONSDIALOG_H__ */
diff --git a/fbreader/src/optionsDialog/reading/IndicatorTab.cpp b/fbreader/src/optionsDialog/reading/IndicatorTab.cpp
deleted file mode 100644
index 2049b16..0000000
--- a/fbreader/src/optionsDialog/reading/IndicatorTab.cpp
+++ /dev/null
@@ -1,171 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLOptionsDialog.h>
-
-#include <ZLToggleBooleanOptionEntry.h>
-
-#include <ZLTextStyleOptions.h>
-
-#include "ReadingOptionsDialog.h"
-
-#include "../../fbreader/FBReader.h"
-#include "../../fbreader/FBView.h"
-#include "../../fbreader/BookTextView.h"
-
-class StateOptionEntry : public ZLToggleBooleanOptionEntry {
-
-public:
- StateOptionEntry(ZLBooleanOption &option);
- void onStateChanged(bool state);
-
-private:
- bool myState;
-
-friend class SpecialFontSizeEntry;
-};
-
-class SpecialFontSizeEntry : public ZLSimpleSpinOptionEntry {
-
-public:
- SpecialFontSizeEntry(ZLIntegerRangeOption &option, int step, StateOptionEntry &first, StateOptionEntry &second);
- void setVisible(bool state);
-
-private:
- StateOptionEntry &myFirst;
- StateOptionEntry &mySecond;
-};
-
-StateOptionEntry::StateOptionEntry(ZLBooleanOption &option) : ZLToggleBooleanOptionEntry(option) {
- myState = option.value();
-}
-
-void StateOptionEntry::onStateChanged(bool state) {
- myState = state;
- ZLToggleBooleanOptionEntry::onStateChanged(state);
-}
-
-SpecialFontSizeEntry::SpecialFontSizeEntry(ZLIntegerRangeOption &option, int step, StateOptionEntry &first, StateOptionEntry &second) : ZLSimpleSpinOptionEntry(option, step), myFirst(first), mySecond(second) {
-}
-
-void SpecialFontSizeEntry::setVisible(bool) {
- ZLSimpleSpinOptionEntry::setVisible(
- (myFirst.isVisible() && myFirst.myState) ||
- (mySecond.isVisible() && mySecond.myState)
- );
-}
-
-class IndicatorTypeEntry : public ZLComboOptionEntry {
-
-public:
- IndicatorTypeEntry(const ZLResource &resource, ZLIntegerRangeOption &typeOption);
- void addDependentEntry(ZLOptionEntry *entry);
- const std::string &initialValue() const;
-
-private:
- const std::vector<std::string> &values() const;
- void onAccept(const std::string &value);
- void onValueSelected(int index);
-
-private:
- ZLIntegerRangeOption &myOption;
- std::vector<std::string> myValues;
- std::vector<ZLOptionEntry*> myDependentEntries;
-};
-
-IndicatorTypeEntry::IndicatorTypeEntry(const ZLResource &resource, ZLIntegerRangeOption &typeOption) : myOption(typeOption) {
- myValues.push_back(resource["osScrollbar"].value());
- myValues.push_back(resource["fbIndicator"].value());
- myValues.push_back(resource["none"].value());
-}
-
-const std::string &IndicatorTypeEntry::initialValue() const {
- return myValues[myOption.value()];
-}
-
-const std::vector<std::string> &IndicatorTypeEntry::values() const {
- return myValues;
-}
-
-void IndicatorTypeEntry::addDependentEntry(ZLOptionEntry *entry) {
- myDependentEntries.push_back(entry);
-}
-
-void IndicatorTypeEntry::onAccept(const std::string &value) {
- for (std::size_t index = 0; index != myValues.size(); ++index) {
- if (myValues[index] == value) {
- myOption.setValue(index);
- break;
- }
- }
-}
-
-void IndicatorTypeEntry::onValueSelected(int index) {
- for (std::vector<ZLOptionEntry*>::iterator it = myDependentEntries.begin(); it != myDependentEntries.end(); ++it) {
- (*it)->setVisible(index == FBIndicatorStyle::FB_INDICATOR);
- }
-}
-
-void ReadingOptionsDialog::createIndicatorTab() {
- ZLDialogContent &indicatorTab = dialog().createTab(ZLResourceKey("Indicator"));
- FBIndicatorStyle &indicatorInfo = FBView::commonIndicatorInfo();
- static ZLResourceKey typeKey("type");
- IndicatorTypeEntry *indicatorTypeEntry =
- new IndicatorTypeEntry(indicatorTab.resource(typeKey), indicatorInfo.TypeOption);
- indicatorTab.addOption(typeKey, indicatorTypeEntry);
-
- ZLOptionEntry *heightEntry =
- new ZLSimpleSpinOptionEntry(indicatorInfo.HeightOption, 1);
- ZLOptionEntry *offsetEntry =
- new ZLSimpleSpinOptionEntry(indicatorInfo.OffsetOption, 1);
- indicatorTab.addOptions(ZLResourceKey("height"), heightEntry, ZLResourceKey("offset"), offsetEntry);
- indicatorTypeEntry->addDependentEntry(heightEntry);
- indicatorTypeEntry->addDependentEntry(offsetEntry);
-
- StateOptionEntry *showTextPositionEntry =
- new StateOptionEntry(indicatorInfo.ShowTextPositionOption);
- indicatorTab.addOption(ZLResourceKey("pageNumber"), showTextPositionEntry);
- indicatorTypeEntry->addDependentEntry(showTextPositionEntry);
-
- StateOptionEntry *showTimeEntry =
- new StateOptionEntry(indicatorInfo.ShowTimeOption);
- indicatorTab.addOption(ZLResourceKey("time"), showTimeEntry);
- indicatorTypeEntry->addDependentEntry(showTimeEntry);
-
- SpecialFontSizeEntry *fontSizeEntry =
- new SpecialFontSizeEntry(indicatorInfo.FontSizeOption, 2, *showTextPositionEntry, *showTimeEntry);
- indicatorTab.addOption(ZLResourceKey("fontSize"), fontSizeEntry);
- indicatorTypeEntry->addDependentEntry(fontSizeEntry);
- showTextPositionEntry->addDependentEntry(fontSizeEntry);
- showTimeEntry->addDependentEntry(fontSizeEntry);
-
- ZLOptionEntry *tocMarksEntry =
- new ZLSimpleBooleanOptionEntry(FBReader::Instance().bookTextView().ShowTOCMarksOption);
- indicatorTab.addOption(ZLResourceKey("tocMarks"), tocMarksEntry);
- indicatorTypeEntry->addDependentEntry(tocMarksEntry);
-
- ZLOptionEntry *navigationEntry =
- new ZLSimpleBooleanOptionEntry(indicatorInfo.IsSensitiveOption);
- indicatorTab.addOption(ZLResourceKey("navigation"), navigationEntry);
- indicatorTypeEntry->addDependentEntry(navigationEntry);
-
- indicatorTypeEntry->onStringValueSelected(indicatorTypeEntry->initialValue());
- showTextPositionEntry->onStateChanged(showTextPositionEntry->initialState());
- showTimeEntry->onStateChanged(showTimeEntry->initialState());
-}
diff --git a/fbreader/src/optionsDialog/reading/KeyBindingsTab.cpp b/fbreader/src/optionsDialog/reading/KeyBindingsTab.cpp
deleted file mode 100644
index b522578..0000000
--- a/fbreader/src/optionsDialog/reading/KeyBindingsTab.cpp
+++ /dev/null
@@ -1,285 +0,0 @@
-/*
- * Copyright (C) 2004-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLOptionsDialog.h>
-#include <ZLApplication.h>
-#include <ZLOptionEntry.h>
-
-#include <ZLSimpleOptionEntry.h>
-#include <ZLSimpleKeyOptionEntry.h>
-
-#include "ReadingOptionsDialog.h"
-
-#include "../../fbreader/FBReader.h"
-#include "../../fbreader/FBReaderActions.h"
-
-class KeyboardControlEntry : public ZLSimpleBooleanOptionEntry {
-
-public:
- KeyboardControlEntry();
- void onStateChanged(bool state);
-};
-
-KeyboardControlEntry::KeyboardControlEntry() : ZLSimpleBooleanOptionEntry(FBReader::Instance().KeyboardControlOption) {
-}
-
-void KeyboardControlEntry::onStateChanged(bool state) {
- ZLSimpleBooleanOptionEntry::onStateChanged(state);
- FBReader::Instance().grabAllKeys(state);
-}
-
-class SingleKeyOptionEntry : public ZLSimpleKeyOptionEntry {
-
-public:
- SingleKeyOptionEntry(const CodeIndexBimap &bimap, ZLKeyBindings &bindings);
- const CodeIndexBimap &codeIndexBimap() const;
-
-private:
- const CodeIndexBimap &myBimap;
-};
-
-SingleKeyOptionEntry::SingleKeyOptionEntry(const CodeIndexBimap &bimap, ZLKeyBindings &bindings) : ZLSimpleKeyOptionEntry(bindings), myBimap(bimap) {
-}
-
-const ZLSimpleKeyOptionEntry::CodeIndexBimap &SingleKeyOptionEntry::codeIndexBimap() const {
- return myBimap;
-}
-
-class MultiKeyOptionEntry : public ZLKeyOptionEntry {
-
-public:
- MultiKeyOptionEntry(const ZLResource &resource);
- void onAccept();
- int actionIndex(const std::string &key);
- void onValueChanged(const std::string &key, int index);
- void onKeySelected(const std::string &key);
-
- void setOrientation(ZLView::Angle);
- void setExitOnCancelEntry(ZLOptionEntry *exitOnCancelEntry);
-
-private:
- void addAction(const std::string &actionId);
-
-private:
- const ZLResource &myResource;
- ZLSimpleKeyOptionEntry::CodeIndexBimap myBimap;
-
- SingleKeyOptionEntry myEntry0;
- SingleKeyOptionEntry myEntry90;
- SingleKeyOptionEntry myEntry180;
- SingleKeyOptionEntry myEntry270;
- SingleKeyOptionEntry *myCurrentEntry;
- ZLOptionEntry *myExitOnCancelEntry;
-};
-
-void MultiKeyOptionEntry::addAction(const std::string &actionId) {
- myBimap.insert(actionId);
- addActionName(myResource[ZLResourceKey(actionId)].value());
-}
-
-MultiKeyOptionEntry::MultiKeyOptionEntry(const ZLResource &resource) :
- ZLKeyOptionEntry(),
- myResource(resource),
- myEntry0(myBimap, *FBReader::Instance().keyBindings(ZLView::DEGREES0)),
- myEntry90(myBimap, *FBReader::Instance().keyBindings(ZLView::DEGREES90)),
- myEntry180(myBimap, *FBReader::Instance().keyBindings(ZLView::DEGREES180)),
- myEntry270(myBimap, *FBReader::Instance().keyBindings(ZLView::DEGREES270)),
- myCurrentEntry(&myEntry0),
- myExitOnCancelEntry(0) {
- addAction(ZLApplication::NoAction);
-
- // switch view
- addAction(ActionCode::SHOW_LIBRARY);
- addAction(ActionCode::OPEN_PREVIOUS_BOOK);
- addAction(ActionCode::SHOW_TOC);
-
- // navigation
- addAction(ActionCode::SCROLL_TO_HOME);
- addAction(ActionCode::SCROLL_TO_START_OF_TEXT);
- addAction(ActionCode::SCROLL_TO_END_OF_TEXT);
- addAction(ActionCode::GOTO_NEXT_TOC_SECTION);
- addAction(ActionCode::GOTO_PREVIOUS_TOC_SECTION);
- addAction(ActionCode::PAGE_SCROLL_FORWARD);
- addAction(ActionCode::PAGE_SCROLL_BACKWARD);
- addAction(ActionCode::LINE_SCROLL_FORWARD);
- addAction(ActionCode::LINE_SCROLL_BACKWARD);
- addAction(ActionCode::UNDO);
- addAction(ActionCode::REDO);
-
- // selection
- addAction(ActionCode::COPY_SELECTED_TEXT_TO_CLIPBOARD);
- addAction(ActionCode::OPEN_SELECTED_TEXT_IN_DICTIONARY);
- addAction(ActionCode::CLEAR_SELECTION);
-
- // search
- addAction(ActionCode::SEARCH);
- addAction(ActionCode::FIND_PREVIOUS);
- addAction(ActionCode::FIND_NEXT);
-
- // look
- addAction(ActionCode::INCREASE_FONT);
- addAction(ActionCode::DECREASE_FONT);
- addAction(ActionCode::SHOW_HIDE_POSITION_INDICATOR);
- addAction(ActionCode::TOGGLE_FULLSCREEN);
- addAction(ActionCode::ROTATE_SCREEN);
-
- // dialogs
- addAction(ActionCode::SHOW_OPTIONS_DIALOG);
- addAction(ActionCode::SHOW_BOOK_INFO_DIALOG);
- addAction(ActionCode::ADD_BOOK);
-
- // quit
- addAction(ActionCode::CANCEL);
- addAction(ActionCode::QUIT);
-}
-
-void MultiKeyOptionEntry::setOrientation(ZLView::Angle angle) {
- switch (angle) {
- case ZLView::DEGREES0:
- myCurrentEntry = &myEntry0;
- break;
- case ZLView::DEGREES90:
- myCurrentEntry = &myEntry90;
- break;
- case ZLView::DEGREES180:
- myCurrentEntry = &myEntry180;
- break;
- case ZLView::DEGREES270:
- myCurrentEntry = &myEntry270;
- break;
- }
- resetView();
-}
-
-void MultiKeyOptionEntry::onAccept() {
- myEntry0.onAccept();
- myEntry90.onAccept();
- myEntry180.onAccept();
- myEntry270.onAccept();
-}
-
-int MultiKeyOptionEntry::actionIndex(const std::string &key) {
- return myCurrentEntry->actionIndex(key);
-}
-
-void MultiKeyOptionEntry::onValueChanged(const std::string &key, int index) {
- myCurrentEntry->onValueChanged(key, index);
- if (myExitOnCancelEntry != 0) {
- myExitOnCancelEntry->setVisible(myBimap.codeByIndex(index) == ActionCode::CANCEL);
- }
-}
-
-void MultiKeyOptionEntry::setExitOnCancelEntry(ZLOptionEntry *exitOnCancelEntry) {
- myExitOnCancelEntry = exitOnCancelEntry;
-}
-
-void MultiKeyOptionEntry::onKeySelected(const std::string &key) {
- if (myExitOnCancelEntry != 0) {
- myExitOnCancelEntry->setVisible(myBimap.codeByIndex(myCurrentEntry->actionIndex(key)) == ActionCode::CANCEL);
- }
-}
-
-class OrientationEntry : public ZLComboOptionEntry {
-
-public:
- OrientationEntry(MultiKeyOptionEntry &keyEntry, const ZLResource &resource);
- const std::string &initialValue() const;
- const std::vector<std::string> &values() const;
- void onValueSelected(int index);
- void onAccept(const std::string &value);
-
-private:
- MultiKeyOptionEntry &myKeyEntry;
- const ZLResource &myResource;
-};
-
-OrientationEntry::OrientationEntry(MultiKeyOptionEntry &keyEntry, const ZLResource &resource) : myKeyEntry(keyEntry), myResource(resource) {
-}
-
-const std::string &OrientationEntry::initialValue() const {
- return values()[0];
-}
-
-const std::vector<std::string> &OrientationEntry::values() const {
- static std::vector<std::string> _values;
- if (_values.empty()) {
- _values.push_back(myResource["degrees0"].value());
- _values.push_back(myResource["degrees90ccw"].value());
- _values.push_back(myResource["degrees180"].value());
- _values.push_back(myResource["degrees90cw"].value());
- }
- return _values;
-}
-
-void OrientationEntry::onValueSelected(int index) {
- static ZLView::Angle angles[] = {
- ZLView::DEGREES0,
- ZLView::DEGREES90,
- ZLView::DEGREES180,
- ZLView::DEGREES270
- };
- myKeyEntry.setOrientation(angles[index]);
-}
-
-void OrientationEntry::onAccept(const std::string&) {
-}
-
-class UseSeparateOptionsEntry : public ZLSimpleBooleanOptionEntry {
-
-public:
- UseSeparateOptionsEntry(ZLOptionEntry &keyEntry, OrientationEntry &orientationEntry);
- void onStateChanged(bool state);
-
-private:
- ZLOptionEntry &myKeyEntry;
- OrientationEntry &myOrientationEntry;
-};
-
-UseSeparateOptionsEntry::UseSeparateOptionsEntry(ZLOptionEntry &keyEntry, OrientationEntry &orientationEntry) : ZLSimpleBooleanOptionEntry(FBReader::Instance().UseSeparateBindingsOption), myKeyEntry(keyEntry), myOrientationEntry(orientationEntry) {
-}
-
-void UseSeparateOptionsEntry::onStateChanged(bool state) {
- ZLSimpleBooleanOptionEntry::onStateChanged(state);
- myOrientationEntry.setVisible(state);
- myKeyEntry.resetView();
-}
-
-
-void ReadingOptionsDialog::createKeyBindingsTab() {
- ZLDialogContent &dialogTab = dialog().createTab(ZLResourceKey("Keys"));
- FBReader &fbreader = FBReader::Instance();
- if (ZLBooleanOption(ZLCategoryKey::EMPTY, ZLOption::PLATFORM_GROUP, ZLOption::FULL_KEYBOARD_CONTROL, false).value()) {
- dialogTab.addOption(ZLResourceKey("grabSystemKeys"), new KeyboardControlEntry());
- }
- ZLResourceKey actionKey("action");
- ZLResourceKey separateKey("separate");
- ZLResourceKey orientationKey("orientation");
- MultiKeyOptionEntry *keyEntry = new MultiKeyOptionEntry(dialogTab.resource(actionKey));
- OrientationEntry *orientationEntry = new OrientationEntry(*keyEntry, dialogTab.resource(orientationKey));
- ZLBooleanOptionEntry *useSeparateBindingsEntry = new UseSeparateOptionsEntry(*keyEntry, *orientationEntry);
- dialogTab.addOption(separateKey, useSeparateBindingsEntry);
- dialogTab.addOption(orientationKey, orientationEntry);
- dialogTab.addOption("", "", keyEntry);
- ZLOptionEntry *exitOnCancelEntry = new ZLSimpleBooleanOptionEntry(fbreader.QuitOnCancelOption);
- keyEntry->setExitOnCancelEntry(exitOnCancelEntry);
- dialogTab.addOption(ZLResourceKey("quitOnCancel"), exitOnCancelEntry);
- exitOnCancelEntry->setVisible(false);
- useSeparateBindingsEntry->onStateChanged(useSeparateBindingsEntry->initialState());
- dialogTab.addOption(ZLResourceKey("keyDelay"), new ZLSimpleSpinOptionEntry(fbreader.KeyDelayOption, 50));
-}
diff --git a/fbreader/src/optionsDialog/reading/ReadingOptionsDialog.cpp b/fbreader/src/optionsDialog/reading/ReadingOptionsDialog.cpp
deleted file mode 100644
index 98c079f..0000000
--- a/fbreader/src/optionsDialog/reading/ReadingOptionsDialog.cpp
+++ /dev/null
@@ -1,125 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLDialogManager.h>
-#include <ZLOptionsDialog.h>
-
-#include <ZLSimpleOptionEntry.h>
-#include <ZLToggleBooleanOptionEntry.h>
-
-#include "ReadingOptionsDialog.h"
-
-#include "../../fbreader/FBReader.h"
-#include "../../fbreader/FBView.h"
-
-
-class RotationTypeEntry : public ZLComboOptionEntry {
-
-public:
- RotationTypeEntry(const ZLResource &resource, ZLIntegerOption &angleOption);
-
- const std::string &initialValue() const;
- const std::vector<std::string> &values() const;
- void onAccept(const std::string &value);
-
-private:
- ZLIntegerOption &myAngleOption;
- std::vector<std::string> myValues;
-};
-
-RotationTypeEntry::RotationTypeEntry(const ZLResource &resource, ZLIntegerOption &angleOption) : myAngleOption(angleOption) {
- myValues.push_back(resource["disabled"].value());
- myValues.push_back(resource["counterclockwise"].value());
- myValues.push_back(resource["180"].value());
- myValues.push_back(resource["clockwise"].value());
- myValues.push_back(resource["cycle"].value());
-}
-
-const std::string &RotationTypeEntry::initialValue() const {
- switch (myAngleOption.value()) {
- default:
- return myValues[0];
- case ZLView::DEGREES90:
- return myValues[1];
- case ZLView::DEGREES180:
- return myValues[2];
- case ZLView::DEGREES270:
- return myValues[3];
- case -1:
- return myValues[4];
- }
-}
-
-const std::vector<std::string> &RotationTypeEntry::values() const {
- return myValues;
-}
-
-void RotationTypeEntry::onAccept(const std::string &value) {
- int angle = ZLView::DEGREES0;
- if (value == myValues[1]) {
- angle = ZLView::DEGREES90;
- } else if (value == myValues[2]) {
- angle = ZLView::DEGREES180;
- } else if (value == myValues[3]) {
- angle = ZLView::DEGREES270;
- } else if (value == myValues[4]) {
- angle = -1;
- }
- myAngleOption.setValue(angle);
-}
-
-
-
-ReadingOptionsDialog::ReadingOptionsDialog() : AbstractOptionsDialog(ZLResourceKey("ReadingOptionsDialog"), true) {
- FBReader &fbreader = FBReader::Instance();
-
- ZLOptionsDialog &dialog = this->dialog();
-
- ZLDialogContent &scrollingTab = dialog.createTab(ZLResourceKey("Scrolling"));
- scrollingTab.addOption(ZLResourceKey("keyLinesToScroll"), new ZLSimpleSpinOptionEntry(fbreader.LinesToScrollOption, 1));
- scrollingTab.addOption(ZLResourceKey("keyLinesToKeep"), new ZLSimpleSpinOptionEntry(fbreader.LinesToKeepOption, 1));
- scrollingTab.addOption(ZLResourceKey("keyScrollDelay"), new ZLSimpleSpinOptionEntry(fbreader.KeyScrollingDelayOption, 50));
- const bool hasTouchScreen =
- ZLBooleanOption(ZLCategoryKey::EMPTY, ZLOption::PLATFORM_GROUP, ZLOption::TOUCHSCREEN_PRESENTED, false).value();
- if (hasTouchScreen) {
- ZLToggleBooleanOptionEntry *enableTapScrollingEntry =
- new ZLToggleBooleanOptionEntry(fbreader.EnableTapScrollingOption);
- scrollingTab.addOption(ZLResourceKey("enableTapScrolling"), enableTapScrollingEntry);
- const bool isFingerTapDetectionSupported =
- ZLBooleanOption(ZLCategoryKey::EMPTY, ZLOption::PLATFORM_GROUP, ZLOption::FINGER_TAP_DETECTABLE, false).value();
- if (isFingerTapDetectionSupported) {
- ZLOptionEntry *fingerOnlyEntry =
- new ZLSimpleBooleanOptionEntry(fbreader.TapScrollingOnFingerOnlyOption);
- scrollingTab.addOption(ZLResourceKey("fingerOnly"), fingerOnlyEntry);
- enableTapScrollingEntry->addDependentEntry(fingerOnlyEntry);
- enableTapScrollingEntry->onStateChanged(enableTapScrollingEntry->initialState());
- }
- }
-
- ZLDialogContent &selectionTab = dialog.createTab(ZLResourceKey("Selection"));
- selectionTab.addOption(ZLResourceKey("enableSelection"), FBView::selectionOption());
-
- createIndicatorTab();
-
- ZLDialogContent &rotationTab = dialog.createTab(ZLResourceKey("Rotation"));
- ZLResourceKey directionKey("direction");
- rotationTab.addOption(directionKey, new RotationTypeEntry(rotationTab.resource(directionKey), fbreader.RotationAngleOption));
-
- createKeyBindingsTab();
-}
diff --git a/fbreader/src/optionsDialog/reading/ReadingOptionsDialog.h b/fbreader/src/optionsDialog/reading/ReadingOptionsDialog.h
deleted file mode 100644
index 83a101a..0000000
--- a/fbreader/src/optionsDialog/reading/ReadingOptionsDialog.h
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __READINGOPTIONSDIALOG_H__
-#define __READINGOPTIONSDIALOG_H__
-
-#include "../AbstractOptionsDialog.h"
-
-
-class ReadingOptionsDialog : public AbstractOptionsDialog {
-
-private:
- void createIndicatorTab();
- void createKeyBindingsTab();
-
-public:
- ReadingOptionsDialog();
-};
-
-#endif /* __READINGOPTIONSDIALOG_H__ */
diff --git a/fbreader/src/optionsDialog/system/SystemOptionsDialog.cpp b/fbreader/src/optionsDialog/system/SystemOptionsDialog.cpp
deleted file mode 100644
index aadc669..0000000
--- a/fbreader/src/optionsDialog/system/SystemOptionsDialog.cpp
+++ /dev/null
@@ -1,86 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#include <ZLDialogManager.h>
-#include <ZLOptionsDialog.h>
-#include <ZLLanguageList.h>
-#include <ZLOptionEntry.h>
-
-#include <ZLSimpleOptionEntry.h>
-#include <ZLLanguageOptionEntry.h>
-#include <ZLToggleBooleanOptionEntry.h>
-
-#include "SystemOptionsDialog.h"
-
-#include "../../fbreader/FBReader.h"
-#include "../../formats/FormatPlugin.h"
-#include "../../encodingOption/EncodingOptionEntry.h"
-
-
-class TimeoutEntry : public ZLSimpleSpinOptionEntry {
-
-public:
- TimeoutEntry(ZLIntegerRangeOption &option);
- void onAccept(int value);
-};
-
-TimeoutEntry::TimeoutEntry(ZLIntegerRangeOption &option) : ZLSimpleSpinOptionEntry(option, 5) {
-}
-
-void TimeoutEntry::onAccept(int value) {
- ZLOption::startAutoSave(isVisible() ? value : 0);
- ZLSimpleSpinOptionEntry::onAccept(value);
-}
-
-
-SystemOptionsDialog::SystemOptionsDialog() : AbstractOptionsDialog(ZLResourceKey("SystemOptionsDialog"), true) {
- ZLOptionsDialog &dialog = this->dialog();
-
- ZLDialogContent &encodingTab = dialog.createTab(ZLResourceKey("Language"));
- encodingTab.addOption(ZLResourceKey("autoDetect"), new ZLSimpleBooleanOptionEntry(PluginCollection::Instance().LanguageAutoDetectOption));
- encodingTab.addOption(ZLResourceKey("defaultLanguage"), new ZLLanguageOptionEntry(PluginCollection::Instance().DefaultLanguageOption, ZLLanguageList::languageCodes()));
- EncodingEntry *encodingEntry = new EncodingEntry(PluginCollection::Instance().DefaultEncodingOption);
- EncodingSetEntry *encodingSetEntry = new EncodingSetEntry(*encodingEntry);
- encodingTab.addOption(ZLResourceKey("defaultEncodingSet"), encodingSetEntry);
- encodingTab.addOption(ZLResourceKey("defaultEncoding"), encodingEntry);
-
- if (ZLOption::isAutoSavingSupported()) {
- ZLDialogContent &configTab = dialog.createTab(ZLResourceKey("Config"));
- FBReader &fbreader = FBReader::Instance();
- ZLToggleBooleanOptionEntry *enableEntry =
- new ZLToggleBooleanOptionEntry(fbreader.ConfigAutoSavingOption);
- configTab.addOption(ZLResourceKey("autoSave"), enableEntry);
-
- ZLOptionEntry *timeoutEntry = new TimeoutEntry(fbreader.ConfigAutoSaveTimeoutOption);
- enableEntry->addDependentEntry(timeoutEntry);
- configTab.addOption(ZLResourceKey("timeout"), timeoutEntry);
-
- enableEntry->onStateChanged(enableEntry->initialState());
- }
-
- FBReader &fbreader = FBReader::Instance();
-
- std::vector<std::pair<ZLResourceKey,ZLOptionEntry*> > additional;
- ZLOptionEntry *entry =
- new ZLSimpleBooleanOptionEntry(fbreader.EnableSingleClickDictionaryOption);
- additional.push_back(std::make_pair(ZLResourceKey("singleClickOpen"), entry));
- createIntegrationTab(fbreader.dictionaryCollection(), ZLResourceKey("Dictionary"), additional);
-
- dialog.createPlatformDependentTabs();
-}
diff --git a/fbreader/src/optionsDialog/system/SystemOptionsDialog.h b/fbreader/src/optionsDialog/system/SystemOptionsDialog.h
deleted file mode 100644
index 171b6ba..0000000
--- a/fbreader/src/optionsDialog/system/SystemOptionsDialog.h
+++ /dev/null
@@ -1,32 +0,0 @@
-/*
- * Copyright (C) 2010-2012 Geometer Plus <[email protected]>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
- * 02110-1301, USA.
- */
-
-#ifndef __SYSTEMOPTIONSDIALOG_H__
-#define __SYSTEMOPTIONSDIALOG_H__
-
-#include "../AbstractOptionsDialog.h"
-
-
-class SystemOptionsDialog: public AbstractOptionsDialog {
-
-public:
- SystemOptionsDialog();
-};
-
-#endif /* __SYSTEMOPTIONSDIALOG_H__ */