Changeset 121 for smplayer/vendor/current/src/basegui.cpp
- Timestamp:
- Mar 15, 2012, 5:14:10 PM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
smplayer/vendor/current/src/basegui.cpp
r118 r121 1 1 /* smplayer, GUI front-end for mplayer. 2 Copyright (C) 2006-201 1 Ricardo Villalba <rvm@escomposlinux.org>2 Copyright (C) 2006-2012 Ricardo Villalba <rvm@users.sourceforge.net> 3 3 4 4 This program is free software; you can redistribute it and/or modify … … 102 102 using namespace Global; 103 103 104 BaseGui::BaseGui( QWidget* parent, Qt::WindowFlags flags )104 BaseGui::BaseGui( bool use_server, QWidget* parent, Qt::WindowFlags flags ) 105 105 : QMainWindow( parent, flags ), 106 106 near_top(false), … … 115 115 arg_close_on_finish = -1; 116 116 arg_start_in_fullscreen = -1; 117 use_control_server = use_server; 117 118 118 119 setWindowTitle( "SMPlayer" ); … … 200 201 201 202 // Single instance 202 server = new MyServer(this); 203 connect(server, SIGNAL(receivedOpen(QString)), 204 this, SLOT(remoteOpen(QString))); 205 connect(server, SIGNAL(receivedOpenFiles(QStringList)), 206 this, SLOT(remoteOpenFiles(QStringList))); 207 connect(server, SIGNAL(receivedAddFiles(QStringList)), 208 this, SLOT(remoteAddFiles(QStringList))); 209 connect(server, SIGNAL(receivedFunction(QString)), 210 this, SLOT(processFunction(QString))); 211 connect(server, SIGNAL(receivedLoadSubtitle(QString)), 212 this, SLOT(remoteLoadSubtitle(QString))); 213 connect(server, SIGNAL(receivedPlayItem(int)), 214 this, SLOT(remotePlayItem(int))); 215 connect(server, SIGNAL(receivedRemoveItem(int)), 216 this, SLOT(remoteRemoveItem(int))); 217 connect(server, SIGNAL(receivedViewPlaylist(QString*)), 218 this, SLOT(remoteViewPlaylist(QString*))); 219 connect(server, SIGNAL(receivedViewStatus(QString*)), 220 this, SLOT(remoteViewStatus(QString*))); 221 connect(server, SIGNAL(receivedViewClipInfo(QString*)), 222 this, SLOT(remoteViewClipInfo(QString*))); 223 connect(server, SIGNAL(receivedSeek(double)), 224 this, SLOT(remoteSeek(double))); 225 connect(server, SIGNAL(receivedGetChecked(QString,QString*)), 226 this, SLOT(remoteGetChecked(QString,QString*))); 227 connect(server, SIGNAL(receivedMoveItem(int,int)), 228 this, SLOT(remoteMoveItem(int,int))); 229 connect(server, SIGNAL(receivedGetVolume(int*)), 230 this, SLOT(remoteGetVolume(int*))); 231 connect(server, SIGNAL(receivedSetVolume(int)), 232 core, SLOT(setVolume(int))); 233 234 if (pref->use_single_instance) { 235 int port = 0; 236 if (!pref->use_autoport) port = pref->connection_port; 237 if (server->listen(port)) { 238 pref->autoport = server->serverPort(); 239 pref->save(); 240 qDebug("BaseGui::initializeGui: server running on port %d", pref->autoport); 241 } else { 242 qWarning("BaseGui::initializeGui: server couldn't be started"); 203 if (use_control_server) { 204 server = new MyServer(this); 205 connect(server, SIGNAL(receivedOpen(QString)), 206 this, SLOT(remoteOpen(QString))); 207 connect(server, SIGNAL(receivedOpenFiles(QStringList)), 208 this, SLOT(remoteOpenFiles(QStringList))); 209 connect(server, SIGNAL(receivedAddFiles(QStringList)), 210 this, SLOT(remoteAddFiles(QStringList))); 211 connect(server, SIGNAL(receivedFunction(QString)), 212 this, SLOT(processFunction(QString))); 213 connect(server, SIGNAL(receivedLoadSubtitle(QString)), 214 this, SLOT(remoteLoadSubtitle(QString))); 215 connect(server, SIGNAL(receivedPlayItem(int)), 216 this, SLOT(remotePlayItem(int))); 217 connect(server, SIGNAL(receivedRemoveItem(int)), 218 this, SLOT(remoteRemoveItem(int))); 219 connect(server, SIGNAL(receivedViewPlaylist(QString*)), 220 this, SLOT(remoteViewPlaylist(QString*))); 221 connect(server, SIGNAL(receivedViewStatus(QString*)), 222 this, SLOT(remoteViewStatus(QString*))); 223 connect(server, SIGNAL(receivedViewClipInfo(QString*)), 224 this, SLOT(remoteViewClipInfo(QString*))); 225 connect(server, SIGNAL(receivedSeek(double)), 226 this, SLOT(remoteSeek(double))); 227 connect(server, SIGNAL(receivedGetChecked(QString,QString*)), 228 this, SLOT(remoteGetChecked(QString,QString*))); 229 connect(server, SIGNAL(receivedMoveItem(int,int)), 230 this, SLOT(remoteMoveItem(int,int))); 231 connect(server, SIGNAL(receivedGetVolume(int*)), 232 this, SLOT(remoteGetVolume(int*))); 233 connect(server, SIGNAL(receivedSetVolume(int)), 234 core, SLOT(setVolume(int))); 235 236 if (pref->use_single_instance) { 237 int port = 0; 238 if (!pref->use_autoport) port = pref->connection_port; 239 if (server->listen(port)) { 240 pref->autoport = server->serverPort(); 241 pref->save(); 242 qDebug("BaseGui::initializeGui: server running on port %d", pref->autoport); 243 } else { 244 qWarning("BaseGui::initializeGui: server couldn't be started"); 245 } 243 246 } 244 247 } … … 377 380 delete smplayer_log_window; 378 381 382 delete favorites; 379 383 delete tvlist; 380 384 delete radiolist; … … 443 447 connect( clearRecentsAct, SIGNAL(triggered()), this, SLOT(clearRecentsList()) ); 444 448 449 // Favorites 450 favorites = new Favorites(Paths::configPath() + "/favorites.m3u8", this); 451 favorites->menuAction()->setObjectName( "favorites_menu" ); 452 addAction(favorites->editAct()); 453 addAction(favorites->jumpAct()); 454 addAction(favorites->nextAct()); 455 addAction(favorites->previousAct()); 456 connect(favorites, SIGNAL(activated(QString)), this, SLOT(openFavorite(QString))); 457 connect(core, SIGNAL(mediaPlaying(const QString &, const QString &)), 458 favorites, SLOT(getCurrentMedia(const QString &, const QString &))); 459 445 460 // TV and Radio 446 461 tvlist = new TVList(pref->check_channels_conf_on_startup, 447 462 TVList::TV, Paths::configPath() + "/tv.m3u8", this); 448 tvlist->menu ()->menuAction()->setObjectName( "tv_menu" );463 tvlist->menuAction()->setObjectName( "tv_menu" ); 449 464 addAction(tvlist->editAct()); 450 465 addAction(tvlist->jumpAct()); … … 458 473 tvlist->jumpAct()->setObjectName("jump_tv_list"); 459 474 connect(tvlist, SIGNAL(activated(QString)), this, SLOT(open(QString))); 475 connect(core, SIGNAL(mediaPlaying(const QString &, const QString &)), 476 tvlist, SLOT(getCurrentMedia(const QString &, const QString &))); 460 477 461 478 radiolist = new TVList(pref->check_channels_conf_on_startup, 462 479 TVList::Radio, Paths::configPath() + "/radio.m3u8", this); 463 radiolist->menu ()->menuAction()->setObjectName( "radio_menu" );480 radiolist->menuAction()->setObjectName( "radio_menu" ); 464 481 addAction(radiolist->editAct()); 465 482 addAction(radiolist->jumpAct()); … … 473 490 radiolist->jumpAct()->setObjectName("jump_radio_list"); 474 491 connect(radiolist, SIGNAL(activated(QString)), this, SLOT(open(QString))); 492 connect(core, SIGNAL(mediaPlaying(const QString &, const QString &)), 493 radiolist, SLOT(getCurrentMedia(const QString &, const QString &))); 475 494 476 495 … … 807 826 this, SLOT(showPreferencesDialog()) ); 808 827 828 showTubeBrowserAct = new MyAction( Qt::Key_F11, this, "show_tube_browser" ); 829 connect( showTubeBrowserAct, SIGNAL(triggered()), 830 this, SLOT(showTubeBrowser()) ); 831 809 832 // Submenu Logs 810 833 showLogMplayerAct = new MyAction( QKeySequence("Ctrl+M"), this, "show_mplayer_log" ); … … 825 848 this, SLOT(helpCLOptions()) ); 826 849 827 show TipsAct = new MyAction( this, "tips" );828 connect( show TipsAct, SIGNAL(triggered()),829 this, SLOT(help Tips()) );850 showCheckUpdatesAct = new MyAction( this, "check_updates" ); 851 connect( showCheckUpdatesAct, SIGNAL(triggered()), 852 this, SLOT(helpCheckUpdates()) ); 830 853 831 854 donateAct = new MyAction( this, "donate" ); … … 1463 1486 exitAct->change( Images::icon("close"), tr("C&lose") ); 1464 1487 1488 // Favorites 1489 /* 1490 favorites->editAct()->setText( tr("&Edit...") ); 1491 favorites->addCurrentAct()->setText( tr("&Add current media") ); 1492 */ 1493 1465 1494 // TV & Radio submenus 1495 /* 1466 1496 tvlist->editAct()->setText( tr("&Edit...") ); 1467 1497 radiolist->editAct()->setText( tr("&Edit...") ); 1498 tvlist->addCurrentAct()->setText( tr("&Add current media") ); 1499 radiolist->addCurrentAct()->setText( tr("&Add current media") ); 1468 1500 tvlist->jumpAct()->setText( tr("&Jump...") ); 1469 1501 radiolist->jumpAct()->setText( tr("&Jump...") ); … … 1472 1504 radiolist->nextAct()->setText( tr("Next radio channel") ); 1473 1505 radiolist->previousAct()->setText( tr("Previous radio channel") ); 1474 1506 */ 1475 1507 1476 1508 // Menu Play … … 1599 1631 showPropertiesAct->change( Images::icon("info"), tr("View &info and properties...") ); 1600 1632 showPreferencesAct->change( Images::icon("prefs"), tr("P&references") ); 1633 showTubeBrowserAct->change( Images::icon("tubebrowser"), tr("&YouTube browser") ); 1601 1634 1602 1635 // Submenu Logs … … 1607 1640 showFAQAct->change( Images::icon("faq"), tr("&FAQ") ); 1608 1641 showCLOptionsAct->change( Images::icon("cl_help"), tr("&Command line options") ); 1609 show TipsAct->change( Images::icon("tips"), tr("&Tips") );1642 showCheckUpdatesAct->change( Images::icon("check_updates"), tr("Check for &updates") ); 1610 1643 donateAct->change( Images::icon("donate"), tr("&Donate") ); 1611 1644 aboutQtAct->change( QPixmap(":/icons-png/qt.png"), tr("About &Qt") ); … … 1694 1727 clearRecentsAct->change( Images::icon("delete"), tr("&Clear") ); 1695 1728 1696 tvlist->menu()->menuAction()->setText( tr("&TV") ); 1697 tvlist->menu()->menuAction()->setIcon( Images::icon("open_tv") ); 1698 1699 radiolist->menu()->menuAction()->setText( tr("Radi&o") ); 1700 radiolist->menu()->menuAction()->setIcon( Images::icon("open_radio") ); 1729 disc_menu->menuAction()->setText( tr("&Disc") ); 1730 disc_menu->menuAction()->setIcon( Images::icon("open_disc") ); 1731 1732 /* favorites->menuAction()->setText( tr("&Favorites") ); */ 1733 favorites->menuAction()->setText( tr("F&avorites") ); 1734 favorites->menuAction()->setIcon( Images::icon("open_favorites") ); 1735 1736 tvlist->menuAction()->setText( tr("&TV") ); 1737 tvlist->menuAction()->setIcon( Images::icon("open_tv") ); 1738 1739 radiolist->menuAction()->setText( tr("Radi&o") ); 1740 radiolist->menuAction()->setIcon( Images::icon("open_radio") ); 1701 1741 1702 1742 // Menu Play … … 1967 2007 1968 2008 // Hide mplayer window 1969 connect( core, SIGNAL(noVideo()), 1970 this, SLOT(hidePanel()) ); 2009 #if ALLOW_TO_HIDE_VIDEO_WINDOW_ON_AUDIO_FILES 2010 if (pref->hide_video_window_on_audio_files) { 2011 connect( core, SIGNAL(noVideo()), this, SLOT(hidePanel()) ); 2012 } else { 2013 connect( core, SIGNAL(noVideo()), mplayerwindow, SLOT(showLogo()) ); 2014 } 2015 #else 2016 connect( core, SIGNAL(noVideo()), this, SLOT(hidePanel()) ); 2017 #endif 1971 2018 1972 2019 // Log mplayer output … … 2122 2169 audioMenu = menuBar()->addMenu("Audio"); 2123 2170 subtitlesMenu = menuBar()->addMenu("Subtitles"); 2124 browseMenu = menuBar()->addMenu("Browwse"); 2171 /* menuBar()->addMenu(favorites); */ 2172 browseMenu = menuBar()->addMenu("Browse"); 2125 2173 optionsMenu = menuBar()->addMenu("Options"); 2126 2174 helpMenu = menuBar()->addMenu("Help"); … … 2134 2182 2135 2183 openMenu->addMenu( recentfiles_menu ); 2136 2184 openMenu->addMenu(favorites); 2137 2185 openMenu->addAction(openDirectoryAct); 2138 2186 openMenu->addAction(openPlaylistAct); 2139 openMenu->addAction(openDVDAct); 2140 openMenu->addAction(openDVDFolderAct); 2141 openMenu->addAction(openVCDAct); 2142 openMenu->addAction(openAudioCDAct); 2187 2188 // Disc submenu 2189 disc_menu = new QMenu(this); 2190 disc_menu->menuAction()->setObjectName("disc_menu"); 2191 disc_menu->addAction(openDVDAct); 2192 disc_menu->addAction(openDVDFolderAct); 2193 disc_menu->addAction(openVCDAct); 2194 disc_menu->addAction(openAudioCDAct); 2195 2196 openMenu->addMenu(disc_menu); 2197 2143 2198 openMenu->addAction(openURLAct); 2144 openMenu->addMenu(tvlist->menu()); 2145 openMenu->addMenu(radiolist->menu()); 2146 2199 /* #ifndef Q_OS_WIN */ 2200 openMenu->addMenu(tvlist); 2201 openMenu->addMenu(radiolist); 2202 /* #endif */ 2147 2203 openMenu->addSeparator(); 2148 2204 openMenu->addAction(exitAct); … … 2432 2488 optionsMenu->addAction(showPropertiesAct); 2433 2489 optionsMenu->addAction(showPlaylistAct); 2490 // Check if the smplayer youtube browser is installed 2491 { 2492 QString tube_exec = Paths::appPath() + "/smtube"; 2493 #ifdef Q_OS_WIN 2494 tube_exec += ".exe"; 2495 #endif 2496 if (QFile::exists(tube_exec)) { 2497 optionsMenu->addAction(showTubeBrowserAct); 2498 qDebug("BaseGui::createMenus: %s does exist", tube_exec.toUtf8().constData()); 2499 } else { 2500 qDebug("BaseGui::createMenus: %s does not exist", tube_exec.toUtf8().constData()); 2501 } 2502 } 2434 2503 2435 2504 // OSD submenu … … 2458 2527 helpMenu->addAction(showFAQAct); 2459 2528 helpMenu->addAction(showCLOptionsAct); 2460 helpMenu->addAction(show TipsAct);2529 helpMenu->addAction(showCheckUpdatesAct); 2461 2530 helpMenu->addAction(donateAct); 2462 2531 helpMenu->addSeparator(); … … 2475 2544 popup->addMenu( audioMenu ); 2476 2545 popup->addMenu( subtitlesMenu ); 2546 popup->addMenu( favorites ); 2477 2547 popup->addMenu( browseMenu ); 2478 2548 popup->addMenu( optionsMenu ); … … 2579 2649 pl->setPlayFilesFromStart(playlist->playFilesFromStart()); 2580 2650 2651 PrefInterface * pi = pref_dialog->mod_interface(); 2652 pi->setSingleInstanceTabEnabled( use_control_server ); 2653 2581 2654 pref_dialog->show(); 2582 2655 } … … 2617 2690 } 2618 2691 2619 if (!pref->use_single_instance && server->isListening()) { 2620 server->close(); 2621 qDebug("BaseGui::applyNewPreferences: server closed"); 2622 } 2623 else 2624 { 2625 bool server_requires_restart = _interface->serverPortChanged(); 2626 if (pref->use_single_instance && !server->isListening()) 2627 server_requires_restart=true; 2628 2629 if (server_requires_restart) { 2692 if (use_control_server) { 2693 if (!pref->use_single_instance && server->isListening()) { 2630 2694 server->close(); 2631 int port = 0; 2632 if (!pref->use_autoport) port = pref->connection_port; 2633 if (server->listen(port)) { 2634 pref->autoport = server->serverPort(); 2635 qDebug("BaseGui::applyNewPreferences: server running on port %d", pref->autoport); 2636 } else { 2637 qWarning("BaseGui::applyNewPreferences: server couldn't be started"); 2695 qDebug("BaseGui::applyNewPreferences: server closed"); 2696 } 2697 else 2698 { 2699 bool server_requires_restart = _interface->serverPortChanged(); 2700 if (pref->use_single_instance && !server->isListening()) 2701 server_requires_restart=true; 2702 2703 if (server_requires_restart) { 2704 server->close(); 2705 int port = 0; 2706 if (!pref->use_autoport) port = pref->connection_port; 2707 if (server->listen(port)) { 2708 pref->autoport = server->serverPort(); 2709 qDebug("BaseGui::applyNewPreferences: server running on port %d", pref->autoport); 2710 } else { 2711 qWarning("BaseGui::applyNewPreferences: server couldn't be started"); 2712 } 2638 2713 } 2639 2714 } 2640 2715 } 2716 2717 #if ALLOW_TO_HIDE_VIDEO_WINDOW_ON_AUDIO_FILES 2718 if (pref->hide_video_window_on_audio_files) { 2719 connect( core, SIGNAL(noVideo()), this, SLOT(hidePanel()) ); 2720 disconnect( core, SIGNAL(noVideo()), mplayerwindow, SLOT(hideLogo()) ); 2721 } else { 2722 disconnect( core, SIGNAL(noVideo()), this, SLOT(hidePanel()) ); 2723 connect( core, SIGNAL(noVideo()), mplayerwindow, SLOT(showLogo()) ); 2724 if (!panel->isVisible()) { 2725 resize( width(), height() + 200); 2726 panel->show(); 2727 } 2728 } 2729 #endif 2641 2730 2642 2731 PrefAdvanced *advanced = pref_dialog->mod_advanced(); … … 3381 3470 } 3382 3471 3472 void BaseGui::openFavorite(QString file) { 3473 qDebug("BaseGui::openFavorite"); 3474 3475 openFiles(QStringList() << file); 3476 } 3477 3383 3478 void BaseGui::openURL() { 3384 3479 qDebug("BaseGui::openURL"); … … 3406 3501 3407 3502 for (int n=0; n < pref->history_urls->count(); n++) { 3408 d.setURL( pref->history_urls->url(n) , pref->history_urls->isPlaylist(n));3503 d.setURL( pref->history_urls->url(n) ); 3409 3504 } 3410 3505 3411 3506 if (d.exec() == QDialog::Accepted ) { 3412 3507 QString url = d.url(); 3413 bool is_playlist = d.isPlaylist();3414 3508 if (!url.isEmpty()) { 3415 pref->history_urls->addUrl(url, is_playlist); 3416 if (is_playlist) url = url + IS_PLAYLIST_TAG; 3509 pref->history_urls->addUrl(url); 3417 3510 openURL(url); 3418 3511 } … … 3659 3752 } 3660 3753 3661 void BaseGui::helpTips() { 3662 QDesktopServices::openUrl( QUrl("http://smplayer.sf.net/forum/viewforum.php?f=12") ); 3754 void BaseGui::helpCheckUpdates() { 3755 QString url = "http://smplayer.sourceforge.net/latest.php"; 3756 if (!pref->language.isEmpty()) url += QString("?tr_lang=%1").arg(pref->language); 3757 QDesktopServices::openUrl( QUrl(url) ); 3663 3758 } 3664 3759 … … 4248 4343 qDebug("BaseGui::hidePanel"); 4249 4344 4250 #if ALLOW_TO_HIDE_VIDEO_WINDOW_ON_AUDIO_FILES4251 if (!pref->hide_video_window_on_audio_files) {4252 mplayerwindow->showLogo(true);4253 }4254 else4255 #endif4256 4257 4345 if (panel->isVisible()) { 4258 4346 // Exit from fullscreen mode … … 4481 4569 #endif 4482 4570 4483 //if (server) 4484 server->setActionsList( actions_list ); 4571 if (server) server->setActionsList( actions_list ); 4485 4572 } 4486 4573 … … 4630 4717 video_preview->show(); 4631 4718 video_preview->adjustWindowSize(); 4719 } 4720 } 4721 4722 void BaseGui::showTubeBrowser() { 4723 qDebug("BaseGui::showTubeBrowser"); 4724 if (!QProcess::startDetached("smtube", QStringList())) { 4725 QMessageBox::warning(this, tr("An error happened - SMPlayer"), tr("The YouTube Browser couldn't be launched")); 4632 4726 } 4633 4727 }
Note:
See TracChangeset
for help on using the changeset viewer.