Esempio n. 1
0
FBReader::FBReader(const std::string &bookToOpen) :
    ZLApplication("FBReader"),
    QuitOnCancelOption(ZLCategoryKey::CONFIG, OPTIONS, "QuitOnCancel", false),
    KeyScrollingDelayOption(ZLCategoryKey::CONFIG, "Scrollings", "Delay", 0, 2000, 100),
    LinesToScrollOption(ZLCategoryKey::CONFIG, "SmallScrolling", "LinesToScroll", 1, 20, 1),
    LinesToKeepOption(ZLCategoryKey::CONFIG, "LargeScrolling", "LinesToKeepOption", 0, 20, 0),
    EnableTapScrollingOption(ZLCategoryKey::CONFIG, "TapScrolling", "Enabled", true),
    TapScrollingOnFingerOnlyOption(ZLCategoryKey::CONFIG, "TapScrolling", "FingerOnly", true),
    UseSeparateBindingsOption(ZLCategoryKey::CONFIG, "KeysOptions", "UseSeparateBindings", false),
    EnableSingleClickDictionaryOption(ZLCategoryKey::CONFIG, "Dictionary", "SingleClick", false),
    myBindings0(new ZLKeyBindings("Keys")),
    myBindings90(new ZLKeyBindings("Keys90")),
    myBindings180(new ZLKeyBindings("Keys180")),
    myBindings270(new ZLKeyBindings("Keys270")),
    myBookToOpen(bookToOpen),
    myBookAlreadyOpen(false),
    myBookReady(false),
    myGlobalAllowHyphenations(false),
    myActionOnCancel(UNFULLSCREEN) {

    myBookTextView = new BookTextView(*context());
    myFootnoteView = new FootnoteView(*context());
    myContentsView = new ContentsView(*context());
    myNetworkLibraryView = new NetworkView(*context());
    myLibraryByAuthorView = new LibraryByAuthorView(*context());
    myLibraryByTagView = new LibraryByTagView(*context());
    myRecentBooksPopupData = new RecentBooksPopupData();
    myMode = UNDEFINED_MODE;
    myPreviousMode = BOOK_TEXT_MODE;
    setMode(BOOK_TEXT_MODE);

    addAction(ActionCode::SHOW_READING, new UndoAction(FBReader::ALL_MODES & ~FBReader::BOOK_TEXT_MODE));
    addAction(ActionCode::SHOW_LIBRARY, new SetModeAction(FBReader::LIBRARY_MODE, FBReader::BOOK_TEXT_MODE | FBReader::CONTENTS_MODE));
    addAction(ActionCode::SHOW_NETWORK_LIBRARY, new ShowNetworkLibraryAction());
    addAction(ActionCode::SEARCH_ON_NETWORK, new SimpleSearchOnNetworkAction());
    addAction(ActionCode::ADVANCED_SEARCH_ON_NETWORK, new AdvancedSearchOnNetworkAction());
    registerPopupData(ActionCode::SHOW_LIBRARY, myRecentBooksPopupData);
    addAction(ActionCode::SHOW_OPTIONS_DIALOG, new ShowOptionsDialogAction());
    addAction(ActionCode::SHOW_TOC, new ShowContentsAction());
    addAction(ActionCode::SHOW_BOOK_INFO_DIALOG, new ShowBookInfoAction());
    addAction(ActionCode::ADD_BOOK, new AddBookAction(FBReader::BOOK_TEXT_MODE | FBReader::LIBRARY_MODE | FBReader::CONTENTS_MODE));
    addAction(ActionCode::UNDO, new UndoAction(FBReader::BOOK_TEXT_MODE));
    addAction(ActionCode::REDO, new RedoAction());
    addAction(ActionCode::SEARCH, new SearchPatternAction());
    addAction(ActionCode::FIND_NEXT, new FindNextAction());
    addAction(ActionCode::FIND_PREVIOUS, new FindPreviousAction());
    addAction(ActionCode::SCROLL_TO_HOME, new ScrollToHomeAction());
    addAction(ActionCode::SCROLL_TO_START_OF_TEXT, new ScrollToStartOfTextAction());
    addAction(ActionCode::SCROLL_TO_END_OF_TEXT, new ScrollToEndOfTextAction());
    addAction(ActionCode::PAGE_SCROLL_FORWARD, new PageScrollingAction(true));
    addAction(ActionCode::PAGE_SCROLL_BACKWARD, new PageScrollingAction(false));
    addAction(ActionCode::LINE_SCROLL_FORWARD, new LineScrollingAction(true));
    addAction(ActionCode::LINE_SCROLL_BACKWARD, new LineScrollingAction(false));
    addAction(ActionCode::MOUSE_SCROLL_FORWARD, new MouseWheelScrollingAction(true));
    addAction(ActionCode::MOUSE_SCROLL_BACKWARD, new MouseWheelScrollingAction(false));
    addAction(ActionCode::TAP_SCROLL_FORWARD, new TapScrollingAction(true));
    addAction(ActionCode::TAP_SCROLL_BACKWARD, new TapScrollingAction(false));
    addAction(ActionCode::INCREASE_FONT, new ChangeFontSizeAction(2));
    addAction(ActionCode::DECREASE_FONT, new ChangeFontSizeAction(-2));
    addAction(ActionCode::ROTATE_SCREEN, new RotationAction());
    addAction(ActionCode::TOGGLE_FULLSCREEN, new FBFullscreenAction());
    addAction(ActionCode::FULLSCREEN_ON, new FBFullscreenAction());
    addAction(ActionCode::CANCEL, new CancelAction());
    addAction(ActionCode::SHOW_HIDE_POSITION_INDICATOR, new ToggleIndicatorAction());
    addAction(ActionCode::QUIT, new QuitAction());
    addAction(ActionCode::FORCE_QUIT, new ForceQuitAction());
    addAction(ActionCode::OPEN_PREVIOUS_BOOK, new OpenPreviousBookAction());
    addAction(ActionCode::SHOW_HELP, new ShowHelpAction());
    addAction(ActionCode::GOTO_NEXT_TOC_SECTION, new GotoNextTOCSectionAction());
    addAction(ActionCode::GOTO_PREVIOUS_TOC_SECTION, new GotoPreviousTOCSectionAction());
    addAction(ActionCode::COPY_SELECTED_TEXT_TO_CLIPBOARD, new CopySelectedTextAction());
    addAction(ActionCode::OPEN_SELECTED_TEXT_IN_DICTIONARY, new OpenSelectedTextInDictionaryAction());
    addAction(ActionCode::CLEAR_SELECTION, new ClearSelectionAction());
    addAction(ActionCode::GOTO_PAGE_NUMBER, new GotoPageNumberAction(std::string()));
    addAction(ActionCode::GOTO_PAGE_NUMBER_WITH_PARAMETER, new GotoPageNumberAction(PageIndexParameter));
    shared_ptr<Action> booksOrderAction = new BooksOrderAction();
    addAction(ActionCode::ORGANIZE_BOOKS_BY_AUTHOR, booksOrderAction);
    addAction(ActionCode::ORGANIZE_BOOKS_BY_TAG, booksOrderAction);
    addAction(ActionCode::FILTER_LIBRARY, new FilterLibraryAction());

    myOpenFileHandler = new OpenFileHandler();
    ZLCommunicationManager::Instance().registerHandler("openFile", myOpenFileHandler);
}
Esempio n. 2
0
FBReader::FBReader(const std::string &bookToOpen) :
	ZLApplication("FBReader"),
	QuitOnCancelOption(ZLCategoryKey::CONFIG, OPTIONS, "QuitOnCancel", true),
	LargeScrollingOptions(LARGE_SCROLLING, 250, ZLTextView::NO_OVERLAPPING, 1, 1, 50),
	SmallScrollingOptions(SMALL_SCROLLING, 50, ZLTextView::SCROLL_LINES, 1, 1, 50),
	MouseScrollingOptions(MOUSE_SCROLLING, 0, ZLTextView::SCROLL_LINES, 1, 1, 50),
	TapScrollingOptions(TAP_SCROLLING, 0, ZLTextView::NO_OVERLAPPING, 1, 1, 50),
	EnableTapScrollingOption(ZLCategoryKey::CONFIG, TAP_SCROLLING, "Enabled", true),
	TapScrollingOnFingerOnlyOption(ZLCategoryKey::CONFIG, TAP_SCROLLING, "FingerOnly", true),
	UseSeparateBindingsOption(ZLCategoryKey::CONFIG, "KeysOptions", "UseSeparateBindings", false),
	EnableSingleClickDictionaryOption(ZLCategoryKey::CONFIG, "Dictionary", "SingleClick", false),
	myBindings0(new ZLKeyBindings("Keys")),
	myBindings90(new ZLKeyBindings("Keys90")),
	myBindings180(new ZLKeyBindings("Keys180")),
	myBindings270(new ZLKeyBindings("Keys270")),
	myBookToOpen(bookToOpen),
	myBookAlreadyOpen(false),
	myActionOnCancel(UNFULLSCREEN) {

	myModel = 0;
	myBookTextView = new BookTextView(*this, context());
	myFootnoteView = new FootnoteView(*this, context());
	myContentsView = new ContentsView(*this, context());
	myCollectionView = new CollectionView(*this, context());
	myNetLibraryView = new NetLibraryView(*this, context());
	myRecentBooksPopupData = new RecentBooksPopupData(*this);
	myMode = UNDEFINED_MODE;
	myPreviousMode = BOOK_TEXT_MODE;
	setMode(BOOK_TEXT_MODE);

	addAction(ActionCode::SHOW_READING, new UndoAction(*this, FBReader::ALL_MODES & ~FBReader::BOOK_TEXT_MODE));
	addAction(ActionCode::SHOW_COLLECTION, new SetModeAction(*this, FBReader::BOOK_COLLECTION_MODE, FBReader::BOOK_TEXT_MODE | FBReader::CONTENTS_MODE));
	addAction(ActionCode::SHOW_NET_LIBRARY, new ShowNetworkLibraryAction(*this));
	addAction(ActionCode::SEARCH_ON_NETWORK, new SearchOnNetworkAction(*this));
	addAction(ActionCode::ADVANCED_SEARCH_ON_NETWORK, new AdvancedSearchOnNetworkAction(*this));
	registerPopupData(ActionCode::SHOW_COLLECTION, myRecentBooksPopupData);
	addAction(ActionCode::SHOW_OPTIONS, new ShowOptionsDialogAction(*this));
	addAction(ActionCode::SHOW_MENU, new ShowMenuDialogAction(*this));
	addAction(ActionCode::SHOW_CONTENTS, new ShowContentsAction(*this));
	addAction(ActionCode::SHOW_BOOK_INFO, new ShowBookInfoAction(*this));
	addAction(ActionCode::ADD_BOOK, new AddBookAction(*this, FBReader::BOOK_TEXT_MODE | FBReader::BOOK_COLLECTION_MODE | FBReader::CONTENTS_MODE));
	addAction(ActionCode::UNDO, new UndoAction(*this, FBReader::BOOK_TEXT_MODE));
	addAction(ActionCode::REDO, new RedoAction(*this));
	addAction(ActionCode::SEARCH, new SearchPatternAction(*this));
	addAction(ActionCode::FIND_NEXT, new FindNextAction(*this));
	addAction(ActionCode::FIND_PREVIOUS, new FindPreviousAction(*this));
	addAction(ActionCode::SCROLL_TO_HOME, new ScrollToHomeAction(*this));
	addAction(ActionCode::SCROLL_TO_START_OF_TEXT, new ScrollToStartOfTextAction(*this));
	addAction(ActionCode::SCROLL_TO_END_OF_TEXT, new ScrollToEndOfTextAction(*this));
	addAction(ActionCode::LARGE_SCROLL_FORWARD, new ScrollingAction(*this, LargeScrollingOptions, true));
	addAction(ActionCode::LARGE_SCROLL_BACKWARD, new ScrollingAction(*this, LargeScrollingOptions, false));
	addAction(ActionCode::SMALL_SCROLL_FORWARD, new ScrollingAction(*this, SmallScrollingOptions, true));
	addAction(ActionCode::SMALL_SCROLL_BACKWARD, new ScrollingAction(*this, SmallScrollingOptions, false));
	addAction(ActionCode::MOUSE_SCROLL_FORWARD, new ScrollingAction(*this, MouseScrollingOptions, true));
	addAction(ActionCode::MOUSE_SCROLL_BACKWARD, new ScrollingAction(*this, MouseScrollingOptions, false));
	addAction(ActionCode::TAP_SCROLL_FORWARD, new ScrollingAction(*this, TapScrollingOptions, true));
	addAction(ActionCode::TAP_SCROLL_BACKWARD, new ScrollingAction(*this, TapScrollingOptions, false));
	addAction(ActionCode::INCREASE_FONT, new ChangeFontSizeAction(*this, 2));
	addAction(ActionCode::DECREASE_FONT, new ChangeFontSizeAction(*this, -2));
	addAction(ActionCode::ROTATE_SCREEN, new RotationAction(*this));
	addAction(ActionCode::TOGGLE_FULLSCREEN, new FBFullscreenAction(*this));
	addAction(ActionCode::FULLSCREEN_ON, new FBFullscreenAction(*this));
	addAction(ActionCode::CANCEL, new CancelAction(*this));
	addAction(ActionCode::SHOW_HIDE_POSITION_INDICATOR, new ToggleIndicatorAction(*this));
	addAction(ActionCode::QUIT, new QuitAction(*this));
	addAction(ActionCode::OPEN_PREVIOUS_BOOK, new OpenPreviousBookAction(*this));
	addAction(ActionCode::SHOW_HELP, new ShowHelpAction(*this));
	addAction(ActionCode::GOTO_NEXT_TOC_SECTION, new GotoNextTOCSectionAction(*this));
	addAction(ActionCode::GOTO_PREVIOUS_TOC_SECTION, new GotoPreviousTOCSectionAction(*this));
	addAction(ActionCode::COPY_SELECTED_TEXT_TO_CLIPBOARD, new CopySelectedTextAction(*this));
	addAction(ActionCode::OPEN_SELECTED_TEXT_IN_DICTIONARY, new OpenSelectedTextInDictionaryAction(*this));
	addAction(ActionCode::CLEAR_SELECTION, new ClearSelectionAction(*this));
	addAction(ActionCode::GOTO_PAGE_NUMBER, new GotoPageNumber(*this, std::string()));
	addAction(ActionCode::GOTO_PAGE_NUMBER_WITH_PARAMETER, new GotoPageNumber(*this, PageIndexParameter));
	shared_ptr<Action> booksOrderAction = new BooksOrderAction(*this);
	addAction(ActionCode::ORGANIZE_BOOKS_BY_AUTHOR, booksOrderAction);
	addAction(ActionCode::ORGANIZE_BOOKS_BY_TAG, booksOrderAction);

	addAction(ActionCode::SHOW_FOOTNOTES, new ShowFootnotes(*this));
	addAction(ActionCode::HYPERLINK_NAV_START, new HyperlinkNavStart(*this));
	addAction(ActionCode::BMK_ADD, new BookmarkAdd(*this));
	addAction(ActionCode::BMK_SHOW, new BookmarksShow(*this));

	myOpenFileHandler = new OpenFileHandler(*this);
	ZLCommunicationManager::instance().registerHandler("openFile", myOpenFileHandler);
}