コード例 #1
0
ファイル: Favorites.cpp プロジェクト: wyrover/sumatrapdf
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();
}
コード例 #2
0
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", "" );
    }
}