summaryrefslogtreecommitdiff
path: root/src/basegui.cpp
diff options
context:
space:
mode:
authorMaia Kozheva <sikon@ubuntu.com>2010-05-09 21:22:23 +0700
committerMaia Kozheva <sikon@ubuntu.com>2010-05-09 21:22:23 +0700
commit99b53d44a60e3e934fc664152c115ae0d6e19920 (patch)
treee38698c486f6b4044125fa0d0bf33475d92e8f3a /src/basegui.cpp
parent263b32f108c15cd1c55a8f4eb4704fac6553f1ac (diff)
Imported Upstream version 0.6.9
Diffstat (limited to 'src/basegui.cpp')
-rw-r--r--src/basegui.cpp184
1 files changed, 130 insertions, 54 deletions
diff --git a/src/basegui.cpp b/src/basegui.cpp
index b93d41f..58deb36 100644
--- a/src/basegui.cpp
+++ b/src/basegui.cpp
@@ -1,5 +1,5 @@
/* smplayer, GUI front-end for mplayer.
- Copyright (C) 2006-2009 Ricardo Villalba <rvm@escomposlinux.org>
+ Copyright (C) 2006-2010 Ricardo Villalba <rvm@escomposlinux.org>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
@@ -109,6 +109,9 @@ BaseGui::BaseGui( QWidget* parent, Qt::WindowFlags flags )
#endif
ignore_show_hide_events = false;
+ arg_close_on_finish = -1;
+ arg_start_in_fullscreen = -1;
+
setWindowTitle( "SMPlayer" );
// Not created objects
@@ -180,7 +183,6 @@ BaseGui::BaseGui( QWidget* parent, Qt::WindowFlags flags )
void BaseGui::initializeGui() {
if (pref->compact_mode) toggleCompactMode(TRUE);
changeStayOnTop(pref->stay_on_top);
- toggleFrameCounter( pref->show_frame_counter );
#if ALLOW_CHANGE_STYLESHEET
changeStyleSheet(pref->iconset);
@@ -410,6 +412,18 @@ void BaseGui::createActions() {
connect( forward3Act, SIGNAL(triggered()),
core, SLOT(fastforward()) );
+ setAMarkerAct = new MyAction( this, "set_a_marker" );
+ connect( setAMarkerAct, SIGNAL(triggered()),
+ core, SLOT(setAMarker()) );
+
+ setBMarkerAct = new MyAction( this, "set_b_marker" );
+ connect( setBMarkerAct, SIGNAL(triggered()),
+ core, SLOT(setBMarker()) );
+
+ clearABMarkersAct = new MyAction( this, "clear_ab_markers" );
+ connect( clearABMarkersAct, SIGNAL(triggered()),
+ core, SLOT(clearABMarkers()) );
+
repeatAct = new MyAction( this, "repeat" );
repeatAct->setCheckable( true );
connect( repeatAct, SIGNAL(toggled(bool)),
@@ -686,11 +700,6 @@ void BaseGui::createActions() {
connect( showPropertiesAct, SIGNAL(triggered()),
this, SLOT(showFilePropertiesDialog()) );
- frameCounterAct = new MyAction( this, "frame_counter" );
- frameCounterAct->setCheckable( true );
- connect( frameCounterAct, SIGNAL(toggled(bool)),
- this, SLOT(toggleFrameCounter(bool)) );
-
showPreferencesAct = new MyAction( QKeySequence("Ctrl+P"), this, "show_preferences" );
connect( showPreferencesAct, SIGNAL(triggered()),
this, SLOT(showPreferencesDialog()) );
@@ -747,22 +756,30 @@ void BaseGui::createActions() {
connect( moveRightAct, SIGNAL(triggered()), mplayerwindow, SLOT(moveRight()) );
incZoomAct = new MyAction(Qt::Key_E, this, "inc_zoom");
- connect( incZoomAct, SIGNAL(triggered()), core, SLOT(incPanscan()) );
+ connect( incZoomAct, SIGNAL(triggered()), core, SLOT(incZoom()) );
decZoomAct = new MyAction(Qt::Key_W, this, "dec_zoom");
- connect( decZoomAct, SIGNAL(triggered()), core, SLOT(decPanscan()) );
+ connect( decZoomAct, SIGNAL(triggered()), core, SLOT(decZoom()) );
resetZoomAct = new MyAction(Qt::SHIFT | Qt::Key_E, this, "reset_zoom");
- connect( resetZoomAct, SIGNAL(triggered()), core, SLOT(resetPanscan()) );
+ connect( resetZoomAct, SIGNAL(triggered()), core, SLOT(resetZoom()) );
autoZoomAct = new MyAction(Qt::SHIFT | Qt::Key_W, this, "auto_zoom");
- connect( autoZoomAct, SIGNAL(triggered()), core, SLOT(autoPanscan()) );
+ connect( autoZoomAct, SIGNAL(triggered()), core, SLOT(autoZoom()) );
autoZoom169Act = new MyAction(Qt::SHIFT | Qt::Key_A, this, "zoom_169");
- connect( autoZoom169Act, SIGNAL(triggered()), core, SLOT(autoPanscanFor169()) );
+ connect( autoZoom169Act, SIGNAL(triggered()), core, SLOT(autoZoomFor169()) );
autoZoom235Act = new MyAction(Qt::SHIFT | Qt::Key_S, this, "zoom_235");
- connect( autoZoom235Act, SIGNAL(triggered()), core, SLOT(autoPanscanFor235()) );
+ connect( autoZoom235Act, SIGNAL(triggered()), core, SLOT(autoZoomFor235()) );
+
+#if USE_MPLAYER_PANSCAN
+ incPanscanAct = new MyAction(Qt::SHIFT | Qt::Key_M, this, "inc_panscan");
+ connect( incPanscanAct, SIGNAL(triggered()), core, SLOT(incPanscan()) );
+
+ decPanscanAct = new MyAction(Qt::SHIFT | Qt::Key_N, this, "dec_panscan");
+ connect( decPanscanAct, SIGNAL(triggered()), core, SLOT(decPanscan()) );
+#endif
// Actions not in menus or buttons
@@ -847,6 +864,13 @@ void BaseGui::createActions() {
connect( nextWheelFunctionAct, SIGNAL(triggered()),
core, SLOT(nextWheelFunction()) );
+ showFilenameAct = new MyAction(Qt::SHIFT | Qt::Key_I, this, "show_filename");
+ connect( showFilenameAct, SIGNAL(triggered()), core, SLOT(showFilenameOnOSD()) );
+
+ toggleDeinterlaceAct = new MyAction(Qt::Key_D, this, "toggle_deinterlacing");
+ connect( toggleDeinterlaceAct, SIGNAL(triggered()), core, SLOT(toggleDeinterlace()) );
+
+
// Group actions
// OSD
@@ -1251,6 +1275,29 @@ void BaseGui::enableActionsOnPlaying() {
screenGroup->setActionsEnabled(pref->vo.startsWith(OVERLAY_VO));
#endif
+#ifndef Q_OS_WIN
+ // Disable video filters if using vdpau
+ if ((pref->disable_video_filters_with_vdpau) && (pref->vo.startsWith("vdpau"))) {
+ screenshotAct->setEnabled(false);
+ screenshotsAct->setEnabled(false);
+ flipAct->setEnabled(false);
+ mirrorAct->setEnabled(false);
+ postProcessingAct->setEnabled(false);
+ phaseAct->setEnabled(false);
+ deblockAct->setEnabled(false);
+ deringAct->setEnabled(false);
+ addNoiseAct->setEnabled(false);
+ addLetterboxAct->setEnabled(false);
+ upscaleAct->setEnabled(false);
+
+ deinterlaceGroup->setActionsEnabled(false);
+ rotateGroup->setActionsEnabled(false);
+ denoiseGroup->setActionsEnabled(false);
+
+ displayMessage( tr("Video filters are disabled when using vdpau") );
+ }
+#endif
+
#if DVDNAV_SUPPORT
if (!core->mdat.filename.startsWith("dvdnav:")) {
dvdnavUpAct->setEnabled(false);
@@ -1332,7 +1379,12 @@ void BaseGui::retranslateStrings() {
setJumpTexts(); // Texts for rewind*Act and forward*Act
+ // Submenu A-B
+ setAMarkerAct->change( Images::icon("a_marker"), tr("Set &A marker") );
+ setBMarkerAct->change( Images::icon("b_marker"), tr("Set &B marker") );
+ clearABMarkersAct->change( Images::icon("clear_markers"), tr("&Clear A-B markers") );
repeatAct->change( Images::icon("repeat"), tr("&Repeat") );
+
gotoAct->change( Images::icon("jumpto"), tr("&Jump to...") );
// Submenu speed
@@ -1353,7 +1405,7 @@ void BaseGui::retranslateStrings() {
screenshotAct->change( Images::icon("screenshot"), tr("&Screenshot") );
screenshotsAct->change( Images::icon("screenshots"), tr("Start/stop takin&g screenshots") );
videoPreviewAct->change( Images::icon("video_preview"), tr("Pre&view...") );
- flipAct->change( Images::icon("flip"), tr("Flip i&mage") );
+ flipAct->change( Images::icon("flip"), tr("Fli&p image") );
mirrorAct->change( Images::icon("mirror"), tr("Mirr&or image") );
motionVectorsAct->change( Images::icon("motion_vectors"),
tr("Visualize &motion vectors") );
@@ -1369,6 +1421,11 @@ void BaseGui::retranslateStrings() {
moveUpAct->change( tr("Move &up") );
moveDownAct->change( tr("Move &down") );
+#if USE_MPLAYER_PANSCAN
+ decPanscanAct->change( "Panscan -" );
+ incPanscanAct->change( "Panscan +" );
+#endif
+
// Submenu Filters
postProcessingAct->change( tr("&Postprocessing") );
phaseAct->change( tr("&Autodetect phase") );
@@ -1422,8 +1479,6 @@ void BaseGui::retranslateStrings() {
// Menu Options
showPlaylistAct->change( Images::icon("playlist"), tr("&Playlist") );
showPropertiesAct->change( Images::icon("info"), tr("View &info and properties...") );
- frameCounterAct->change( Images::icon("frame_counter"),
- tr("&Show frame counter") );
showPreferencesAct->change( Images::icon("prefs"), tr("P&references") );
// Submenu Logs
@@ -1482,6 +1537,9 @@ void BaseGui::retranslateStrings() {
nextAspectAct->change( Images::icon("next_aspect"), tr("Next aspect ratio") );
nextWheelFunctionAct->change( Images::icon("next_wheel_function"), tr("Next wheel function") );
+ showFilenameAct->change( tr("Show filename on OSD") );
+ toggleDeinterlaceAct->change( tr("Toggle deinterlacing") );
+
// Action groups
osdNoneAct->change( tr("Subtitles onl&y") );
@@ -1526,6 +1584,9 @@ void BaseGui::retranslateStrings() {
speed_menu->menuAction()->setText( tr("Sp&eed") );
speed_menu->menuAction()->setIcon( Images::icon("speed") );
+ ab_menu->menuAction()->setText( tr("&A-B section") );
+ ab_menu->menuAction()->setIcon( Images::icon("ab_menu") );
+
// Menu Video
videotrack_menu->menuAction()->setText( tr("&Track", "video") );
videotrack_menu->menuAction()->setIcon( Images::icon("video_track") );
@@ -1533,8 +1594,12 @@ void BaseGui::retranslateStrings() {
videosize_menu->menuAction()->setText( tr("Si&ze") );
videosize_menu->menuAction()->setIcon( Images::icon("video_size") );
+ /*
panscan_menu->menuAction()->setText( tr("&Pan && scan") );
panscan_menu->menuAction()->setIcon( Images::icon("panscan") );
+ */
+ zoom_menu->menuAction()->setText( tr("Zoo&m") );
+ zoom_menu->menuAction()->setIcon( Images::icon("zoom") );
aspect_menu->menuAction()->setText( tr("&Aspect ratio") );
aspect_menu->menuAction()->setIcon( Images::icon("aspect") );
@@ -1724,6 +1789,9 @@ void BaseGui::createCore() {
connect( core, SIGNAL(showFrame(int)),
this, SIGNAL(frameChanged(int)) );
+ connect( core, SIGNAL(ABMarkersChanged(int,int)),
+ this, SIGNAL(ABMarkersChanged(int,int)) );
+
connect( core, SIGNAL(showTime(double)),
this, SLOT(gotCurrentTime(double)) );
@@ -1991,7 +2059,18 @@ void BaseGui::createMenus() {
playMenu->addMenu(speed_menu);
- playMenu->addAction(repeatAct);
+ // A-B submenu
+ ab_menu = new QMenu(this);
+ ab_menu->menuAction()->setObjectName("ab_menu");
+ ab_menu->addAction(setAMarkerAct);
+ ab_menu->addAction(setBMarkerAct);
+ ab_menu->addAction(clearABMarkersAct);
+ ab_menu->addSeparator();
+ ab_menu->addAction(repeatAct);
+
+ playMenu->addSeparator();
+ playMenu->addMenu(ab_menu);
+
playMenu->addSeparator();
playMenu->addAction(gotoAct);
playMenu->addSeparator();
@@ -2023,24 +2102,24 @@ void BaseGui::createMenus() {
videosize_menu->addAction(doubleSizeAct);
videoMenu->addMenu(videosize_menu);
- // Panscan submenu
- panscan_menu = new QMenu(this);
- panscan_menu->menuAction()->setObjectName("panscan_menu");
- panscan_menu->addAction(resetZoomAct);
- panscan_menu->addSeparator();
- panscan_menu->addAction(autoZoomAct);
- panscan_menu->addAction(autoZoom169Act);
- panscan_menu->addAction(autoZoom235Act);
- panscan_menu->addSeparator();
- panscan_menu->addAction(decZoomAct);
- panscan_menu->addAction(incZoomAct);
- panscan_menu->addSeparator();
- panscan_menu->addAction(moveLeftAct);
- panscan_menu->addAction(moveRightAct);
- panscan_menu->addAction(moveUpAct);
- panscan_menu->addAction(moveDownAct);
-
- videoMenu->addMenu(panscan_menu);
+ // Zoom submenu
+ zoom_menu = new QMenu(this);
+ zoom_menu->menuAction()->setObjectName("zoom_menu");
+ zoom_menu->addAction(resetZoomAct);
+ zoom_menu->addSeparator();
+ zoom_menu->addAction(autoZoomAct);
+ zoom_menu->addAction(autoZoom169Act);
+ zoom_menu->addAction(autoZoom235Act);
+ zoom_menu->addSeparator();
+ zoom_menu->addAction(decZoomAct);
+ zoom_menu->addAction(incZoomAct);
+ zoom_menu->addSeparator();
+ zoom_menu->addAction(moveLeftAct);
+ zoom_menu->addAction(moveRightAct);
+ zoom_menu->addAction(moveUpAct);
+ zoom_menu->addAction(moveDownAct);
+
+ videoMenu->addMenu(zoom_menu);
// Aspect submenu
aspect_menu = new QMenu(this);
@@ -2222,7 +2301,6 @@ void BaseGui::createMenus() {
// OPTIONS MENU
optionsMenu->addAction(showPropertiesAct);
optionsMenu->addAction(showPlaylistAct);
- optionsMenu->addAction(frameCounterAct);
// OSD submenu
osd_menu = new QMenu(this);
@@ -2569,6 +2647,8 @@ void BaseGui::updateMediaInfo() {
}
setWindowCaption( core->mdat.displayName() + " - SMPlayer" );
+
+ emit videoInfoChanged(core->mdat.video_width, core->mdat.video_height, core->mdat.video_fps.toDouble());
}
void BaseGui::newMediaLoaded() {
@@ -2977,7 +3057,7 @@ void BaseGui::updateWidgets() {
volnormAct->setChecked( core->mset.volnorm_filter );
// Repeat menu option
- repeatAct->setChecked( pref->loop );
+ repeatAct->setChecked( core->mset.loop );
// Fullscreen action
fullscreenAct->setChecked( pref->fullscreen );
@@ -3003,9 +3083,6 @@ void BaseGui::updateWidgets() {
showPlaylistAct->setChecked( playlist->isVisible() );
#endif
- // Frame counter
- frameCounterAct->setChecked( pref->show_frame_counter );
-
// Motion vectors
motionVectorsAct->setChecked( pref->show_motion_vectors );
@@ -3436,7 +3513,7 @@ void BaseGui::helpCLOptions() {
}
void BaseGui::helpTips() {
- QDesktopServices::openUrl( QUrl("http://smplayer.wiki.sourceforge.net/Tips") );
+ QDesktopServices::openUrl( QUrl("http://smplayer.berlios.de/forum/viewforum.php?f=12") );
}
void BaseGui::helpAbout() {
@@ -3577,15 +3654,6 @@ void BaseGui::aboutToExitFullscreen() {
}
}
-void BaseGui::toggleFrameCounter() {
- toggleFrameCounter( !pref->show_frame_counter );
-}
-
-void BaseGui::toggleFrameCounter(bool b) {
- pref->show_frame_counter = b;
- updateWidgets();
-}
-
void BaseGui::leftClickFunction() {
qDebug("BaseGui::leftClickFunction");
@@ -3878,8 +3946,12 @@ void BaseGui::wheelEvent( QWheelEvent * e ) {
// Called when a video has started to play
void BaseGui::enterFullscreenOnPlay() {
- if ( (pref->start_in_fullscreen) && (!pref->fullscreen) ) {
- toggleFullscreen(TRUE);
+ qDebug("BaseGui::enterFullscreenOnPlay: arg_start_in_fullscreen: %d, pref->start_in_fullscreen: %d", arg_start_in_fullscreen, pref->start_in_fullscreen);
+
+ if (arg_start_in_fullscreen != 0) {
+ if ( (arg_start_in_fullscreen == 1) || (pref->start_in_fullscreen) ) {
+ if (!pref->fullscreen) toggleFullscreen(TRUE);
+ }
}
}
@@ -3894,7 +3966,11 @@ void BaseGui::playlistHasFinished() {
qDebug("BaseGui::playlistHasFinished");
exitFullscreenOnStop();
- if (pref->close_on_finish) exitAct->trigger();
+ qDebug("BaseGui::playlistHasFinished: arg_close_on_finish: %d, pref->close_on_finish: %d", arg_close_on_finish, pref->close_on_finish);
+
+ if (arg_close_on_finish != 0) {
+ if ((arg_close_on_finish == 1) || (pref->close_on_finish)) exitAct->trigger();
+ }
}
void BaseGui::displayState(Core::State state) {
@@ -4033,7 +4109,7 @@ void BaseGui::displayGotoTime(int t) {
statusBar()->showMessage( s, 1000 );
if (pref->fullscreen) {
- core->tellmp("osd_show_text \"" + s + "\" 3000 1");
+ core->displayTextOnOSD( s );
}
}