Ignore:
Timestamp:
Aug 31, 2016, 5:31:04 PM (9 years ago)
Author:
Silvan Scherrer
Message:

smplayer: update trunk to version 16.8.0

Location:
smplayer/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • smplayer/trunk

  • smplayer/trunk/src/defaultgui.cpp

    r176 r181  
    5252#include <QMovie>
    5353
    54 #define TOOLBAR_VERSION 1
     54#define TOOLBAR_VERSION 2
     55#define CONTROLWIDGET_VERSION 0
     56#define FLOATING_CONTROL_VERSION 1
    5557
    5658using namespace Global;
     
    6163        createStatusBar();
    6264
    63         connect( this, SIGNAL(timeChanged(QString)),
    64              this, SLOT(displayTime(QString)) );
    65     connect( this, SIGNAL(frameChanged(int)),
     65        connect( this, SIGNAL(frameChanged(int)),
    6666             this, SLOT(displayFrame(int)) );
    6767        connect( this, SIGNAL(ABMarkersChanged(int,int)),
     
    9090#endif
    9191
     92        connect(this, SIGNAL(preferencesChanged()), this, SLOT(checkCompactMode()));
     93
    9294        menuBar()->setObjectName("menubar");
    9395
     
    101103                controlwidget->hide();
    102104                toolbar1->hide();
     105                #ifdef LANGUAGE_TOOLBAR
    103106                toolbar2->hide();
     107                #endif
    104108
    105109                if (pref->floating_display_in_compact_mode) {
     
    110114
    111115        applyStyles();
     116
     117#ifdef ADD_QUICK_ACCESS
     118        connect(this, SIGNAL(tabletModeChanged(bool)), this, SLOT(adaptForTabletMode()));
     119        adaptForTabletMode();
     120#endif
    112121}
    113122
     
    138147
    139148        // Create the time label
    140         time_label_action = new TimeLabelAction(this);
     149        time_label_action = createTimeLabelAction(TimeLabelAction::CurrentAndTotalTime, this);
    141150        time_label_action->setObjectName("timelabel_action");
     151
     152        current_time_label_action = createTimeLabelAction(TimeLabelAction::CurrentTime, this);
     153        current_time_label_action->setObjectName("current_timelabel_action");
     154
     155        total_time_label_action = createTimeLabelAction(TimeLabelAction::TotalTime, this);
     156        total_time_label_action->setObjectName("total_timelabel_action");
     157
     158        remaining_time_label_action = createTimeLabelAction(TimeLabelAction::RemainingTime, this);
     159        remaining_time_label_action->setObjectName("remaining_timelabel_action");
    142160
    143161#if MINI_ARROW_BUTTONS
     
    164182             frame_display, SLOT(setVisible(bool)) );
    165183
     184        viewFormatInfoAct = new MyAction( this, "toggle_format_info" );
     185        viewFormatInfoAct->setCheckable( true );
     186        connect( viewFormatInfoAct, SIGNAL(toggled(bool)),
     187             format_info_display, SLOT(setVisible(bool)) );
     188
    166189#if USE_CONFIGURABLE_TOOLBARS
    167190        editToolbar1Act = new MyAction( this, "edit_main_toolbar" );
     
    204227        toolbar_menu = new QMenu(this);
    205228        toolbar_menu->addAction(toolbar1->toggleViewAction());
     229#ifdef LANGUAGE_TOOLBAR
    206230        toolbar_menu->addAction(toolbar2->toggleViewAction());
     231#endif
     232
    207233#if USE_CONFIGURABLE_TOOLBARS
    208234        toolbar_menu->addSeparator();
     
    212238        toolbar_menu->addAction(editFloatingControlAct);
    213239#endif
     240
     241        statusbar_menu = new QMenu(this);
     242        statusbar_menu->addAction(viewVideoInfoAct);
     243        statusbar_menu->addAction(viewFormatInfoAct);
     244        statusbar_menu->addAction(viewFrameCounterAct);
     245
     246        populateMainMenu();
     247}
     248
     249void DefaultGui::populateMainMenu() {
     250        qDebug("DefaultGui::populateMainMenu");
     251
     252        BaseGuiPlus::populateMainMenu();
     253
    214254        optionsMenu->addSeparator();
    215255        optionsMenu->addMenu(toolbar_menu);
    216 
    217         statusbar_menu = new QMenu(this);
    218         statusbar_menu->addAction(viewVideoInfoAct);
    219         statusbar_menu->addAction(viewFrameCounterAct);
    220 
    221256        optionsMenu->addMenu(statusbar_menu);
    222257}
     
    231266#else
    232267        m->addAction(toolbar1->toggleViewAction());
     268        #ifdef LANGUAGE_TOOLBAR
    233269        m->addAction(toolbar2->toggleViewAction());
     270        #endif
    234271#endif
    235272        return m;
     
    245282        toolbar1_actions << "open_file" << "open_url" << "favorites_menu" << "separator"
    246283                     << "screenshot" << "separator" << "show_file_properties" << "show_playlist"
    247                      << "show_tube_browser" << "separator" << "show_preferences"
    248                      << "separator" << "play_prev" << "play_next";
     284                     #ifndef IDOPT_BUILD
     285                     << "show_tube_browser"
     286                     #endif
     287                     << "separator" << "show_preferences"
     288                     #ifndef IDOPT_BUILD
     289                     << "separator" << "play_prev" << "play_next"
     290                     #endif
     291                     << "separator" << "audiotrack_menu" << "subtitlestrack_menu"
     292                     #ifdef IDOPT_BUILD
     293                     << "separator" << "send_to_screen_menu" << "tablet_mode"
     294                     #endif
     295                     ;
    249296
    250297        toolbar1->setDefaultActions(toolbar1_actions);
     
    268315        toolbar1->addAction(playPrevAct);
    269316        toolbar1->addAction(playNextAct);
     317        toolbar1->addSeparator();
     318        toolbar1->addAction(audiotrack_menu->menuAction());
     319        toolbar1->addAction(subtitles_track_menu->menuAction());
     320
    270321        // Test:
    271322        //toolbar1->addSeparator();
     
    275326        QToolButton * button = qobject_cast<QToolButton *>(toolbar1->widgetForAction(favorites->menuAction()));
    276327        button->setPopupMode(QToolButton::InstantPopup);
    277 #endif
    278 
     328
     329        button = qobject_cast<QToolButton *>(toolbar1->widgetForAction(audiotrack_menu->menuAction()));
     330        button->setPopupMode(QToolButton::InstantPopup);
     331
     332        button = qobject_cast<QToolButton *>(toolbar1->widgetForAction(subtitles_track_menu->menuAction()));
     333        button->setPopupMode(QToolButton::InstantPopup);
     334
     335        #ifdef IDOPT_BUILD
     336        toolbar1->addSeparator();
     337        toolbar1->addAction(sendToScreen_menu->menuAction());
     338        toolbar1->addAction(tabletModeAct);
     339
     340        button = qobject_cast<QToolButton *>(toolbar1->widgetForAction(sendToScreen_menu->menuAction()));
     341        button->setPopupMode(QToolButton::InstantPopup);
     342        #endif
     343#endif
     344
     345#ifdef LANGUAGE_TOOLBAR
    279346        toolbar2 = new QToolBar( this );
    280347        toolbar2->setObjectName("toolbar2");
     
    289356        select_subtitle->setMenu( subtitles_track_menu );
    290357        toolbar2->addWidget(select_subtitle);
     358#endif
    291359
    292360        /*
     
    301369        tba->setShortcut(Qt::Key_F5);
    302370
     371#ifdef LANGUAGE_TOOLBAR
    303372        tba = toolbar2->toggleViewAction();
    304373        tba->setObjectName("show_language_toolbar");
    305374        tba->setShortcut(Qt::Key_F6);
     375#endif
     376
     377        toolbar1->setIconSize(QSize(32,32));
    306378}
    307379
     
    370442        #endif
    371443        controlwidget_actions << "separator" << "fullscreen" << "mute" << "volumeslider_action";
     444
     445        #ifdef ADD_QUICK_ACCESS
     446        controlwidget_actions << "quick_access_menu";
     447        #endif
     448
    372449        controlwidget->setDefaultActions(controlwidget_actions);
    373450#else
     
    405482
    406483        controlwidget->addAction(volumeslider_action);
     484
     485        #ifdef ADD_QUICK_ACCESS
     486        controlwidget->addAction(access_menu->menuAction());
     487        QToolButton * button = qobject_cast<QToolButton *>(controlwidget->widgetForAction(access_menu->menuAction()));
     488        button->setPopupMode(QToolButton::InstantPopup);
     489        #endif
    407490#endif // USE_CONFIGURABLE_TOOLBARS
    408491
     
    410493        controlwidget->show();
    411494        */
     495
     496        controlwidget->setIconSize(QSize(40,40));
    412497}
    413498
    414499void DefaultGui::createFloatingControl() {
    415500        // Floating control
    416         floating_control = new AutohideWidget(panel);
     501        floating_control = new AutohideWidget(mplayerwindow);
    417502        floating_control->setAutoHide(true);
    418503
     
    423508#if USE_CONFIGURABLE_TOOLBARS
    424509        QStringList floatingcontrol_actions;
    425         floatingcontrol_actions << "play" << "pause" << "stop" << "separator";
     510        floatingcontrol_actions << "play_or_pause" << "stop" << "separator";
     511        /*
    426512        #if MINI_ARROW_BUTTONS
    427513        floatingcontrol_actions << "rewindbutton_action";
     
    429515        floatingcontrol_actions << "rewind3" << "rewind2" << "rewind1";
    430516        #endif
    431         floatingcontrol_actions << "timeslider_action";
     517        */
     518        floatingcontrol_actions << "rewind1";
     519        floatingcontrol_actions << "current_timelabel_action" << "timeslider_action" << "total_timelabel_action";
     520        /*
    432521        #if MINI_ARROW_BUTTONS
    433522        floatingcontrol_actions << "forwardbutton_action";
     
    435524        floatingcontrol_actions << "forward1" << "forward2" << "forward3";
    436525        #endif
    437         floatingcontrol_actions << "separator" << "fullscreen" << "mute" << "volumeslider_action" << "separator" << "timelabel_action";
     526        */
     527        floatingcontrol_actions << "forward1";
     528        floatingcontrol_actions << "separator" << "fullscreen" << "mute" << "volumeslider_action";
    438529        iw->setDefaultActions(floatingcontrol_actions);
    439530#else
     531        /*
    440532        iw->addAction(playAct);
    441533        iw->addAction(pauseAct);
     534        */
     535        iw->addAction(playOrPauseAct);
    442536        iw->addAction(stopAct);
    443537        iw->addSeparator();
     
    451545        #endif
    452546
     547        iw->addAction(current_time_label_action);
    453548        iw->addAction(timeslider_action);
     549        iw->addAction(total_time_label_action);
    454550
    455551        #if MINI_ARROW_BUTTONS
     
    465561        iw->addAction(muteAct);
    466562        iw->addAction(volumeslider_action);
     563        /*
    467564        iw->addSeparator();
    468565        iw->addAction(time_label_action);
     566        */
    469567#endif // USE_CONFIGURABLE_TOOLBARS
    470568
    471569        floating_control->setInternalWidget(iw);
     570        iw->setIconSize(QSize(48,48));
    472571
    473572#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
     
    496595        time_display->setText(" 88:88:88 / 88:88:88 ");
    497596        time_display->setMinimumSize(time_display->sizeHint());
     597        connect(this, SIGNAL(timeChanged(QString)), time_display, SLOT(setText(QString)));
    498598
    499599        frame_display = new QLabel( statusBar() );
     
    516616        video_info_display->setFrameShape(QFrame::NoFrame);
    517617
     618        format_info_display = new QLabel( statusBar() );
     619        format_info_display->setObjectName("format_info_display");
     620        format_info_display->setAlignment(Qt::AlignRight);
     621        format_info_display->setFrameShape(QFrame::NoFrame);
     622
    518623#ifdef BUFFERING_ANIMATION
    519624        state_widget = new StateWidget(statusBar());
     
    524629        statusBar()->setAutoFillBackground(true);
    525630
     631        /*
    526632        ColorUtils::setBackgroundColor( statusBar(), QColor(0,0,0) );
    527633        ColorUtils::setForegroundColor( statusBar(), QColor(255,255,255) );
     
    534640        ColorUtils::setBackgroundColor( video_info_display, QColor(0,0,0) );
    535641        ColorUtils::setForegroundColor( video_info_display, QColor(255,255,255) );
     642        */
    536643        statusBar()->setSizeGripEnabled(false);
    537644
    538645        statusBar()->addPermanentWidget( video_info_display );
     646        statusBar()->addPermanentWidget( format_info_display );
    539647        statusBar()->addPermanentWidget( ab_section_display );
    540648
     
    550658        ab_section_display->show();
    551659        video_info_display->hide();
     660        format_info_display->hide();
    552661}
    553662
     
    567676        toolbar1->toggleViewAction()->setIcon(Images::icon("main_toolbar"));
    568677
     678#ifdef LANGUAGE_TOOLBAR
    569679        toolbar2->setWindowTitle( tr("&Language toolbar") );
    570680        toolbar2->toggleViewAction()->setIcon(Images::icon("lang_toolbar"));
     
    572682        select_audio->setText( tr("Audio") );
    573683        select_subtitle->setText( tr("Subtitle") );
     684#endif
    574685
    575686        viewVideoInfoAct->change(Images::icon("view_video_info"), tr("&Video info") );
    576687        viewFrameCounterAct->change( Images::icon("frame_counter"), tr("&Frame counter") );
     688        viewFormatInfoAct->change( Images::icon("view_format_info"), tr("F&ormat info") );
    577689
    578690#if USE_CONFIGURABLE_TOOLBARS
     
    589701
    590702
    591 void DefaultGui::displayTime(QString text) {
    592         time_display->setText( text );
    593         time_label_action->setText(text);
    594 }
    595 
    596703void DefaultGui::displayFrame(int frame) {
    597704        if (frame_display->isVisible()) {
     
    620727                video_info_display->setText(" ");
    621728        }
     729
     730        QString format = core->mdat.video_format;
     731        if (!format.isEmpty() && !core->mdat.audio_format.isEmpty()) format += " / ";
     732        format += core->mdat.audio_format;
     733        format_info_display->setText(format.toUpper());
    622734}
    623735
     
    630742}
    631743
    632 void DefaultGui::applyNewPreferences() {
    633         qDebug("DefaultGui::applyNewPreferences");
     744void DefaultGui::checkCompactMode() {
     745        qDebug("DefaultGui::checkCompactMode");
    634746
    635747        if ((pref->compact_mode) && (pref->floating_display_in_compact_mode)) {
     
    639751                floating_control->deactivate();
    640752        }
    641 
    642         BaseGuiPlus::applyNewPreferences();
    643 }
     753}
     754
     755#ifdef ADD_QUICK_ACCESS
     756void DefaultGui::adaptForTabletMode() {
     757        qDebug("DefaultGui::adaptForTabletMode");
     758
     759        bool b = pref->tablet_mode;
     760
     761        if (!pref->compact_mode) {
     762                menuBar()->setVisible(!b);
     763                toolbar1->setVisible(!b);
     764        }
     765        access_menu->menuAction()->setVisible(b);
     766}
     767#endif
    644768
    645769void DefaultGui::reconfigureFloatingControl() {
     
    664788        // Save visibility of toolbars
    665789        fullscreen_toolbar1_was_visible = toolbar1->isVisible();
     790#ifdef LANGUAGE_TOOLBAR
    666791        fullscreen_toolbar2_was_visible = toolbar2->isVisible();
     792#endif
    667793
    668794        if (!pref->compact_mode) {
     
    672798                controlwidget_mini->hide();
    673799                toolbar1->hide();
     800                #ifdef LANGUAGE_TOOLBAR
    674801                toolbar2->hide();
     802                #endif
    675803        }
    676804}
     
    692820
    693821                toolbar1->setVisible( fullscreen_toolbar1_was_visible );
     822                #ifdef LANGUAGE_TOOLBAR
    694823                toolbar2->setVisible( fullscreen_toolbar2_was_visible );
    695         }
     824                #endif
     825        }
     826
     827        #ifdef ADD_QUICK_ACCESS
     828        if (pref->tablet_mode) menuBar()->hide();
     829        #endif
    696830}
    697831
     
    709843        // Save visibility of toolbars
    710844        compact_toolbar1_was_visible = toolbar1->isVisible();
     845#ifdef LANGUAGE_TOOLBAR
    711846        compact_toolbar2_was_visible = toolbar2->isVisible();
     847#endif
    712848
    713849        //menuBar()->hide();
     
    716852        controlwidget_mini->hide();
    717853        toolbar1->hide();
     854#ifdef LANGUAGE_TOOLBAR
    718855        toolbar2->hide();
     856#endif
    719857}
    720858
     
    732870
    733871        toolbar1->setVisible( compact_toolbar1_was_visible );
     872#ifdef LANGUAGE_TOOLBAR
    734873        toolbar2->setVisible( compact_toolbar2_was_visible );
     874#endif
     875
     876        #ifdef ADD_QUICK_ACCESS
     877        if (pref->tablet_mode) menuBar()->hide();
     878        #endif
    735879
    736880        // Recheck size of controlwidget
     
    772916        //floating_control->adjustSize();
    773917        QWidget *iw = floating_control->internalWidget();
    774         QSize iws = iw->size();
    775         QMargins m = floating_control->contentsMargins();
    776         int new_height = iws.height() + m.top() + m.bottom();
    777         if (new_height < 32) new_height = 32;
    778         floating_control->resize(floating_control->width(), new_height);
     918        if (iw) {
     919                QSize iws = iw->size();
     920                QMargins m = floating_control->contentsMargins();
     921                int new_height = iws.height() + m.top() + m.bottom();
     922                if (new_height < 32) new_height = 32;
     923                floating_control->resize(floating_control->width(), new_height);
     924        }
    779925}
    780926
     
    788934        set->setValue("video_info", viewVideoInfoAct->isChecked());
    789935        set->setValue("frame_counter", viewFrameCounterAct->isChecked());
     936        set->setValue("format_info", viewFormatInfoAct->isChecked());
    790937
    791938        set->setValue("fullscreen_toolbar1_was_visible", fullscreen_toolbar1_was_visible);
     939        set->setValue("compact_toolbar1_was_visible", compact_toolbar1_was_visible);
     940#ifdef LANGUAGE_TOOLBAR
    792941        set->setValue("fullscreen_toolbar2_was_visible", fullscreen_toolbar2_was_visible);
    793         set->setValue("compact_toolbar1_was_visible", compact_toolbar1_was_visible);
    794942        set->setValue("compact_toolbar2_was_visible", compact_toolbar2_was_visible);
     943#endif
    795944
    796945        if (pref->save_window_size_on_exit) {
     
    811960        set->setValue("floating_control", iw->actionsToStringList() );
    812961        set->setValue("toolbar1_version", TOOLBAR_VERSION);
     962        set->setValue("controlwidget_version", CONTROLWIDGET_VERSION);
     963        set->setValue("floating_control_version", FLOATING_CONTROL_VERSION);
    813964        set->endGroup();
    814965
     
    833984        viewVideoInfoAct->setChecked(set->value("video_info", false).toBool());
    834985        viewFrameCounterAct->setChecked(set->value("frame_counter", false).toBool());
     986        viewFormatInfoAct->setChecked(set->value("format_info", false).toBool());
    835987
    836988        fullscreen_toolbar1_was_visible = set->value("fullscreen_toolbar1_was_visible", fullscreen_toolbar1_was_visible).toBool();
     989        compact_toolbar1_was_visible = set->value("compact_toolbar1_was_visible", compact_toolbar1_was_visible).toBool();
     990#ifdef LANGUAGE_TOOLBAR
    837991        fullscreen_toolbar2_was_visible = set->value("fullscreen_toolbar2_was_visible", fullscreen_toolbar2_was_visible).toBool();
    838         compact_toolbar1_was_visible = set->value("compact_toolbar1_was_visible", compact_toolbar1_was_visible).toBool();
    839992        compact_toolbar2_was_visible = set->value("compact_toolbar2_was_visible", compact_toolbar2_was_visible).toBool();
     993#endif
    840994
    841995        if (pref->save_window_size_on_exit) {
     
    8531007
    8541008                if (!DesktopInfo::isInsideScreen(this)) {
    855                         move(0,0);
    856                         qWarning("DefaultGui::loadConfig: window is outside of the screen, moved to 0x0");
     1009                        QPoint tl = DesktopInfo::topLeftPrimaryScreen();
     1010                        move(tl);
     1011                        qWarning("DefaultGui::loadConfig: window is outside of the screen, moved to %d x %d", tl.x(), tl.y());
    8571012                }
    8581013        }
     
    8671022                toolbar1->setActionsFromStringList( toolbar1->defaultActions() );
    8681023        }
    869         controlwidget->setActionsFromStringList( set->value("controlwidget", controlwidget->defaultActions()).toStringList() );
     1024
     1025        int controlwidget_version = set->value("controlwidget_version", 0).toInt();
     1026        if (controlwidget_version >= CONTROLWIDGET_VERSION) {
     1027                QStringList l = set->value("controlwidget", controlwidget->defaultActions()).toStringList();
     1028                #ifdef ADD_QUICK_ACCESS
     1029                if (l.indexOf("quick_access_menu") == -1) l << "quick_access_menu";
     1030                #endif
     1031                controlwidget->setActionsFromStringList(l);
     1032        } else {
     1033                controlwidget->setActionsFromStringList( controlwidget->defaultActions() );
     1034        }
     1035
    8701036        controlwidget_mini->setActionsFromStringList( set->value("controlwidget_mini", controlwidget_mini->defaultActions()).toStringList() );
    8711037        EditableToolbar * iw = static_cast<EditableToolbar *>(floating_control->internalWidget());
    872         iw->setActionsFromStringList( set->value("floating_control", iw->defaultActions()).toStringList() );
     1038
     1039        int floating_control_version = set->value("floating_control_version", 0).toInt();
     1040        if (floating_control_version >= FLOATING_CONTROL_VERSION) {
     1041                iw->setActionsFromStringList( set->value("floating_control", iw->defaultActions()).toStringList() );
     1042        } else {
     1043                qDebug("DefaultGui::loadConfig: floating control too old, loading default one");
     1044                iw->setActionsFromStringList( iw->defaultActions() );
     1045        }
    8731046        set->endGroup();
    8741047
Note: See TracChangeset for help on using the changeset viewer.