~ubuntu-branches/debian/stretch/smplayer/stretch

« back to all changes in this revision

Viewing changes to src/basegui.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Maia Kozheva
  • Date: 2010-05-09 21:23:36 UTC
  • mfrom: (1.1.11 upstream) (3.1.5 sid)
  • Revision ID: james.westby@ubuntu.com-20100509212336-a9jv748zn5625qo7
* New upstream release.
* debian/control:
  - Removed mplayer-nogui from Depends, as it is now a transitional package
    to mplayer in both Debian and Ubuntu.
  - Bumped Standards-Version to 3.8.4 (no changes needed).

Show diffs side-by-side

added added

removed removed

Lines of Context:
1
1
/*  smplayer, GUI front-end for mplayer.
2
 
    Copyright (C) 2006-2009 Ricardo Villalba <rvm@escomposlinux.org>
 
2
    Copyright (C) 2006-2010 Ricardo Villalba <rvm@escomposlinux.org>
3
3
 
4
4
    This program is free software; you can redistribute it and/or modify
5
5
    it under the terms of the GNU General Public License as published by
109
109
#endif
110
110
        ignore_show_hide_events = false;
111
111
 
 
112
        arg_close_on_finish = -1;
 
113
        arg_start_in_fullscreen = -1;
 
114
 
112
115
        setWindowTitle( "SMPlayer" );
113
116
 
114
117
        // Not created objects
180
183
void BaseGui::initializeGui() {
181
184
        if (pref->compact_mode) toggleCompactMode(TRUE);
182
185
        changeStayOnTop(pref->stay_on_top);
183
 
        toggleFrameCounter( pref->show_frame_counter );
184
186
 
185
187
#if ALLOW_CHANGE_STYLESHEET
186
188
        changeStyleSheet(pref->iconset);
410
412
        connect( forward3Act, SIGNAL(triggered()),
411
413
             core, SLOT(fastforward()) );
412
414
 
 
415
        setAMarkerAct = new MyAction( this, "set_a_marker" );
 
416
        connect( setAMarkerAct, SIGNAL(triggered()),
 
417
             core, SLOT(setAMarker()) );
 
418
 
 
419
        setBMarkerAct = new MyAction( this, "set_b_marker" );
 
420
        connect( setBMarkerAct, SIGNAL(triggered()),
 
421
             core, SLOT(setBMarker()) );
 
422
 
 
423
        clearABMarkersAct = new MyAction( this, "clear_ab_markers" );
 
424
        connect( clearABMarkersAct, SIGNAL(triggered()),
 
425
             core, SLOT(clearABMarkers()) );
 
426
 
413
427
        repeatAct = new MyAction( this, "repeat" );
414
428
        repeatAct->setCheckable( true );
415
429
        connect( repeatAct, SIGNAL(toggled(bool)),
686
700
        connect( showPropertiesAct, SIGNAL(triggered()),
687
701
             this, SLOT(showFilePropertiesDialog()) );
688
702
 
689
 
        frameCounterAct = new MyAction( this, "frame_counter" );
690
 
        frameCounterAct->setCheckable( true );
691
 
        connect( frameCounterAct, SIGNAL(toggled(bool)),
692
 
             this, SLOT(toggleFrameCounter(bool)) );
693
 
 
694
703
        showPreferencesAct = new MyAction( QKeySequence("Ctrl+P"), this, "show_preferences" );
695
704
        connect( showPreferencesAct, SIGNAL(triggered()),
696
705
             this, SLOT(showPreferencesDialog()) );
747
756
        connect( moveRightAct, SIGNAL(triggered()), mplayerwindow, SLOT(moveRight()) );
748
757
 
749
758
        incZoomAct = new MyAction(Qt::Key_E, this, "inc_zoom");
750
 
        connect( incZoomAct, SIGNAL(triggered()), core, SLOT(incPanscan()) );
 
759
        connect( incZoomAct, SIGNAL(triggered()), core, SLOT(incZoom()) );
751
760
 
752
761
        decZoomAct = new MyAction(Qt::Key_W, this, "dec_zoom");
753
 
        connect( decZoomAct, SIGNAL(triggered()), core, SLOT(decPanscan()) );
 
762
        connect( decZoomAct, SIGNAL(triggered()), core, SLOT(decZoom()) );
754
763
 
755
764
        resetZoomAct = new MyAction(Qt::SHIFT | Qt::Key_E, this, "reset_zoom");
756
 
        connect( resetZoomAct, SIGNAL(triggered()), core, SLOT(resetPanscan()) );
 
765
        connect( resetZoomAct, SIGNAL(triggered()), core, SLOT(resetZoom()) );
757
766
 
758
767
        autoZoomAct = new MyAction(Qt::SHIFT | Qt::Key_W, this, "auto_zoom");
759
 
        connect( autoZoomAct, SIGNAL(triggered()), core, SLOT(autoPanscan()) );
 
768
        connect( autoZoomAct, SIGNAL(triggered()), core, SLOT(autoZoom()) );
760
769
 
761
770
        autoZoom169Act = new MyAction(Qt::SHIFT | Qt::Key_A, this, "zoom_169");
762
 
        connect( autoZoom169Act, SIGNAL(triggered()), core, SLOT(autoPanscanFor169()) );
 
771
        connect( autoZoom169Act, SIGNAL(triggered()), core, SLOT(autoZoomFor169()) );
763
772
 
764
773
        autoZoom235Act = new MyAction(Qt::SHIFT | Qt::Key_S, this, "zoom_235");
765
 
        connect( autoZoom235Act, SIGNAL(triggered()), core, SLOT(autoPanscanFor235()) );
 
774
        connect( autoZoom235Act, SIGNAL(triggered()), core, SLOT(autoZoomFor235()) );
 
775
 
 
776
#if USE_MPLAYER_PANSCAN
 
777
        incPanscanAct = new MyAction(Qt::SHIFT | Qt::Key_M, this, "inc_panscan");
 
778
        connect( incPanscanAct, SIGNAL(triggered()), core, SLOT(incPanscan()) );
 
779
 
 
780
        decPanscanAct = new MyAction(Qt::SHIFT | Qt::Key_N, this, "dec_panscan");
 
781
        connect( decPanscanAct, SIGNAL(triggered()), core, SLOT(decPanscan()) );
 
782
#endif
766
783
 
767
784
 
768
785
        // Actions not in menus or buttons
847
864
        connect( nextWheelFunctionAct, SIGNAL(triggered()),
848
865
                         core, SLOT(nextWheelFunction()) );
849
866
 
 
867
        showFilenameAct = new MyAction(Qt::SHIFT | Qt::Key_I, this, "show_filename");
 
868
        connect( showFilenameAct, SIGNAL(triggered()), core, SLOT(showFilenameOnOSD()) );
 
869
 
 
870
        toggleDeinterlaceAct = new MyAction(Qt::Key_D, this, "toggle_deinterlacing");
 
871
        connect( toggleDeinterlaceAct, SIGNAL(triggered()), core, SLOT(toggleDeinterlace()) );
 
872
 
 
873
 
850
874
        // Group actions
851
875
 
852
876
        // OSD
1251
1275
        screenGroup->setActionsEnabled(pref->vo.startsWith(OVERLAY_VO));
1252
1276
#endif
1253
1277
 
 
1278
#ifndef Q_OS_WIN
 
1279
        // Disable video filters if using vdpau
 
1280
        if ((pref->disable_video_filters_with_vdpau) && (pref->vo.startsWith("vdpau"))) {
 
1281
                screenshotAct->setEnabled(false);
 
1282
                screenshotsAct->setEnabled(false);
 
1283
                flipAct->setEnabled(false);
 
1284
                mirrorAct->setEnabled(false);
 
1285
                postProcessingAct->setEnabled(false);
 
1286
                phaseAct->setEnabled(false);
 
1287
                deblockAct->setEnabled(false);
 
1288
                deringAct->setEnabled(false);
 
1289
                addNoiseAct->setEnabled(false);
 
1290
                addLetterboxAct->setEnabled(false);
 
1291
                upscaleAct->setEnabled(false);
 
1292
 
 
1293
                deinterlaceGroup->setActionsEnabled(false);
 
1294
                rotateGroup->setActionsEnabled(false);
 
1295
                denoiseGroup->setActionsEnabled(false);
 
1296
 
 
1297
                displayMessage( tr("Video filters are disabled when using vdpau") );
 
1298
        }
 
1299
#endif
 
1300
 
1254
1301
#if DVDNAV_SUPPORT
1255
1302
        if (!core->mdat.filename.startsWith("dvdnav:")) {
1256
1303
                dvdnavUpAct->setEnabled(false);
1332
1379
 
1333
1380
        setJumpTexts(); // Texts for rewind*Act and forward*Act
1334
1381
 
 
1382
        // Submenu A-B
 
1383
        setAMarkerAct->change( Images::icon("a_marker"), tr("Set &A marker") );
 
1384
        setBMarkerAct->change( Images::icon("b_marker"), tr("Set &B marker") );
 
1385
        clearABMarkersAct->change( Images::icon("clear_markers"), tr("&Clear A-B markers") );
1335
1386
        repeatAct->change( Images::icon("repeat"), tr("&Repeat") );
 
1387
 
1336
1388
        gotoAct->change( Images::icon("jumpto"), tr("&Jump to...") );
1337
1389
 
1338
1390
        // Submenu speed
1353
1405
        screenshotAct->change( Images::icon("screenshot"), tr("&Screenshot") );
1354
1406
        screenshotsAct->change( Images::icon("screenshots"), tr("Start/stop takin&g screenshots") );
1355
1407
        videoPreviewAct->change( Images::icon("video_preview"), tr("Pre&view...") );
1356
 
        flipAct->change( Images::icon("flip"), tr("Flip i&mage") );
 
1408
        flipAct->change( Images::icon("flip"), tr("Fli&p image") );
1357
1409
        mirrorAct->change( Images::icon("mirror"), tr("Mirr&or image") );
1358
1410
        motionVectorsAct->change( Images::icon("motion_vectors"), 
1359
1411
                              tr("Visualize &motion vectors") );
1369
1421
        moveUpAct->change( tr("Move &up") );
1370
1422
        moveDownAct->change( tr("Move &down") );
1371
1423
 
 
1424
#if USE_MPLAYER_PANSCAN
 
1425
        decPanscanAct->change( "Panscan -" );
 
1426
        incPanscanAct->change( "Panscan +" );
 
1427
#endif
 
1428
 
1372
1429
        // Submenu Filters
1373
1430
        postProcessingAct->change( tr("&Postprocessing") );
1374
1431
        phaseAct->change( tr("&Autodetect phase") );
1422
1479
        // Menu Options
1423
1480
        showPlaylistAct->change( Images::icon("playlist"), tr("&Playlist") );
1424
1481
        showPropertiesAct->change( Images::icon("info"), tr("View &info and properties...") );
1425
 
        frameCounterAct->change( Images::icon("frame_counter"),
1426
 
                             tr("&Show frame counter") );
1427
1482
        showPreferencesAct->change( Images::icon("prefs"), tr("P&references") );
1428
1483
 
1429
1484
        // Submenu Logs
1482
1537
        nextAspectAct->change( Images::icon("next_aspect"), tr("Next aspect ratio") );
1483
1538
        nextWheelFunctionAct->change( Images::icon("next_wheel_function"), tr("Next wheel function") );
1484
1539
 
 
1540
        showFilenameAct->change( tr("Show filename on OSD") );
 
1541
        toggleDeinterlaceAct->change( tr("Toggle deinterlacing") );
 
1542
 
1485
1543
 
1486
1544
        // Action groups
1487
1545
        osdNoneAct->change( tr("Subtitles onl&y") );
1526
1584
        speed_menu->menuAction()->setText( tr("Sp&eed") );
1527
1585
        speed_menu->menuAction()->setIcon( Images::icon("speed") );
1528
1586
 
 
1587
        ab_menu->menuAction()->setText( tr("&A-B section") );
 
1588
        ab_menu->menuAction()->setIcon( Images::icon("ab_menu") );
 
1589
 
1529
1590
        // Menu Video
1530
1591
        videotrack_menu->menuAction()->setText( tr("&Track", "video") );
1531
1592
        videotrack_menu->menuAction()->setIcon( Images::icon("video_track") );
1533
1594
        videosize_menu->menuAction()->setText( tr("Si&ze") );
1534
1595
        videosize_menu->menuAction()->setIcon( Images::icon("video_size") );
1535
1596
 
 
1597
        /*
1536
1598
        panscan_menu->menuAction()->setText( tr("&Pan && scan") );
1537
1599
        panscan_menu->menuAction()->setIcon( Images::icon("panscan") );
 
1600
        */
 
1601
        zoom_menu->menuAction()->setText( tr("Zoo&m") );
 
1602
        zoom_menu->menuAction()->setIcon( Images::icon("zoom") );
1538
1603
 
1539
1604
        aspect_menu->menuAction()->setText( tr("&Aspect ratio") );
1540
1605
        aspect_menu->menuAction()->setIcon( Images::icon("aspect") );
1724
1789
        connect( core, SIGNAL(showFrame(int)),
1725
1790
             this, SIGNAL(frameChanged(int)) );
1726
1791
 
 
1792
        connect( core, SIGNAL(ABMarkersChanged(int,int)),
 
1793
             this, SIGNAL(ABMarkersChanged(int,int)) );
 
1794
 
1727
1795
        connect( core, SIGNAL(showTime(double)),
1728
1796
             this, SLOT(gotCurrentTime(double)) );
1729
1797
 
1991
2059
 
1992
2060
        playMenu->addMenu(speed_menu);
1993
2061
 
1994
 
        playMenu->addAction(repeatAct);
 
2062
        // A-B submenu
 
2063
        ab_menu = new QMenu(this);
 
2064
        ab_menu->menuAction()->setObjectName("ab_menu");
 
2065
        ab_menu->addAction(setAMarkerAct);
 
2066
        ab_menu->addAction(setBMarkerAct);
 
2067
        ab_menu->addAction(clearABMarkersAct);
 
2068
        ab_menu->addSeparator();
 
2069
        ab_menu->addAction(repeatAct);
 
2070
 
 
2071
        playMenu->addSeparator();
 
2072
        playMenu->addMenu(ab_menu);
 
2073
 
1995
2074
        playMenu->addSeparator();
1996
2075
        playMenu->addAction(gotoAct);
1997
2076
        playMenu->addSeparator();
2023
2102
        videosize_menu->addAction(doubleSizeAct);
2024
2103
        videoMenu->addMenu(videosize_menu);
2025
2104
 
2026
 
        // Panscan submenu
2027
 
        panscan_menu = new QMenu(this);
2028
 
        panscan_menu->menuAction()->setObjectName("panscan_menu");
2029
 
        panscan_menu->addAction(resetZoomAct);
2030
 
        panscan_menu->addSeparator();
2031
 
        panscan_menu->addAction(autoZoomAct);
2032
 
        panscan_menu->addAction(autoZoom169Act);
2033
 
        panscan_menu->addAction(autoZoom235Act);
2034
 
        panscan_menu->addSeparator();
2035
 
        panscan_menu->addAction(decZoomAct);
2036
 
        panscan_menu->addAction(incZoomAct);
2037
 
        panscan_menu->addSeparator();
2038
 
        panscan_menu->addAction(moveLeftAct);
2039
 
        panscan_menu->addAction(moveRightAct);
2040
 
        panscan_menu->addAction(moveUpAct);
2041
 
        panscan_menu->addAction(moveDownAct);
 
2105
        // Zoom submenu
 
2106
        zoom_menu = new QMenu(this);
 
2107
        zoom_menu->menuAction()->setObjectName("zoom_menu");
 
2108
        zoom_menu->addAction(resetZoomAct);
 
2109
        zoom_menu->addSeparator();
 
2110
        zoom_menu->addAction(autoZoomAct);
 
2111
        zoom_menu->addAction(autoZoom169Act);
 
2112
        zoom_menu->addAction(autoZoom235Act);
 
2113
        zoom_menu->addSeparator();
 
2114
        zoom_menu->addAction(decZoomAct);
 
2115
        zoom_menu->addAction(incZoomAct);
 
2116
        zoom_menu->addSeparator();
 
2117
        zoom_menu->addAction(moveLeftAct);
 
2118
        zoom_menu->addAction(moveRightAct);
 
2119
        zoom_menu->addAction(moveUpAct);
 
2120
        zoom_menu->addAction(moveDownAct);
2042
2121
 
2043
 
        videoMenu->addMenu(panscan_menu);
 
2122
        videoMenu->addMenu(zoom_menu);
2044
2123
 
2045
2124
        // Aspect submenu
2046
2125
        aspect_menu = new QMenu(this);
2222
2301
        // OPTIONS MENU
2223
2302
        optionsMenu->addAction(showPropertiesAct);
2224
2303
        optionsMenu->addAction(showPlaylistAct);
2225
 
        optionsMenu->addAction(frameCounterAct);
2226
2304
 
2227
2305
        // OSD submenu
2228
2306
        osd_menu = new QMenu(this);
2569
2647
        }
2570
2648
 
2571
2649
        setWindowCaption( core->mdat.displayName() + " - SMPlayer" );
 
2650
 
 
2651
        emit videoInfoChanged(core->mdat.video_width, core->mdat.video_height, core->mdat.video_fps.toDouble());
2572
2652
}
2573
2653
 
2574
2654
void BaseGui::newMediaLoaded() {
2977
3057
        volnormAct->setChecked( core->mset.volnorm_filter );
2978
3058
 
2979
3059
        // Repeat menu option
2980
 
        repeatAct->setChecked( pref->loop );
 
3060
        repeatAct->setChecked( core->mset.loop );
2981
3061
 
2982
3062
        // Fullscreen action
2983
3063
        fullscreenAct->setChecked( pref->fullscreen );
3003
3083
        showPlaylistAct->setChecked( playlist->isVisible() );
3004
3084
#endif
3005
3085
 
3006
 
        // Frame counter
3007
 
        frameCounterAct->setChecked( pref->show_frame_counter );
3008
 
 
3009
3086
        // Motion vectors
3010
3087
        motionVectorsAct->setChecked( pref->show_motion_vectors );
3011
3088
 
3436
3513
}
3437
3514
 
3438
3515
void BaseGui::helpTips() {
3439
 
        QDesktopServices::openUrl( QUrl("http://smplayer.wiki.sourceforge.net/Tips") );
 
3516
        QDesktopServices::openUrl( QUrl("http://smplayer.berlios.de/forum/viewforum.php?f=12") );
3440
3517
}
3441
3518
 
3442
3519
void BaseGui::helpAbout() {
3577
3654
        }
3578
3655
}
3579
3656
 
3580
 
void BaseGui::toggleFrameCounter() {
3581
 
        toggleFrameCounter( !pref->show_frame_counter );
3582
 
}
3583
 
 
3584
 
void BaseGui::toggleFrameCounter(bool b) {
3585
 
    pref->show_frame_counter = b;
3586
 
    updateWidgets();
3587
 
}
3588
 
 
3589
3657
 
3590
3658
void BaseGui::leftClickFunction() {
3591
3659
        qDebug("BaseGui::leftClickFunction");
3878
3946
 
3879
3947
// Called when a video has started to play
3880
3948
void BaseGui::enterFullscreenOnPlay() {
3881
 
        if ( (pref->start_in_fullscreen) && (!pref->fullscreen) ) {
3882
 
                toggleFullscreen(TRUE);
 
3949
        qDebug("BaseGui::enterFullscreenOnPlay: arg_start_in_fullscreen: %d, pref->start_in_fullscreen: %d", arg_start_in_fullscreen, pref->start_in_fullscreen);
 
3950
 
 
3951
        if (arg_start_in_fullscreen != 0) {
 
3952
                if ( (arg_start_in_fullscreen == 1) || (pref->start_in_fullscreen) ) {
 
3953
                        if (!pref->fullscreen) toggleFullscreen(TRUE);
 
3954
                }
3883
3955
        }
3884
3956
}
3885
3957
 
3894
3966
        qDebug("BaseGui::playlistHasFinished");
3895
3967
        exitFullscreenOnStop();
3896
3968
 
3897
 
        if (pref->close_on_finish) exitAct->trigger();
 
3969
        qDebug("BaseGui::playlistHasFinished: arg_close_on_finish: %d, pref->close_on_finish: %d", arg_close_on_finish, pref->close_on_finish);
 
3970
 
 
3971
        if (arg_close_on_finish != 0) {
 
3972
                if ((arg_close_on_finish == 1) || (pref->close_on_finish)) exitAct->trigger();
 
3973
        }
3898
3974
}
3899
3975
 
3900
3976
void BaseGui::displayState(Core::State state) {
4033
4109
        statusBar()->showMessage( s, 1000 );
4034
4110
 
4035
4111
        if (pref->fullscreen) {
4036
 
                core->tellmp("osd_show_text \"" + s + "\" 3000 1");
 
4112
                core->displayTextOnOSD( s );
4037
4113
        }
4038
4114
}
4039
4115