/* Open the generic config line for the toolbar, parse it
* and create the widgets accordingly */
-void AbstractController::parseAndCreate( QString config,
+void AbstractController::parseAndCreate( const QString& config,
QBoxLayout *controlLayout )
{
QStringList list = config.split( ";", QString::SkipEmptyParts ) ;
/* Customize Buttons */
if( b_flat || b_big )
{
- QToolButton *tmpButton = qobject_cast<QToolButton *>(widget);
- if( tmpButton )
+ QFrame *frame = qobject_cast<QFrame *>(widget);
+ if( frame )
{
- if( b_flat )
- tmpButton->setAutoRaise( b_flat );
- if( b_big )
- {
- tmpButton->setFixedSize( QSize( 32, 32 ) );
- tmpButton->setIconSize( QSize( 26, 26 ) );
- }
+ QList<QToolButton *> allTButtons = frame->findChildren<QToolButton *>();
+ for( int i = 0; i < allTButtons.size(); i++ )
+ applyAttributes( allTButtons[i], b_flat, b_big );
+ }
+ else
+ {
+ QToolButton *tmpButton = qobject_cast<QToolButton *>(widget);
+ if( tmpButton )
+ applyAttributes( tmpButton, b_flat, b_big );
}
}
return widget;
}
+void AbstractController::applyAttributes( QToolButton *tmpButton, bool b_flat, bool b_big )
+{
+ if( tmpButton )
+ {
+ if( b_flat )
+ tmpButton->setAutoRaise( b_flat );
+ if( b_big )
+ {
+ tmpButton->setFixedSize( QSize( 32, 32 ) );
+ tmpButton->setIconSize( QSize( 26, 26 ) );
+ }
+ }
+}
+
QFrame *AbstractController::discFrame()
{
/** Disc and Menus handling */
setSizePolicy( QSizePolicy::Minimum, QSizePolicy::Minimum );
QVBoxLayout *controlLayout2 = new QVBoxLayout( this );
- controlLayout2->setLayoutMargins( 5, 2, 5, 2, 5 );
+ controlLayout2->setLayoutMargins( 4, 6, 4, 2, 5 );
/* First line */
InputControlsWidget *inputC = new InputControlsWidget( p_intf, this );
vlc_mutex_init_recursive( &lock );
- CONNECT( THEMIM->getIM(), voutListChanged( vout_thread_t **, int ), this, setVoutList( vout_thread_t **, int ) );
+ CONNECT( THEMIM->getIM(), voutListChanged( vout_thread_t **, int ),
+ this, setVoutList( vout_thread_t **, int ) );
+
+ /* First Move */
+ QPoint pos1 = getSettings()->value( "FullScreen/pos" ).toPoint();
+ int number = QApplication::desktop()->screenNumber( p_intf->p_sys->p_mi );
+ if( QApplication::desktop()->screenGeometry( number ).contains( pos1, true ) )
+ {
+ move( pos1 );
+ i_screennumber = number;
+ screenRes = QApplication::desktop()->screenGeometry(number);
+ }
+ else
+ {
+ centerFSC( number );
+ }
+
}
FullscreenControllerWidget::~FullscreenControllerWidget()
vlc_mutex_destroy( &lock );
}
+void FullscreenControllerWidget::centerFSC( int number )
+{
+ screenRes = QApplication::desktop()->screenGeometry(number);
+ /* screen has changed, calculate new position */
+ QPoint pos = QPoint( screenRes.x() + (screenRes.width() / 2) - (width() / 2),
+ screenRes.y() + screenRes.height() - height());
+ move( pos );
+ i_screennumber = number;
+}
+
/**
* Show fullscreen controller
*/
void FullscreenControllerWidget::showFSC()
{
adjustSize();
- /* center down */
+
int number = QApplication::desktop()->screenNumber( p_intf->p_sys->p_mi );
+
if( number != i_screennumber ||
screenRes != QApplication::desktop()->screenGeometry(number) )
{
- screenRes = QApplication::desktop()->screenGeometry(number);
- msg_Dbg( p_intf, "Calculation fullscreen controllers center");
- /* screen has changed, calculate new position */
- QPoint pos = QPoint( screenRes.x() + (screenRes.width() / 2) - (width() / 2),
- screenRes.y() + screenRes.height() - height());
- move( pos );
- i_screennumber = number;
+ centerFSC( number );
}
#ifdef WIN32TRICK
// after quiting and going to fs, we need to call show()
*/
void FullscreenControllerWidget::mouseMoveEvent( QMouseEvent *event )
{
- if ( event->buttons() == Qt::LeftButton )
+ if( event->buttons() == Qt::LeftButton )
{
+ if( i_mouse_last_x == -1 || i_mouse_last_y == -1 )
+ return;
+
int i_moveX = event->globalX() - i_mouse_last_x;
int i_moveY = event->globalY() - i_mouse_last_y;
i_mouse_last_y = event->globalY();
}
+void FullscreenControllerWidget::mouseReleaseEvent( QMouseEvent *event )
+{
+ i_mouse_last_x = -1;
+ i_mouse_last_y = -1;
+}
+
/**
* On mouse go above FSC
*/
}
vlc_mutex_unlock( &lock );
}
+
/**
* Mouse change callback (show/hide the controller on mouse movement)
*/