*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
*****************************************************************************/
#include "qt4.hpp"
#include <QKeyEvent>
#include <QUrl>
#include <QSystemTrayIcon>
+#include <QSize>
+#include <QMenu>
#include <assert.h>
#include <vlc_keys.h>
need_components_update = false;
bgWidget = NULL; videoWidget = NULL; playlistWidget = NULL;
embeddedPlaylistWasActive = videoIsActive = false;
+
+ input_name = "";
videoEmbeddedFlag = false;
if( config_GetInt( p_intf, "embedded-video" ) ) videoEmbeddedFlag = true;
/* Volume control */
CONNECT( ui.volumeSlider, valueChanged(int), this, updateVolume(int) );
+
/* Connect the input manager to the GUI elements it manages */
CONNECT( THEMIM->getIM(), positionUpdated( float, int, int ),
slider, setPosition( float,int, int ) );
CONNECT( THEMIM->getIM(), positionUpdated( float, int, int ),
this, setDisplay( float, int, int ) );
+
+ /* Naming in the controller */
CONNECT( THEMIM->getIM(), nameChanged( QString ), this,
setName( QString ) );
+ if( config_GetInt( p_intf, "qt-system-tray" ) )
+ {
+ CONNECT( THEMIM->getIM(), nameChanged( QString ), this,
+ updateSystrayTooltipName(QString));
+ }
+ if( config_GetInt( p_intf, "qt-name-in-title" ) )
+ {
+ CONNECT( THEMIM->getIM(), nameChanged( QString ), this,
+ setVLCWindowsTitle( QString ) );
+ }
+
+ /* PLAY_STATUS */
CONNECT( THEMIM->getIM(), statusChanged( int ), this, setStatus( int ) );
- CONNECT( THEMIM->getIM(), statusChanged( int ), this,
- updateSystrayMenu( int ) );
CONNECT( THEMIM->getIM(), navigationChanged( int ),
this, setNavigation(int) );
+ if( config_GetInt( p_intf, "qt-system-tray" ) )
+ {
+ CONNECT( THEMIM->getIM(), statusChanged( int ), this,
+ updateSystrayTooltipStatus(int));
+ }
CONNECT( slider, sliderDragged( float ),
THEMIM->getIM(), sliderUpdate( float ) );
+ /* Buttons */
CONNECT( ui.prevSectionButton, clicked(), THEMIM->getIM(),
sectionPrev() );
CONNECT( ui.nextSectionButton, clicked(), THEMIM->getIM(),
sysTray = new QSystemTrayIcon( iconVLC, this );
systrayMenu = new QMenu( qtr( "VLC media player" ), this );
systrayMenu->setIcon( iconVLC );
+ sysTray->setToolTip( qtr( "VLC media player" ));
QVLCMenu::updateSystrayMenu( this, p_intf, true );
sysTray->show();
CONNECT( sysTray, activated( QSystemTrayIcon::ActivationReason ),
void MainInterface::toggleUpdateSystrayMenu()
{
- QVLCMenu::updateSystrayMenu( this, p_intf );
toggleVisible();
+ QVLCMenu::updateSystrayMenu( this, p_intf );
}
void MainInterface::handleSystrayClick( QSystemTrayIcon::ActivationReason reason )
switch( reason )
{
case QSystemTrayIcon::Trigger:
- this->toggleVisible(); break;
+ toggleUpdateSystrayMenu();
+ break;
case QSystemTrayIcon::MiddleClick:
sysTray->showMessage( qtr( "VLC media player" ),
- qtr( "Control menu for the player" )
- + nameLabel->text() ,
+ qtr( "Control menu for the player" ),
QSystemTrayIcon::Information, 4000 );
break;
}
}
+
+void MainInterface::updateSystrayTooltipName( QString name )
+{
+ if( name.isEmpty() )
+ {
+ sysTray->setToolTip( qtr( "VLC media player" ) );
+ }
+ else
+ {
+ sysTray->setToolTip( name );
+ }
+}
+
+void MainInterface::updateSystrayTooltipStatus( int i_status )
+{
+ switch( i_status )
+ {
+ case 0:
+ {
+ sysTray->setToolTip( qtr( "VLC media player" ) );
+ break;
+ }
+ case PLAYING_S:
+ {
+ sysTray->setToolTip( input_name );
+ //+ " - " + qtr( "Playing" ) );
+ break;
+ }
+ case PAUSE_S:
+ {
+ sysTray->setToolTip( input_name + " - "
+ + qtr( "Paused") );
+ break;
+ }
+ }
+}
/**********************************************************************
* Handling of the components
**********************************************************************/
void MainInterface::setName( QString name )
{
+ input_name = name;
nameLabel->setText( " " + name+" " );
-
- if( config_GetInt( p_intf, "qt-name-in-title" ) )
- {
- setVLCWindowsTitle( name );
- }
+
}
void MainInterface::setStatus( int status )
ui.playButton->setIcon( QIcon( ":/pixmaps/pause.png" ) );
else
ui.playButton->setIcon( QIcon( ":/pixmaps/play.png" ) );
+ updateSystrayMenu( status );
}
#define HELP_MENU N_("Menu")
void MainInterface::closeEvent( QCloseEvent *e )
{
hide();
- p_intf->b_die = VLC_TRUE;
+ vlc_object_kill( p_intf );
}
void MainInterface::updateVolume( int sliderVolume )