#undef ADD_META
#undef ADD_META_2
- ReadOnly( true );
+
+
+ CONNECT( title_text, textEdited( QString ), this, editMeta( QString ) );
+ CONNECT( description_text, textEdited( QString ), this, editMeta( QString ) );
+ CONNECT( artist_text, textEdited( QString ), this, editMeta( QString ) );
+ CONNECT( collection_text, textEdited( QString ), this, editMeta( QString ) );
+ CONNECT( genre_text, textEdited( QString ), this, editMeta( QString ) );
+ CONNECT( description_text, textEdited( QString ), this, editMeta( QString ) );
+ CONNECT( date_text, valueChanged( QString ), this, editMeta( QString ) );
+ CONNECT( seqnum_text, valueChanged( QString ), this, editMeta( QString ) );
+ CONNECT( rating_text, valueChanged( QString ), this, editMeta( QString ) );
+ in_edit = false;
}
MetaPanel::~MetaPanel(){}
**/
void MetaPanel::saveMeta()
{
- ReadOnly( true );
playlist_t *p_playlist;
char psz[5];
module_Unneed( p_playlist, p_mod );
PL_UNLOCK;
pl_Release( p_playlist );
+ in_edit = false;
}
-void MetaPanel::ReadOnly(bool readonly)
+void MetaPanel::editMeta( QString edit )
{
- title_text->setReadOnly( readonly );
- artist_text->setReadOnly( readonly );
- collection_text->setReadOnly( readonly );
- genre_text->setReadOnly( readonly );
- date_text->setReadOnly( readonly );
- seqnum_text->setReadOnly( readonly );
- rating_text->setReadOnly( readonly );
- language_text->setReadOnly( readonly );
- setting_text->setReadOnly( readonly );
- copyright_text->setReadOnly( readonly );
- publisher_text->setReadOnly( readonly );
- description_text->setReadOnly( readonly );
+ in_edit = true;
+ emit editing();
+}
+void MetaPanel::setEdit( bool editing )
+{
+ in_edit = editing;
}
-void MetaPanel::editMeta()
+void MetaPanel::setInput( input_item_t *input )
{
- ReadOnly( false );
+ if( in_edit ) return;
+
+ p_input = input;
}
/**
**/
void MetaPanel::update( input_item_t *p_item )
{
+ if( in_edit ) return;
char *psz_meta;
#define UPDATE_META( meta, widget ) { \
psz_meta = input_item_Get##meta( p_item ); \
public:
MetaPanel( QWidget *, intf_thread_t * );
virtual ~MetaPanel();
- input_item_t *p_input;
void saveMeta();
- void editMeta();
+ void setInput( input_item_t * );
+ void setEdit( bool );
private:
+ input_item_t *p_input;
intf_thread_t *p_intf;
QLineEdit *uri_text;
QLineEdit *title_text;
QLineEdit *nowplaying_text;
QLineEdit *publisher_text;
QLabel *art_cover;
- void ReadOnly( bool );
+ bool in_edit;
public slots:
void update( input_item_t * );
void clear();
+ void editMeta( QString );
signals:
void uriSet( QString );
+ void editing();
};
class ExtraMetaPanel: public QWidget
QGridLayout *layout = new QGridLayout( this );
/* FIXME GNOME/KDE ? */
- editMetaButton = new QPushButton( qtr( "&Edit Metadata" ) );
saveMetaButton = new QPushButton( qtr( "&Save Metadata" ) );
saveMetaButton->hide();
QPushButton *closeButton = new QPushButton( qtr( "&Close" ) );
layout->addWidget( uriLabel, 1, 0, 1, 1 );
layout->addWidget( uriLine, 1, 1, 1, 7 );
layout->addWidget( saveMetaButton, 2, 6 );
- layout->addWidget( editMetaButton, 2, 6 );
layout->addWidget( closeButton, 2, 7 );
BUTTONACT( closeButton, close() );
/* The tabs buttons are shown in the main dialog for space and cosmetics */
CONNECT( saveMetaButton, clicked(), this, saveMeta() );
- CONNECT( editMetaButton, clicked(), this, editMeta() );
/* Let the MetaData Panel update the URI */
CONNECT( MP, uriSet( QString ), uriLine, setText( QString ) );
+ CONNECT( MP, editing(), this, editMeta() );
CONNECT( IT, currentChanged ( int ), this, updateButtons( int ) );
void MediaInfoDialog::editMeta()
{
- in_edit = true;
- editMetaButton->hide();
saveMetaButton->show();
- MP->editMeta();
}
void MediaInfoDialog::saveMeta()
{
MP->saveMeta();
- editMetaButton->show();
saveMetaButton->hide();
- in_edit = false;
}
static int ItemChanged( vlc_object_t *p_this, const char *psz_var,
void MediaInfoDialog::update( input_item_t *p_item, bool update_info,
bool update_meta )
{
- if( in_edit ) return;
- MP->p_input = p_item;
+ MP->setInput( p_item );
if( update_info )
IP->update( p_item );
if( update_meta )
void MediaInfoDialog::close()
{
- in_edit = false;
this->toggleVisible();
if( mainInput == false ) {
deleteLater();
}
+ MP->setEdit( false );
}
void MediaInfoDialog::updateButtons( int i_tab )