******************************************************************************/
#include "dialogs/mediainfo.hpp"
+#include "components/infopanels.hpp"
#include "input_manager.hpp"
#include "dialogs_provider.hpp"
-#include "util/qvlcframe.hpp"
-#include "components/infopanels.hpp"
-#include "qt4.hpp"
#include <QTabWidget>
#include <QGridLayout>
{
i_runs = 0;
p_input = NULL;
- need_update = true;
+ b_need_update = true;
setWindowTitle( qtr( "Media information" ) );
- resize( 600 , 300 );
+ resize( 600 , 480 );
/* TabWidgets and Tabs creation */
IT = new QTabWidget;
if( stats )
{
ISP = new InputStatsPanel( IT, p_intf );
- IT->addTab( ISP, qtr( "&Stats" ) );
+ IT->addTab( ISP, qtr( "&Statistics" ) );
}
QGridLayout *layout = new QGridLayout( this );
CONNECT( MP, uriSet( QString ), uriLine, setText( QString ) );
CONNECT( MP, editing(), this, editMeta() );
- CONNECT( IT, currentChanged ( int ), this, updateButtons( int ) );
-
+ CONNECT( IT, currentChanged( int ), this, updateButtons( int ) );
/* Create the main Update function with a time (150ms) */
if( mainInput ) {
vlc_value_t oldval, vlc_value_t newval, void *param )
{
MediaInfoDialog *p_d = (MediaInfoDialog *)param;
- p_d->need_update = VLC_TRUE;
+ p_d->b_need_update = VLC_TRUE;
return VLC_SUCCESS;
}
{
clear();
update( p_input, true, true );
+ /* if info is from current input, don't set default to edit, if user opens
+ * some other item, se default to edit, so it won't be updated to current item metas
+ *
+ * This really doesn't seem as clean solution as it could be
+ */
+ input_thread_t *p_current =
+ MainInputManager::getInstance( p_intf )->getInput();
+ MP->setEditMode( ( !p_current || p_current->b_dead || input_GetItem( p_current ) != p_input ) ?
+ true: false );
}
void MediaInfoDialog::update()
vlc_object_yield( p_input );
- update( input_GetItem(p_input), need_update, need_update );
- need_update = false;
+ update( input_GetItem(p_input), b_need_update, b_need_update );
+ b_need_update = false;
vlc_object_release( p_input );
}
-void MediaInfoDialog::update( input_item_t *p_item, bool update_info,
- bool update_meta )
+void MediaInfoDialog::update( input_item_t *p_item,
+ bool update_info,
+ bool update_meta )
{
MP->setInput( p_item );
if( update_info )
if( mainInput == false ) {
deleteLater();
}
- MP->setEdit( false );
+ MP->setEditMode( false );
}
void MediaInfoDialog::updateButtons( int i_tab )
{
- msg_Dbg( p_intf, "Coin Coin, Tab number: %i", i_tab );
-
- if( i_tab == 0 ) saveMetaButton->show();
- else saveMetaButton->hide();
+ if( MP->isInEditMode() && i_tab == 0 )
+ saveMetaButton->show();
+ else
+ saveMetaButton->hide();
}