~ubuntu-branches/ubuntu/vivid/fbreader/vivid-proposed

« back to all changes in this revision

Viewing changes to fbreader/src/optionsDialog/OptionsDialog.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Joey Hess
  • Date: 2007-12-04 12:51:45 UTC
  • Revision ID: james.westby@ubuntu.com-20071204125145-pw20qfyn0fx3h7jg
Tags: 0.8.8-1
New upstream release.

Show diffs side-by-side

added added

removed removed

Lines of Context:
22
22
#include <ZLDialogManager.h>
23
23
#include <ZLOptionsDialog.h>
24
24
#include <ZLPaintContext.h>
 
25
#include <ZLChineseBreakingAlgorithm.h>
 
26
#include <ZLLanguageList.h>
25
27
 
26
28
#include <optionEntries/ZLToggleBooleanOptionEntry.h>
27
29
#include <optionEntries/ZLColorOptionBuilder.h>
 
30
#include <optionEntries/ZLLanguageOptionEntry.h>
 
31
#include <optionEntries/ZLSimpleOptionEntry.h>
28
32
 
29
33
#include <ZLTextView.h>
30
34
#include <ZLTextStyle.h>
124
128
        myAngleOption.setValue(angle);
125
129
}
126
130
 
127
 
class DefaultLanguageEntry : public ZLComboOptionEntry {
128
 
 
129
 
private:
130
 
        std::string myRussianString;
131
 
        std::string myChineseString;
132
 
        std::string myCzechString;
133
 
        std::string myOtherString;
134
 
 
135
 
public:
136
 
        DefaultLanguageEntry(const ZLResource &resource);
137
 
        const std::string &initialValue() const;
138
 
        const std::vector<std::string> &values() const;
139
 
        void onAccept(const std::string &value);
140
 
};
141
 
 
142
 
DefaultLanguageEntry::DefaultLanguageEntry(const ZLResource &resource) {
143
 
        myRussianString = resource["ru"].value();
144
 
        myChineseString = resource["zh"].value();
145
 
        myCzechString = resource["cz"].value();
146
 
        myOtherString = resource["other"].value();
147
 
}
148
 
 
149
 
const std::string &DefaultLanguageEntry::initialValue() const {
150
 
        switch (PluginCollection::instance().DefaultLanguageOption.value()) {
151
 
                case EncodingDetector::RUSSIAN:
152
 
                        return myRussianString;
153
 
                case EncodingDetector::CHINESE:
154
 
                        return myChineseString;
155
 
                case EncodingDetector::CZECH:
156
 
                        return myCzechString;
157
 
                default:
158
 
                        return myOtherString;
159
 
        }
160
 
}
161
 
 
162
 
const std::vector<std::string> &DefaultLanguageEntry::values() const {
163
 
        static std::vector<std::string> _values;
164
 
        if (_values.empty()) {
165
 
                _values.push_back(myChineseString);
166
 
                _values.push_back(myCzechString);
167
 
                _values.push_back(myRussianString);
168
 
                _values.push_back(myOtherString);
169
 
        }
170
 
        return _values;
171
 
}
172
 
 
173
 
void DefaultLanguageEntry::onAccept(const std::string &value) {
174
 
        EncodingDetector::Language language = EncodingDetector::OTHER;
175
 
        if (value == myRussianString) {
176
 
                language = EncodingDetector::RUSSIAN;
177
 
        } else if (value == myChineseString) {
178
 
                language = EncodingDetector::CHINESE;
179
 
        } else if (value == myCzechString) {
180
 
                language = EncodingDetector::CZECH;
181
 
        }
182
 
        PluginCollection::instance().DefaultLanguageOption.setValue(language);
183
 
}
184
 
 
185
131
class OptionsApplyRunnable : public ZLRunnable {
186
132
 
187
133
public:
216
162
        generalTab.addOption(ZLResourceKey("recentListSize"), new ZLSimpleSpinOptionEntry(recentBooksView.lastBooks().MaxListSizeOption, 1));
217
163
        generalTab.addOption(ZLResourceKey("keyDelay"), new ZLSimpleSpinOptionEntry(fbreader.KeyDelayOption, 50));
218
164
 
219
 
        ZLDialogContent &encodingTab = myDialog->createTab(ZLResourceKey("Encoding"));
 
165
        ZLDialogContent &encodingTab = myDialog->createTab(ZLResourceKey("Language"));
 
166
        encodingTab.addOption(ZLResourceKey("autoDetect"), new ZLSimpleBooleanOptionEntry(PluginCollection::instance().LanguageAutoDetectOption));
 
167
        encodingTab.addOption(ZLResourceKey("defaultLanguage"), new ZLLanguageOptionEntry(PluginCollection::instance().DefaultLanguageOption, ZLLanguageList::languageCodes()));
220
168
        EncodingEntry *encodingEntry = new EncodingEntry(PluginCollection::instance().DefaultEncodingOption);
221
169
        EncodingSetEntry *encodingSetEntry = new EncodingSetEntry(*encodingEntry);
222
170
        encodingTab.addOption(ZLResourceKey("defaultEncodingSet"), encodingSetEntry);
223
171
        encodingTab.addOption(ZLResourceKey("defaultEncoding"), encodingEntry);
224
 
        const ZLResourceKey languageKey("defaultLanguage");
225
 
        encodingTab.addOption(languageKey, new DefaultLanguageEntry(encodingTab.resource(languageKey)));
 
172
        encodingTab.addOption(ZLResourceKey("chineseBreakAtAnyPosition"), new ZLSimpleBooleanOptionEntry(ZLChineseBreakingAlgorithm::instance().AnyPositionBreakingOption));
226
173
 
227
174
        myScrollingPage = new ScrollingOptionsPage(myDialog->createTab(ZLResourceKey("Scrolling")), fbreader);
228
175