Changeset 181 for smplayer/trunk/src/defaultgui.cpp
- Timestamp:
- Aug 31, 2016, 5:31:04 PM (9 years ago)
- Location:
- smplayer/trunk
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
smplayer/trunk
- Property svn:mergeinfo changed
/smplayer/vendor/current merged: 179
- Property svn:mergeinfo changed
-
smplayer/trunk/src/defaultgui.cpp
r176 r181 52 52 #include <QMovie> 53 53 54 #define TOOLBAR_VERSION 1 54 #define TOOLBAR_VERSION 2 55 #define CONTROLWIDGET_VERSION 0 56 #define FLOATING_CONTROL_VERSION 1 55 57 56 58 using namespace Global; … … 61 63 createStatusBar(); 62 64 63 connect( this, SIGNAL(timeChanged(QString)), 64 this, SLOT(displayTime(QString)) ); 65 connect( this, SIGNAL(frameChanged(int)), 65 connect( this, SIGNAL(frameChanged(int)), 66 66 this, SLOT(displayFrame(int)) ); 67 67 connect( this, SIGNAL(ABMarkersChanged(int,int)), … … 90 90 #endif 91 91 92 connect(this, SIGNAL(preferencesChanged()), this, SLOT(checkCompactMode())); 93 92 94 menuBar()->setObjectName("menubar"); 93 95 … … 101 103 controlwidget->hide(); 102 104 toolbar1->hide(); 105 #ifdef LANGUAGE_TOOLBAR 103 106 toolbar2->hide(); 107 #endif 104 108 105 109 if (pref->floating_display_in_compact_mode) { … … 110 114 111 115 applyStyles(); 116 117 #ifdef ADD_QUICK_ACCESS 118 connect(this, SIGNAL(tabletModeChanged(bool)), this, SLOT(adaptForTabletMode())); 119 adaptForTabletMode(); 120 #endif 112 121 } 113 122 … … 138 147 139 148 // Create the time label 140 time_label_action = new TimeLabelAction(this);149 time_label_action = createTimeLabelAction(TimeLabelAction::CurrentAndTotalTime, this); 141 150 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"); 142 160 143 161 #if MINI_ARROW_BUTTONS … … 164 182 frame_display, SLOT(setVisible(bool)) ); 165 183 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 166 189 #if USE_CONFIGURABLE_TOOLBARS 167 190 editToolbar1Act = new MyAction( this, "edit_main_toolbar" ); … … 204 227 toolbar_menu = new QMenu(this); 205 228 toolbar_menu->addAction(toolbar1->toggleViewAction()); 229 #ifdef LANGUAGE_TOOLBAR 206 230 toolbar_menu->addAction(toolbar2->toggleViewAction()); 231 #endif 232 207 233 #if USE_CONFIGURABLE_TOOLBARS 208 234 toolbar_menu->addSeparator(); … … 212 238 toolbar_menu->addAction(editFloatingControlAct); 213 239 #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 249 void DefaultGui::populateMainMenu() { 250 qDebug("DefaultGui::populateMainMenu"); 251 252 BaseGuiPlus::populateMainMenu(); 253 214 254 optionsMenu->addSeparator(); 215 255 optionsMenu->addMenu(toolbar_menu); 216 217 statusbar_menu = new QMenu(this);218 statusbar_menu->addAction(viewVideoInfoAct);219 statusbar_menu->addAction(viewFrameCounterAct);220 221 256 optionsMenu->addMenu(statusbar_menu); 222 257 } … … 231 266 #else 232 267 m->addAction(toolbar1->toggleViewAction()); 268 #ifdef LANGUAGE_TOOLBAR 233 269 m->addAction(toolbar2->toggleViewAction()); 270 #endif 234 271 #endif 235 272 return m; … … 245 282 toolbar1_actions << "open_file" << "open_url" << "favorites_menu" << "separator" 246 283 << "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 ; 249 296 250 297 toolbar1->setDefaultActions(toolbar1_actions); … … 268 315 toolbar1->addAction(playPrevAct); 269 316 toolbar1->addAction(playNextAct); 317 toolbar1->addSeparator(); 318 toolbar1->addAction(audiotrack_menu->menuAction()); 319 toolbar1->addAction(subtitles_track_menu->menuAction()); 320 270 321 // Test: 271 322 //toolbar1->addSeparator(); … … 275 326 QToolButton * button = qobject_cast<QToolButton *>(toolbar1->widgetForAction(favorites->menuAction())); 276 327 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 279 346 toolbar2 = new QToolBar( this ); 280 347 toolbar2->setObjectName("toolbar2"); … … 289 356 select_subtitle->setMenu( subtitles_track_menu ); 290 357 toolbar2->addWidget(select_subtitle); 358 #endif 291 359 292 360 /* … … 301 369 tba->setShortcut(Qt::Key_F5); 302 370 371 #ifdef LANGUAGE_TOOLBAR 303 372 tba = toolbar2->toggleViewAction(); 304 373 tba->setObjectName("show_language_toolbar"); 305 374 tba->setShortcut(Qt::Key_F6); 375 #endif 376 377 toolbar1->setIconSize(QSize(32,32)); 306 378 } 307 379 … … 370 442 #endif 371 443 controlwidget_actions << "separator" << "fullscreen" << "mute" << "volumeslider_action"; 444 445 #ifdef ADD_QUICK_ACCESS 446 controlwidget_actions << "quick_access_menu"; 447 #endif 448 372 449 controlwidget->setDefaultActions(controlwidget_actions); 373 450 #else … … 405 482 406 483 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 407 490 #endif // USE_CONFIGURABLE_TOOLBARS 408 491 … … 410 493 controlwidget->show(); 411 494 */ 495 496 controlwidget->setIconSize(QSize(40,40)); 412 497 } 413 498 414 499 void DefaultGui::createFloatingControl() { 415 500 // Floating control 416 floating_control = new AutohideWidget( panel);501 floating_control = new AutohideWidget(mplayerwindow); 417 502 floating_control->setAutoHide(true); 418 503 … … 423 508 #if USE_CONFIGURABLE_TOOLBARS 424 509 QStringList floatingcontrol_actions; 425 floatingcontrol_actions << "play" << "pause" << "stop" << "separator"; 510 floatingcontrol_actions << "play_or_pause" << "stop" << "separator"; 511 /* 426 512 #if MINI_ARROW_BUTTONS 427 513 floatingcontrol_actions << "rewindbutton_action"; … … 429 515 floatingcontrol_actions << "rewind3" << "rewind2" << "rewind1"; 430 516 #endif 431 floatingcontrol_actions << "timeslider_action"; 517 */ 518 floatingcontrol_actions << "rewind1"; 519 floatingcontrol_actions << "current_timelabel_action" << "timeslider_action" << "total_timelabel_action"; 520 /* 432 521 #if MINI_ARROW_BUTTONS 433 522 floatingcontrol_actions << "forwardbutton_action"; … … 435 524 floatingcontrol_actions << "forward1" << "forward2" << "forward3"; 436 525 #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"; 438 529 iw->setDefaultActions(floatingcontrol_actions); 439 530 #else 531 /* 440 532 iw->addAction(playAct); 441 533 iw->addAction(pauseAct); 534 */ 535 iw->addAction(playOrPauseAct); 442 536 iw->addAction(stopAct); 443 537 iw->addSeparator(); … … 451 545 #endif 452 546 547 iw->addAction(current_time_label_action); 453 548 iw->addAction(timeslider_action); 549 iw->addAction(total_time_label_action); 454 550 455 551 #if MINI_ARROW_BUTTONS … … 465 561 iw->addAction(muteAct); 466 562 iw->addAction(volumeslider_action); 563 /* 467 564 iw->addSeparator(); 468 565 iw->addAction(time_label_action); 566 */ 469 567 #endif // USE_CONFIGURABLE_TOOLBARS 470 568 471 569 floating_control->setInternalWidget(iw); 570 iw->setIconSize(QSize(48,48)); 472 571 473 572 #if defined(Q_OS_WIN) || defined(Q_OS_OS2) … … 496 595 time_display->setText(" 88:88:88 / 88:88:88 "); 497 596 time_display->setMinimumSize(time_display->sizeHint()); 597 connect(this, SIGNAL(timeChanged(QString)), time_display, SLOT(setText(QString))); 498 598 499 599 frame_display = new QLabel( statusBar() ); … … 516 616 video_info_display->setFrameShape(QFrame::NoFrame); 517 617 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 518 623 #ifdef BUFFERING_ANIMATION 519 624 state_widget = new StateWidget(statusBar()); … … 524 629 statusBar()->setAutoFillBackground(true); 525 630 631 /* 526 632 ColorUtils::setBackgroundColor( statusBar(), QColor(0,0,0) ); 527 633 ColorUtils::setForegroundColor( statusBar(), QColor(255,255,255) ); … … 534 640 ColorUtils::setBackgroundColor( video_info_display, QColor(0,0,0) ); 535 641 ColorUtils::setForegroundColor( video_info_display, QColor(255,255,255) ); 642 */ 536 643 statusBar()->setSizeGripEnabled(false); 537 644 538 645 statusBar()->addPermanentWidget( video_info_display ); 646 statusBar()->addPermanentWidget( format_info_display ); 539 647 statusBar()->addPermanentWidget( ab_section_display ); 540 648 … … 550 658 ab_section_display->show(); 551 659 video_info_display->hide(); 660 format_info_display->hide(); 552 661 } 553 662 … … 567 676 toolbar1->toggleViewAction()->setIcon(Images::icon("main_toolbar")); 568 677 678 #ifdef LANGUAGE_TOOLBAR 569 679 toolbar2->setWindowTitle( tr("&Language toolbar") ); 570 680 toolbar2->toggleViewAction()->setIcon(Images::icon("lang_toolbar")); … … 572 682 select_audio->setText( tr("Audio") ); 573 683 select_subtitle->setText( tr("Subtitle") ); 684 #endif 574 685 575 686 viewVideoInfoAct->change(Images::icon("view_video_info"), tr("&Video info") ); 576 687 viewFrameCounterAct->change( Images::icon("frame_counter"), tr("&Frame counter") ); 688 viewFormatInfoAct->change( Images::icon("view_format_info"), tr("F&ormat info") ); 577 689 578 690 #if USE_CONFIGURABLE_TOOLBARS … … 589 701 590 702 591 void DefaultGui::displayTime(QString text) {592 time_display->setText( text );593 time_label_action->setText(text);594 }595 596 703 void DefaultGui::displayFrame(int frame) { 597 704 if (frame_display->isVisible()) { … … 620 727 video_info_display->setText(" "); 621 728 } 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()); 622 734 } 623 735 … … 630 742 } 631 743 632 void DefaultGui:: applyNewPreferences() {633 qDebug("DefaultGui:: applyNewPreferences");744 void DefaultGui::checkCompactMode() { 745 qDebug("DefaultGui::checkCompactMode"); 634 746 635 747 if ((pref->compact_mode) && (pref->floating_display_in_compact_mode)) { … … 639 751 floating_control->deactivate(); 640 752 } 641 642 BaseGuiPlus::applyNewPreferences(); 643 } 753 } 754 755 #ifdef ADD_QUICK_ACCESS 756 void 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 644 768 645 769 void DefaultGui::reconfigureFloatingControl() { … … 664 788 // Save visibility of toolbars 665 789 fullscreen_toolbar1_was_visible = toolbar1->isVisible(); 790 #ifdef LANGUAGE_TOOLBAR 666 791 fullscreen_toolbar2_was_visible = toolbar2->isVisible(); 792 #endif 667 793 668 794 if (!pref->compact_mode) { … … 672 798 controlwidget_mini->hide(); 673 799 toolbar1->hide(); 800 #ifdef LANGUAGE_TOOLBAR 674 801 toolbar2->hide(); 802 #endif 675 803 } 676 804 } … … 692 820 693 821 toolbar1->setVisible( fullscreen_toolbar1_was_visible ); 822 #ifdef LANGUAGE_TOOLBAR 694 823 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 696 830 } 697 831 … … 709 843 // Save visibility of toolbars 710 844 compact_toolbar1_was_visible = toolbar1->isVisible(); 845 #ifdef LANGUAGE_TOOLBAR 711 846 compact_toolbar2_was_visible = toolbar2->isVisible(); 847 #endif 712 848 713 849 //menuBar()->hide(); … … 716 852 controlwidget_mini->hide(); 717 853 toolbar1->hide(); 854 #ifdef LANGUAGE_TOOLBAR 718 855 toolbar2->hide(); 856 #endif 719 857 } 720 858 … … 732 870 733 871 toolbar1->setVisible( compact_toolbar1_was_visible ); 872 #ifdef LANGUAGE_TOOLBAR 734 873 toolbar2->setVisible( compact_toolbar2_was_visible ); 874 #endif 875 876 #ifdef ADD_QUICK_ACCESS 877 if (pref->tablet_mode) menuBar()->hide(); 878 #endif 735 879 736 880 // Recheck size of controlwidget … … 772 916 //floating_control->adjustSize(); 773 917 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 } 779 925 } 780 926 … … 788 934 set->setValue("video_info", viewVideoInfoAct->isChecked()); 789 935 set->setValue("frame_counter", viewFrameCounterAct->isChecked()); 936 set->setValue("format_info", viewFormatInfoAct->isChecked()); 790 937 791 938 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 792 941 set->setValue("fullscreen_toolbar2_was_visible", fullscreen_toolbar2_was_visible); 793 set->setValue("compact_toolbar1_was_visible", compact_toolbar1_was_visible);794 942 set->setValue("compact_toolbar2_was_visible", compact_toolbar2_was_visible); 943 #endif 795 944 796 945 if (pref->save_window_size_on_exit) { … … 811 960 set->setValue("floating_control", iw->actionsToStringList() ); 812 961 set->setValue("toolbar1_version", TOOLBAR_VERSION); 962 set->setValue("controlwidget_version", CONTROLWIDGET_VERSION); 963 set->setValue("floating_control_version", FLOATING_CONTROL_VERSION); 813 964 set->endGroup(); 814 965 … … 833 984 viewVideoInfoAct->setChecked(set->value("video_info", false).toBool()); 834 985 viewFrameCounterAct->setChecked(set->value("frame_counter", false).toBool()); 986 viewFormatInfoAct->setChecked(set->value("format_info", false).toBool()); 835 987 836 988 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 837 991 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();839 992 compact_toolbar2_was_visible = set->value("compact_toolbar2_was_visible", compact_toolbar2_was_visible).toBool(); 993 #endif 840 994 841 995 if (pref->save_window_size_on_exit) { … … 853 1007 854 1008 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()); 857 1012 } 858 1013 } … … 867 1022 toolbar1->setActionsFromStringList( toolbar1->defaultActions() ); 868 1023 } 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 870 1036 controlwidget_mini->setActionsFromStringList( set->value("controlwidget_mini", controlwidget_mini->defaultActions()).toStringList() ); 871 1037 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 } 873 1046 set->endGroup(); 874 1047
Note:
See TracChangeset
for help on using the changeset viewer.