Ignore:
Timestamp:
May 16, 2014, 9:51:55 AM (11 years ago)
Author:
Silvan Scherrer
Message:

SMPlayer: update trunk to latest 0.8.7

Location:
smplayer/trunk
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • smplayer/trunk

  • smplayer/trunk/src/skingui/skingui.cpp

    r156 r165  
    11/*  smplayer, GUI front-end for mplayer.
    2     Copyright (C) 2006-2013 Ricardo Villalba <rvm@users.sourceforge.net>
     2    Copyright (C) 2006-2014 Ricardo Villalba <rvm@users.sourceforge.net>
    33
    44    This program is free software; you can redistribute it and/or modify
     
    2727#include "myaction.h"
    2828#include "images.h"
    29 #include "floatingwidget.h"
     29#include "autohidewidget.h"
    3030#include "desktopinfo.h"
    3131#include "editabletoolbar.h"
     
    5454SkinGui::SkinGui( QWidget * parent, Qt::WindowFlags flags )
    5555        : BaseGuiPlus( parent, flags )
     56        , was_muted(false)
    5657{
    5758        connect( this, SIGNAL(timeChanged(QString)),
    5859             this, SLOT(displayTime(QString)) );
    5960
    60         connect( this, SIGNAL(cursorNearBottom(QPoint)),
    61              this, SLOT(showFloatingControl(QPoint)) );
    62         connect( this, SIGNAL(cursorNearTop(QPoint)),
    63              this, SLOT(showFloatingMenu(QPoint)) );
    64         connect( this, SIGNAL(cursorFarEdges()),
    65              this, SLOT(hideFloatingControls()) );
    66 
    6761        createActions();
    6862        createMainToolBars();
    6963        createControlWidget();
    70 #if SKIN_CONTROLWIDGET_OVER_VIDEO
    7164        createFloatingControl();
    72 #endif
    7365        createMenus();
    7466
     
    7668        connect( editToolbar1Act, SIGNAL(triggered()),
    7769             toolbar1, SLOT(edit()) );
    78         #if SKIN_CONTROLWIDGET_OVER_VIDEO
    79         floating_control->toolbar()->takeAvailableActionsFrom(this);
    80         connect( editFloatingControlAct, SIGNAL(triggered()),
    81              floating_control->toolbar(), SLOT(edit()) );
     70        #if defined(SKIN_EDITABLE_CONTROL)
     71        EditableToolbar * iw = static_cast<EditableToolbar *>(floating_control->internalWidget());
     72        iw->takeAvailableActionsFrom(this);
     73        connect( editFloatingControlAct, SIGNAL(triggered()), iw, SLOT(edit()) );
    8274        #endif
    8375#endif
     
    9789
    9890        changeStyleSheet(pref->iconset);
     91        mediaBarPanel->setVolume(50);
    9992}
    10093
     
    146139#if USE_CONFIGURABLE_TOOLBARS
    147140        editToolbar1Act = new MyAction( this, "edit_main_toolbar" );
    148         #if SKIN_CONTROLWIDGET_OVER_VIDEO
     141        #if defined(SKIN_EDITABLE_CONTROL)
    149142        editFloatingControlAct = new MyAction( this, "edit_floating_control" );
    150143        #endif
     
    192185        font.setPixelSize(11);
    193186        menuBar()->setFont(font);
    194         menuBar()->setFixedHeight(21);
     187        /*menuBar()->setFixedHeight(21);*/
    195188
    196189        toolbar_menu = new QMenu(this);
     
    199192        toolbar_menu->addSeparator();
    200193        toolbar_menu->addAction(editToolbar1Act);
    201         #if SKIN_CONTROLWIDGET_OVER_VIDEO
     194        #if defined(SKIN_EDITABLE_CONTROL)
    202195        toolbar_menu->addAction(editFloatingControlAct);
    203196        #endif
     
    215208#if USE_CONFIGURABLE_TOOLBARS
    216209        m->addAction(editToolbar1Act);
    217         #if SKIN_CONTROLWIDGET_OVER_VIDEO
     210        #if defined(SKIN_EDITABLE_CONTROL)
    218211        m->addAction(editFloatingControlAct);
    219212        #endif
     
    319312             mediaBarPanel, SLOT(setResolutionVisible(bool)) );
    320313
    321         controlwidget->addWidget(mediaBarPanel);
    322 }
    323 
    324 #if SKIN_CONTROLWIDGET_OVER_VIDEO
     314        mediaBarPanelAction = controlwidget->addWidget(mediaBarPanel);
     315}
     316
    325317void SkinGui::createFloatingControl() {
    326318        // Floating control
    327         floating_control = new FloatingWidget(this);
     319        floating_control = new AutohideWidget(panel);
     320        floating_control->setAutoHide(true);
     321
     322#ifndef SKIN_EDITABLE_CONTROL
     323
     324//      floating_control->setInternalWidget(new QLabel("hello"));
     325
     326#else
     327
     328        EditableToolbar * iw = new EditableToolbar(floating_control);
    328329
    329330#if USE_CONFIGURABLE_TOOLBARS
     
    342343        #endif
    343344        floatingcontrol_actions << "separator" << "fullscreen" << "mute" << "volumeslider_action" << "separator" << "timelabel_action";
    344         floating_control->toolbar()->setDefaultActions(floatingcontrol_actions);
     345
     346        iw->setDefaultActions(floatingcontrol_actions);
    345347#else
    346         floating_control->toolbar()->addAction(playAct);
    347         floating_control->toolbar()->addAction(pauseAct);
    348         floating_control->toolbar()->addAction(stopAct);
    349         floating_control->toolbar()->addSeparator();
     348        iw->addAction(playAct);
     349        iw->addAction(pauseAct);
     350        iw->addAction(stopAct);
     351        iw->addSeparator();
    350352
    351353        #if MINI_ARROW_BUTTONS
    352         floating_control->toolbar()->addAction( rewindbutton_action );
     354        iw->addAction( rewindbutton_action );
    353355        #else
    354         floating_control->toolbar()->addAction(rewind3Act);
    355         floating_control->toolbar()->addAction(rewind2Act);
    356         floating_control->toolbar()->addAction(rewind1Act);
    357         #endif
    358 
    359         floating_control->toolbar()->addAction(timeslider_action);
     356        iw->addAction(rewind3Act);
     357        iw->addAction(rewind2Act);
     358        iw->addAction(rewind1Act);
     359        #endif
     360
     361        iw->addAction(timeslider_action);
    360362
    361363        #if MINI_ARROW_BUTTONS
    362         floating_control->toolbar()->addAction( forwardbutton_action );
     364        iw->addAction( forwardbutton_action );
    363365        #else
    364         floating_control->toolbar()->addAction(forward1Act);
    365         floating_control->toolbar()->addAction(forward2Act);
    366         floating_control->toolbar()->addAction(forward3Act);
    367         #endif
    368 
    369         floating_control->toolbar()->addSeparator();
    370         floating_control->toolbar()->addAction(fullscreenAct);
    371         floating_control->toolbar()->addAction(muteAct);
    372         floating_control->toolbar()->addAction(volumeslider_action);
    373         floating_control->toolbar()->addSeparator();
    374         floating_control->toolbar()->addAction(time_label_action);
     366        iw->addAction(forward1Act);
     367        iw->addAction(forward2Act);
     368        iw>addAction(forward3Act);
     369        #endif
     370
     371        iw->addSeparator();
     372        iw->addAction(fullscreenAct);
     373        iw->addAction(muteAct);
     374        iw->addAction(volumeslider_action);
     375        iw->addSeparator();
     376        iw->addAction(time_label_action);
    375377#endif // USE_CONFIGURABLE_TOOLBARS
    376378
     379        floating_control->setInternalWidget(iw);
     380#endif // SKIN_EDITABLE_CONTROL
     381
     382/*
    377383#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
    378384        // To make work the ESC key (exit fullscreen) and Ctrl-X (close) in Windows and OS2
     
    380386        floating_control->addAction(exitAct);
    381387#endif
     388*/
    382389
    383390#if !USE_CONFIGURABLE_TOOLBARS
    384391        floating_control->adjustSize();
    385392#endif
    386 }
    387 #endif
     393
     394        floating_control->hide();
     395}
    388396
    389397void SkinGui::retranslateStrings() {
     
    401409#if USE_CONFIGURABLE_TOOLBARS
    402410        editToolbar1Act->change( tr("Edit main &toolbar") );
    403         #if SKIN_CONTROLWIDGET_OVER_VIDEO
     411        #if defined(SKIN_EDITABLE_CONTROL)
    404412        editFloatingControlAct->change( tr("Edit &floating control") );
    405413        #endif
     
    407415
    408416        viewVideoInfoAct->change(Images::icon("view_video_info"), tr("&Video info") );
    409 
    410         mediaBarPanel->setVolume(core->mset.volume);
    411417}
    412418
     
    441447
    442448        panel->setFocus();
     449
     450        bool muted = (pref->global_volume ? pref->mute : core->mset.mute);
     451        if (was_muted != muted) {
     452                was_muted = muted;
     453                if (muted) {
     454                        mediaBarPanel->setVolume(0);
     455                } else {
     456                        mediaBarPanel->setVolume(core->mset.volume);
     457                }
     458        }
    443459}
    444460
     
    447463
    448464        BaseGuiPlus::aboutToEnterFullscreen();
     465
     466        #ifndef SKIN_EDITABLE_CONTROL
     467        controlwidget->removeAction(mediaBarPanelAction);
     468        floating_control->layout()->addWidget(mediaBarPanel);
     469        mediaBarPanel->show();
     470        floating_control->adjustSize();
     471        #endif
     472        floating_control->setMargin(pref->floating_control_margin);
     473        floating_control->setPercWidth(pref->floating_control_width);
     474        floating_control->setAnimated(pref->floating_control_animated);
     475        floating_control->setActivationArea( (AutohideWidget::Activation) pref->floating_activation_area);
     476        floating_control->setHideDelay(pref->floating_hide_delay);
     477        QTimer::singleShot(500, floating_control, SLOT(activate()));
     478
    449479
    450480        // Save visibility of toolbars
     
    462492        BaseGuiPlus::aboutToExitFullscreen();
    463493
    464 #if SKIN_CONTROLWIDGET_OVER_VIDEO
    465         floating_control->hide();
    466 #endif
     494        floating_control->deactivate();
     495        #ifndef SKIN_EDITABLE_CONTROL
     496        floating_control->layout()->removeWidget(mediaBarPanel);
     497        mediaBarPanelAction = controlwidget->addWidget(mediaBarPanel);
     498        #endif
    467499
    468500        if (!pref->compact_mode) {
     
    493525        // Recheck size of controlwidget
    494526        /* resizeEvent( new QResizeEvent( size(), size() ) ); */
    495 }
    496 
    497 void SkinGui::showFloatingControl(QPoint /*p*/) {
    498         qDebug("SkinGui::showFloatingControl");
    499 
    500 #if SKIN_CONTROLWIDGET_OVER_VIDEO
    501         if ((pref->compact_mode) && (!pref->fullscreen)) {
    502                 floating_control->setAnimated( false );
    503         } else {
    504                 floating_control->setAnimated( pref->floating_control_animated );
    505         }
    506         floating_control->setMargin(pref->floating_control_margin);
    507         #ifndef Q_OS_WIN
    508         floating_control->setBypassWindowManager(pref->bypass_window_manager);
    509         #endif
    510         floating_control->showOver(panel, pref->floating_control_width);
    511 #else
    512         if (!controlwidget->isVisible()) {
    513                 controlwidget->show();
    514         }
    515 #endif
    516 }
    517 
    518 void SkinGui::showFloatingMenu(QPoint /*p*/) {
    519 #if !SKIN_CONTROLWIDGET_OVER_VIDEO
    520         qDebug("SkinGui::showFloatingMenu");
    521 
    522         if (!menuBar()->isVisible())
    523                 menuBar()->show();
    524 #endif
    525 }
    526 
    527 void SkinGui::hideFloatingControls() {
    528         qDebug("SkinGui::hideFloatingControls");
    529 
    530 #if SKIN_CONTROLWIDGET_OVER_VIDEO
    531         floating_control->hide();
    532 #else
    533         if (controlwidget->isVisible())
    534                 controlwidget->hide();
    535 
    536         if (menuBar()->isVisible())
    537                 menuBar()->hide();
    538 #endif
    539527}
    540528
     
    563551        set->beginGroup( "actions" );
    564552        set->setValue("toolbar1", toolbar1->actionsToStringList() );
    565         #if SKIN_CONTROLWIDGET_OVER_VIDEO
    566         set->setValue("floating_control", floating_control->toolbar()->actionsToStringList() );
     553        #if defined(SKIN_EDITABLE_CONTROL)
     554        EditableToolbar * iw = static_cast<EditableToolbar *>(floating_control->internalWidget());
     555        set->setValue("floating_control", iw->actionsToStringList() );
    567556        #endif
    568557        set->setValue("toolbar1_version", TOOLBAR_VERSION);
     
    613602                toolbar1->setActionsFromStringList( toolbar1->defaultActions() );
    614603        }
    615         #if SKIN_CONTROLWIDGET_OVER_VIDEO
    616         floating_control->toolbar()->setActionsFromStringList( set->value("floating_control", floating_control->toolbar()->defaultActions()).toStringList() );
     604        #if defined(SKIN_EDITABLE_CONTROL)
     605        EditableToolbar * iw = static_cast<EditableToolbar *>(floating_control->internalWidget());
     606        iw->setActionsFromStringList( set->value("floating_control", iw->defaultActions()).toStringList() );
    617607        floating_control->adjustSize();
    618608        #endif
Note: See TracChangeset for help on using the changeset viewer.