Changeset 165 for smplayer/trunk/src/skingui/skingui.cpp
- Timestamp:
- May 16, 2014, 9:51:55 AM (11 years ago)
- Location:
- smplayer/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
smplayer/trunk
- Property svn:mergeinfo changed
/smplayer/vendor/current merged: 163
- Property svn:mergeinfo changed
-
smplayer/trunk/src/skingui/skingui.cpp
r156 r165 1 1 /* smplayer, GUI front-end for mplayer. 2 Copyright (C) 2006-201 3Ricardo Villalba <rvm@users.sourceforge.net>2 Copyright (C) 2006-2014 Ricardo Villalba <rvm@users.sourceforge.net> 3 3 4 4 This program is free software; you can redistribute it and/or modify … … 27 27 #include "myaction.h" 28 28 #include "images.h" 29 #include " floatingwidget.h"29 #include "autohidewidget.h" 30 30 #include "desktopinfo.h" 31 31 #include "editabletoolbar.h" … … 54 54 SkinGui::SkinGui( QWidget * parent, Qt::WindowFlags flags ) 55 55 : BaseGuiPlus( parent, flags ) 56 , was_muted(false) 56 57 { 57 58 connect( this, SIGNAL(timeChanged(QString)), 58 59 this, SLOT(displayTime(QString)) ); 59 60 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 67 61 createActions(); 68 62 createMainToolBars(); 69 63 createControlWidget(); 70 #if SKIN_CONTROLWIDGET_OVER_VIDEO71 64 createFloatingControl(); 72 #endif73 65 createMenus(); 74 66 … … 76 68 connect( editToolbar1Act, SIGNAL(triggered()), 77 69 toolbar1, SLOT(edit()) ); 78 #if SKIN_CONTROLWIDGET_OVER_VIDEO79 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()) ); 82 74 #endif 83 75 #endif … … 97 89 98 90 changeStyleSheet(pref->iconset); 91 mediaBarPanel->setVolume(50); 99 92 } 100 93 … … 146 139 #if USE_CONFIGURABLE_TOOLBARS 147 140 editToolbar1Act = new MyAction( this, "edit_main_toolbar" ); 148 #if SKIN_CONTROLWIDGET_OVER_VIDEO141 #if defined(SKIN_EDITABLE_CONTROL) 149 142 editFloatingControlAct = new MyAction( this, "edit_floating_control" ); 150 143 #endif … … 192 185 font.setPixelSize(11); 193 186 menuBar()->setFont(font); 194 menuBar()->setFixedHeight(21);187 /*menuBar()->setFixedHeight(21);*/ 195 188 196 189 toolbar_menu = new QMenu(this); … … 199 192 toolbar_menu->addSeparator(); 200 193 toolbar_menu->addAction(editToolbar1Act); 201 #if SKIN_CONTROLWIDGET_OVER_VIDEO194 #if defined(SKIN_EDITABLE_CONTROL) 202 195 toolbar_menu->addAction(editFloatingControlAct); 203 196 #endif … … 215 208 #if USE_CONFIGURABLE_TOOLBARS 216 209 m->addAction(editToolbar1Act); 217 #if SKIN_CONTROLWIDGET_OVER_VIDEO210 #if defined(SKIN_EDITABLE_CONTROL) 218 211 m->addAction(editFloatingControlAct); 219 212 #endif … … 319 312 mediaBarPanel, SLOT(setResolutionVisible(bool)) ); 320 313 321 controlwidget->addWidget(mediaBarPanel); 322 } 323 324 #if SKIN_CONTROLWIDGET_OVER_VIDEO 314 mediaBarPanelAction = controlwidget->addWidget(mediaBarPanel); 315 } 316 325 317 void SkinGui::createFloatingControl() { 326 318 // 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); 328 329 329 330 #if USE_CONFIGURABLE_TOOLBARS … … 342 343 #endif 343 344 floatingcontrol_actions << "separator" << "fullscreen" << "mute" << "volumeslider_action" << "separator" << "timelabel_action"; 344 floating_control->toolbar()->setDefaultActions(floatingcontrol_actions); 345 346 iw->setDefaultActions(floatingcontrol_actions); 345 347 #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(); 350 352 351 353 #if MINI_ARROW_BUTTONS 352 floating_control->toolbar()->addAction( rewindbutton_action );354 iw->addAction( rewindbutton_action ); 353 355 #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); 360 362 361 363 #if MINI_ARROW_BUTTONS 362 floating_control->toolbar()->addAction( forwardbutton_action );364 iw->addAction( forwardbutton_action ); 363 365 #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); 375 377 #endif // USE_CONFIGURABLE_TOOLBARS 376 378 379 floating_control->setInternalWidget(iw); 380 #endif // SKIN_EDITABLE_CONTROL 381 382 /* 377 383 #if defined(Q_OS_WIN) || defined(Q_OS_OS2) 378 384 // To make work the ESC key (exit fullscreen) and Ctrl-X (close) in Windows and OS2 … … 380 386 floating_control->addAction(exitAct); 381 387 #endif 388 */ 382 389 383 390 #if !USE_CONFIGURABLE_TOOLBARS 384 391 floating_control->adjustSize(); 385 392 #endif 386 } 387 #endif 393 394 floating_control->hide(); 395 } 388 396 389 397 void SkinGui::retranslateStrings() { … … 401 409 #if USE_CONFIGURABLE_TOOLBARS 402 410 editToolbar1Act->change( tr("Edit main &toolbar") ); 403 #if SKIN_CONTROLWIDGET_OVER_VIDEO411 #if defined(SKIN_EDITABLE_CONTROL) 404 412 editFloatingControlAct->change( tr("Edit &floating control") ); 405 413 #endif … … 407 415 408 416 viewVideoInfoAct->change(Images::icon("view_video_info"), tr("&Video info") ); 409 410 mediaBarPanel->setVolume(core->mset.volume);411 417 } 412 418 … … 441 447 442 448 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 } 443 459 } 444 460 … … 447 463 448 464 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 449 479 450 480 // Save visibility of toolbars … … 462 492 BaseGuiPlus::aboutToExitFullscreen(); 463 493 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 467 499 468 500 if (!pref->compact_mode) { … … 493 525 // Recheck size of controlwidget 494 526 /* resizeEvent( new QResizeEvent( size(), size() ) ); */ 495 }496 497 void SkinGui::showFloatingControl(QPoint /*p*/) {498 qDebug("SkinGui::showFloatingControl");499 500 #if SKIN_CONTROLWIDGET_OVER_VIDEO501 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_WIN508 floating_control->setBypassWindowManager(pref->bypass_window_manager);509 #endif510 floating_control->showOver(panel, pref->floating_control_width);511 #else512 if (!controlwidget->isVisible()) {513 controlwidget->show();514 }515 #endif516 }517 518 void SkinGui::showFloatingMenu(QPoint /*p*/) {519 #if !SKIN_CONTROLWIDGET_OVER_VIDEO520 qDebug("SkinGui::showFloatingMenu");521 522 if (!menuBar()->isVisible())523 menuBar()->show();524 #endif525 }526 527 void SkinGui::hideFloatingControls() {528 qDebug("SkinGui::hideFloatingControls");529 530 #if SKIN_CONTROLWIDGET_OVER_VIDEO531 floating_control->hide();532 #else533 if (controlwidget->isVisible())534 controlwidget->hide();535 536 if (menuBar()->isVisible())537 menuBar()->hide();538 #endif539 527 } 540 528 … … 563 551 set->beginGroup( "actions" ); 564 552 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() ); 567 556 #endif 568 557 set->setValue("toolbar1_version", TOOLBAR_VERSION); … … 613 602 toolbar1->setActionsFromStringList( toolbar1->defaultActions() ); 614 603 } 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() ); 617 607 floating_control->adjustSize(); 618 608 #endif
Note:
See TracChangeset
for help on using the changeset viewer.