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(); }
ConfigPage::ConfigPage(FBReader &fbreader, ZLDialogContent &dialogTab) { ZLToggleBooleanOptionEntry *enableEntry = new ZLToggleBooleanOptionEntry(fbreader.ConfigAutoSavingOption); dialogTab.addOption(ZLResourceKey("autoSave"), enableEntry); ZLOptionEntry *timeoutEntry = new TimeoutEntry(fbreader.ConfigAutoSaveTimeoutOption); enableEntry->addDependentEntry(timeoutEntry); dialogTab.addOption(ZLResourceKey("timeout"), timeoutEntry); enableEntry->onStateChanged(enableEntry->initialState()); }
NetworkLibraryPage::NetworkLibraryPage(ZLDialogContent &dialogTab) { NetworkLinkCollection &linkCollection = NetworkLinkCollection::Instance(); const size_t linkCollectionSize = linkCollection.size(); for (size_t i = 0; i < linkCollectionSize; ++i) { NetworkLink &link = linkCollection.link(i); dialogTab.addOption(link.SiteName, "", new NetworkLinkBooleanOptionEntry(link.OnOption)); } ZLNetworkManager &networkManager = ZLNetworkManager::Instance(); if (!networkManager.providesProxyInfo()) { ZLToggleBooleanOptionEntry *useProxyEntry = new ZLToggleBooleanOptionEntry(networkManager.UseProxyOption()); dialogTab.addOption(ZLResourceKey("useProxy"), useProxyEntry); ZLSimpleStringOptionEntry *proxyHostEntry = new ZLSimpleStringOptionEntry(networkManager.ProxyHostOption()); dialogTab.addOption(ZLResourceKey("proxyHost"), proxyHostEntry); ZLSimpleStringOptionEntry *proxyPortEntry = new ZLSimpleStringOptionEntry(networkManager.ProxyPortOption()); dialogTab.addOption(ZLResourceKey("proxyPort"), proxyPortEntry); useProxyEntry->addDependentEntry(proxyHostEntry); useProxyEntry->addDependentEntry(proxyPortEntry); useProxyEntry->onStateChanged(useProxyEntry->initialState()); } dialogTab.addOption(ZLResourceKey("timeout"), new ZLSimpleSpinOptionEntry(networkManager.TimeoutOption(), 5)); }
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(); }