Ignore:
Timestamp:
Jan 24, 2017, 12:41:54 PM (8 years ago)
Author:
Silvan Scherrer
Message:

SMPlayer: update trunk to version 17.1.0

Location:
smplayer/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • smplayer/trunk

  • smplayer/trunk/src/defaultgui.cpp

    r181 r188  
    11/*  smplayer, GUI front-end for mplayer.
    2     Copyright (C) 2006-2016 Ricardo Villalba <rvm@users.sourceforge.net>
     2    Copyright (C) 2006-2017 Ricardo Villalba <rvm@users.sourceforge.net>
    33
    44    This program is free software; you can redistribute it and/or modify
     
    5151#include <QMenuBar>
    5252#include <QMovie>
    53 
    54 #define TOOLBAR_VERSION 2
    55 #define CONTROLWIDGET_VERSION 0
    56 #define FLOATING_CONTROL_VERSION 1
     53#include <QtCore/qmath.h>
     54
     55#define TOOLBAR_VERSION "2"
     56#define CONTROLWIDGET_VERSION "1"
     57#define CONTROLWIDGETMINI_VERSION "1"
     58#define FLOATING_CONTROL_VERSION "1"
    5759
    5860using namespace Global;
     
    6365        createStatusBar();
    6466
     67        connect( core, SIGNAL(showTime(double)), this, SLOT(displayTime(double)));
    6568        connect( this, SIGNAL(frameChanged(int)),
    6669             this, SLOT(displayFrame(int)) );
     
    6972        connect( this, SIGNAL(videoInfoChanged(int,int,double)),
    7073             this, SLOT(displayVideoInfo(int,int,double)) );
     74        connect( core, SIGNAL(bitrateChanged(int,int)), this, SLOT(displayBitrateInfo(int,int)) );
    7175
    7276        createActions();
     
    187191             format_info_display, SLOT(setVisible(bool)) );
    188192
     193        viewBitrateInfoAct = new MyAction( this, "toggle_bitrate_info" );
     194        viewBitrateInfoAct->setCheckable( true );
     195        connect( viewBitrateInfoAct, SIGNAL(toggled(bool)),
     196             bitrate_info_display, SLOT(setVisible(bool)) );
     197
     198        useMillisecondsAct = new MyAction( this, "use_milliseconds" );
     199        useMillisecondsAct->setCheckable( true );
     200
    189201#if USE_CONFIGURABLE_TOOLBARS
    190202        editToolbar1Act = new MyAction( this, "edit_main_toolbar" );
     
    242254        statusbar_menu->addAction(viewVideoInfoAct);
    243255        statusbar_menu->addAction(viewFormatInfoAct);
     256        statusbar_menu->addAction(viewBitrateInfoAct);
    244257        statusbar_menu->addAction(viewFrameCounterAct);
     258        statusbar_menu->addAction(useMillisecondsAct);
    245259
    246260        populateMainMenu();
     
    595609        time_display->setText(" 88:88:88 / 88:88:88 ");
    596610        time_display->setMinimumSize(time_display->sizeHint());
    597         connect(this, SIGNAL(timeChanged(QString)), time_display, SLOT(setText(QString)));
     611        //connect(this, SIGNAL(timeChanged(QString)), time_display, SLOT(setText(QString)));
    598612
    599613        frame_display = new QLabel( statusBar() );
     
    620634        format_info_display->setAlignment(Qt::AlignRight);
    621635        format_info_display->setFrameShape(QFrame::NoFrame);
     636
     637        bitrate_info_display = new QLabel( statusBar() );
     638        bitrate_info_display->setObjectName("bitrate_info_display");
     639        bitrate_info_display->setAlignment(Qt::AlignRight);
     640        bitrate_info_display->setFrameShape(QFrame::NoFrame);
    622641
    623642#ifdef BUFFERING_ANIMATION
     
    643662        statusBar()->setSizeGripEnabled(false);
    644663
     664        statusBar()->addPermanentWidget( format_info_display );
     665        statusBar()->addPermanentWidget( bitrate_info_display );
     666        statusBar()->addPermanentWidget( ab_section_display );
    645667        statusBar()->addPermanentWidget( video_info_display );
    646         statusBar()->addPermanentWidget( format_info_display );
    647         statusBar()->addPermanentWidget( ab_section_display );
    648668
    649669        statusBar()->showMessage( tr("Ready") );
     
    659679        video_info_display->hide();
    660680        format_info_display->hide();
     681        bitrate_info_display->hide();
    661682}
    662683
     
    687708        viewFrameCounterAct->change( Images::icon("frame_counter"), tr("&Frame counter") );
    688709        viewFormatInfoAct->change( Images::icon("view_format_info"), tr("F&ormat info") );
     710        viewBitrateInfoAct->change( Images::icon("view_bitrate_info"), tr("&Bitrate info") );
     711        useMillisecondsAct->change( Images::icon("use_milliseconds"), tr("&Show the current time with milliseconds") );
    689712
    690713#if USE_CONFIGURABLE_TOOLBARS
     
    701724
    702725
     726void DefaultGui::displayTime(double sec) {
     727        //qDebug() << "DefaultGui::displayTime:" << sec;
     728
     729        static int last_second = 0;
     730        QString time;
     731
     732        if (useMillisecondsAct->isChecked()) {
     733                time = Helper::formatTime2(sec) + " / " + Helper::formatTime( (int) core->mdat.duration );
     734        } else {
     735                if (qFloor(sec) == last_second) return; // Update only once per second
     736                last_second = qFloor(sec);
     737                time = Helper::formatTime( (int) sec ) + " / " + Helper::formatTime( (int) core->mdat.duration );
     738        }
     739        time_display->setText(time);
     740}
     741
    703742void DefaultGui::displayFrame(int frame) {
    704743        if (frame_display->isVisible()) {
     
    734773}
    735774
     775void DefaultGui::displayBitrateInfo(int vbitrate, int abitrate) {
     776        bitrate_info_display->setText(tr("V: %1 kbps A: %2 kbps").arg(vbitrate/1000).arg(abitrate/1000));
     777}
     778
    736779void DefaultGui::updateWidgets() {
    737780        qDebug("DefaultGui::updateWidgets");
    738781
    739782        BaseGuiPlus::updateWidgets();
     783
     784        viewFrameCounterAct->setEnabled((PlayerID::player(pref->mplayer_bin) == PlayerID::MPLAYER));
     785        viewBitrateInfoAct->setEnabled((PlayerID::player(pref->mplayer_bin) == PlayerID::MPV));
    740786
    741787        panel->setFocus();
     
    935981        set->setValue("frame_counter", viewFrameCounterAct->isChecked());
    936982        set->setValue("format_info", viewFormatInfoAct->isChecked());
     983        set->setValue("bitrate_info", viewBitrateInfoAct->isChecked());
     984        set->setValue("use_milliseconds", useMillisecondsAct->isChecked());
    937985
    938986        set->setValue("fullscreen_toolbar1_was_visible", fullscreen_toolbar1_was_visible);
     
    9541002#if USE_CONFIGURABLE_TOOLBARS
    9551003        set->beginGroup( "actions" );
    956         set->setValue("toolbar1", toolbar1->actionsToStringList() );
    957         set->setValue("controlwidget", controlwidget->actionsToStringList() );
    958         set->setValue("controlwidget_mini", controlwidget_mini->actionsToStringList() );
     1004        set->setValue("toolbar1/" TOOLBAR_VERSION, toolbar1->actionsToStringList() );
     1005        set->setValue("controlwidget/" CONTROLWIDGET_VERSION, controlwidget->actionsToStringList() );
     1006        set->setValue("controlwidget_mini/" CONTROLWIDGETMINI_VERSION, controlwidget_mini->actionsToStringList() );
    9591007        EditableToolbar * iw = static_cast<EditableToolbar *>(floating_control->internalWidget());
    960         set->setValue("floating_control", iw->actionsToStringList() );
    961         set->setValue("toolbar1_version", TOOLBAR_VERSION);
    962         set->setValue("controlwidget_version", CONTROLWIDGET_VERSION);
    963         set->setValue("floating_control_version", FLOATING_CONTROL_VERSION);
     1008        set->setValue("floating_control/" FLOATING_CONTROL_VERSION, iw->actionsToStringList() );
    9641009        set->endGroup();
    9651010
     
    9851030        viewFrameCounterAct->setChecked(set->value("frame_counter", false).toBool());
    9861031        viewFormatInfoAct->setChecked(set->value("format_info", false).toBool());
     1032        viewBitrateInfoAct->setChecked(set->value("bitrate_info", false).toBool());
     1033        useMillisecondsAct->setChecked(set->value("use_milliseconds", false).toBool());
    9871034
    9881035        fullscreen_toolbar1_was_visible = set->value("fullscreen_toolbar1_was_visible", fullscreen_toolbar1_was_visible).toBool();
     
    10151062#if USE_CONFIGURABLE_TOOLBARS
    10161063        set->beginGroup( "actions" );
    1017         int toolbar_version = set->value("toolbar1_version", 0).toInt();
    1018         if (toolbar_version >= TOOLBAR_VERSION) {
    1019                 toolbar1->setActionsFromStringList( set->value("toolbar1", toolbar1->defaultActions()).toStringList() );
    1020         } else {
    1021                 qDebug("DefaultGui::loadConfig: toolbar too old, loading default one");
    1022                 toolbar1->setActionsFromStringList( toolbar1->defaultActions() );
    1023         }
    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 
    1036         controlwidget_mini->setActionsFromStringList( set->value("controlwidget_mini", controlwidget_mini->defaultActions()).toStringList() );
     1064        toolbar1->setActionsFromStringList( set->value("toolbar1/" TOOLBAR_VERSION, toolbar1->defaultActions()).toStringList() );
     1065
     1066        {
     1067        QStringList l = set->value("controlwidget/" CONTROLWIDGET_VERSION, controlwidget->defaultActions()).toStringList();
     1068        #ifdef ADD_QUICK_ACCESS
     1069        if (l.indexOf("quick_access_menu") == -1) l << "quick_access_menu";
     1070        #endif
     1071        controlwidget->setActionsFromStringList(l);
     1072        }
     1073
     1074        controlwidget_mini->setActionsFromStringList( set->value("controlwidget_mini/" CONTROLWIDGETMINI_VERSION, controlwidget_mini->defaultActions()).toStringList() );
     1075
    10371076        EditableToolbar * iw = static_cast<EditableToolbar *>(floating_control->internalWidget());
    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         }
     1077        iw->setActionsFromStringList( set->value("floating_control/" FLOATING_CONTROL_VERSION, iw->defaultActions()).toStringList() );
    10461078        set->endGroup();
    10471079
Note: See TracChangeset for help on using the changeset viewer.