void AddFavorite(WindowInfo* win) { TabInfo* tab = win->currentTab; CrashIf(!tab); int pageNo = win->currPageNo; ScopedMem<WCHAR> name; if (tab->ctrl->HasTocTree()) { // use the current ToC heading as default name DocTocItem* root = tab->ctrl->GetTocTree(); DocTocItem* item = TocItemForPageNo(root, pageNo); if (item) { name.Set(str::Dup(item->title)); } delete root; } ScopedMem<WCHAR> pageLabel(tab->ctrl->GetPageLabel(pageNo)); bool shouldAdd = Dialog_AddFavorite(win->hwndFrame, pageLabel, name); if (!shouldAdd) { return; } ScopedMem<WCHAR> plainLabel(str::Format(L"%d", pageNo)); bool needsLabel = !str::Eq(plainLabel, pageLabel); RememberFavTreeExpansionStateForAllWindows(); gFavorites.AddOrReplace(tab->filePath, pageNo, name, needsLabel ? pageLabel.Get() : nullptr); // expand newly added favorites by default DisplayState* fav = gFavorites.GetFavByFilePath(tab->filePath); if (fav && fav->favorites->Count() == 2) { win->expandedFavorites.Append(fav); } UpdateFavoritesTreeForAllWindows(); prefs::Save(); }
void KCupsOptionsPagesWidget::setupCupsOptions( QStringList &cupsOptions ) { switch ( pagesPerSheet() ) { case OnePagePerSheet : break; //default case TwoPagesPerSheet : setCupsOption( cupsOptions, "number-up", "2"); break; case FourPagesPerSheet : setCupsOption( cupsOptions, "number-up", "4"); break; case SixPagesPerSheet : setCupsOption( cupsOptions, "number-up", "6"); break; case NinePagesPerSheet : setCupsOption( cupsOptions, "number-up", "9"); break; case SixteenPagesPerSheet : setCupsOption( cupsOptions, "number-up", "16"); break; } switch ( pagesPerSheetLayout() ) { case LeftToRightTopToBottom : break; //default case LeftToRightBottomToTop : setCupsOption( cupsOptions, "number-up-layout", "lrbt" ); break; case RightToLeftTopToBottom : setCupsOption( cupsOptions, "number-up-layout", "rltb" ); break; case RightToLeftBottomToTop : setCupsOption( cupsOptions, "number-up-layout", "rlbt" ); break; case BottomToTopLeftToRight : setCupsOption( cupsOptions, "number-up-layout", "btlr" ); break; case BottomToTopRightToLeft : setCupsOption( cupsOptions, "number-up-layout", "btrl" ); break; case TopToBottomLeftToRight : setCupsOption( cupsOptions, "number-up-layout", "tblr" ); break; case TopToBottomRightToLeft : setCupsOption( cupsOptions, "number-up-layout", "tbrl" ); break; } switch ( pageBorder() ) { case NoBorder : break; //default case SingleLine : setCupsOption( cupsOptions, "page-border", "single" ); break; case SingleThickLine : setCupsOption( cupsOptions, "page-border", "single-thick" ); break; case DoubleLine : setCupsOption( cupsOptions, "page-border", "double" ); break; case DoubleThickLine : setCupsOption( cupsOptions, "page-border", "double-thick" ); break; } if ( startBannerPage() != NoBanner || endBannerPage() != NoBanner ) { QString startBanner, endBanner; switch ( startBannerPage() ) { case NoBanner : startBanner = "none"; break; case Standard : startBanner = "standard"; break; case Unclassified : startBanner = "unclassified"; break; case Confidential : startBanner = "confidential"; break; case Classified : startBanner = "classified"; break; case Secret : startBanner = "secret"; break; case TopSecret : startBanner = "topsecret"; break; } switch ( endBannerPage() ) { case NoBanner : endBanner = "none"; break; case Standard : endBanner = "standard"; break; case Unclassified : endBanner = "unclassified"; break; case Confidential : endBanner = "confidential"; break; case Classified : endBanner = "classified"; break; case Secret : endBanner = "secret"; break; case TopSecret : endBanner = "topsecret"; break; } setCupsOption( cupsOptions, "job-sheets", startBanner + ',' + endBanner ); } if ( !pageLabel().isEmpty() ) { setCupsOption( cupsOptions, "page-label", pageLabel() ); } if ( mirrorPages() ) { setCupsOption( cupsOptions, "mirror", "" ); } }