mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-03-25 10:19:41 +01:00
Immediately update delegate with widget config change
This commit is contained in:
parent
bc9befa8a6
commit
15c02540d6
@ -65,9 +65,13 @@ public:
|
||||
|
||||
virtual QWidget* configUI() const = 0;
|
||||
virtual void saveConfig() = 0;
|
||||
|
||||
public slots:
|
||||
virtual void stop() = 0;
|
||||
|
||||
signals:
|
||||
void changed(); // if config widget was added/removed
|
||||
|
||||
protected:
|
||||
QWidget* widgetFromData( QByteArray& data, QWidget* parent = 0 );
|
||||
QVariant configMsgFromWidget( QWidget* w );
|
||||
|
@ -257,6 +257,8 @@ ScriptResolver::setupConfWidget( const QVariantMap& m )
|
||||
if( m.contains( "images" ) )
|
||||
uiData = fixDataImagePaths( uiData, compressed, m[ "images" ].toMap() );
|
||||
m_configWidget = QWeakPointer< QWidget >( widgetFromData( uiData, 0 ) );
|
||||
|
||||
emit changed();
|
||||
}
|
||||
|
||||
|
||||
|
@ -125,6 +125,12 @@ ResolversModel::addResolver( const QString& resolver, bool enable )
|
||||
m_allResolvers << resolver;
|
||||
if( enable )
|
||||
m_enabledResolvers << resolver;
|
||||
if( Tomahawk::ExternalResolver* res = TomahawkApp::instance()->resolverForPath( resolver ) ) {
|
||||
qDebug() << "Added resolver with config and stuff:" << res->configUI();
|
||||
connect( res, SIGNAL( changed() ), this, SLOT( resolverChanged() ) );
|
||||
} else
|
||||
qDebug() << "No resolver object for path yet:" << resolver;
|
||||
|
||||
endInsertRows();
|
||||
}
|
||||
|
||||
@ -153,6 +159,18 @@ ResolversModel::enabledResolvers() const
|
||||
return m_enabledResolvers;
|
||||
}
|
||||
|
||||
void
|
||||
ResolversModel::resolverChanged()
|
||||
{
|
||||
Q_ASSERT( qobject_cast< Tomahawk::ExternalResolver* >( sender() ) );
|
||||
Tomahawk::ExternalResolver* res = qobject_cast< Tomahawk::ExternalResolver* >( sender() );
|
||||
qDebug() << "Got resolverChanged signal, does it have a config UI yet?" << res->configUI();
|
||||
if( m_enabledResolvers.contains( res->filePath() ) ) {
|
||||
QModelIndex idx = index( m_allResolvers.indexOf( res->filePath() ), 0, QModelIndex() );
|
||||
emit dataChanged( idx, idx );
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
ResolversModel::addInstalledResolvers()
|
||||
{
|
||||
|
@ -26,6 +26,7 @@
|
||||
|
||||
class ResolversModel : public QAbstractListModel
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
enum Roles {
|
||||
ResolverName = Qt::UserRole + 15,
|
||||
@ -47,6 +48,10 @@ public:
|
||||
|
||||
QStringList allResolvers() const;
|
||||
QStringList enabledResolvers() const;
|
||||
|
||||
private slots:
|
||||
void resolverChanged();
|
||||
|
||||
private:
|
||||
void addInstalledResolvers();
|
||||
|
||||
|
@ -440,8 +440,8 @@ SettingsDialog::addScriptResolver()
|
||||
{
|
||||
QString resolver = QFileDialog::getOpenFileName( this, tr( "Load script resolver file" ), qApp->applicationDirPath() );
|
||||
if( !resolver.isEmpty() ) {
|
||||
m_resolversModel->addResolver( resolver, true );
|
||||
TomahawkApp::instance()->enableScriptResolver( resolver );
|
||||
m_resolversModel->addResolver( resolver, true );
|
||||
}
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user