mirror of
https://github.com/tomahawk-player/tomahawk.git
synced 2025-08-07 14:46:33 +02:00
Make the Resolver API expect a widgetName instead of a widgetPath
We dont have gazillions of widgets in one dialog, so make the API a bit easier to use :)
This commit is contained in:
@@ -315,26 +315,21 @@ QtScriptResolver::saveConfig()
|
|||||||
|
|
||||||
|
|
||||||
QWidget*
|
QWidget*
|
||||||
QtScriptResolver::findWidget(QWidget* widget, const QStringList& widgetPath)
|
QtScriptResolver::findWidget(QWidget* widget, const QString& objectName)
|
||||||
{
|
{
|
||||||
if( !widget || !widget->isWidgetType() )
|
if( !widget || !widget->isWidgetType() )
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
qDebug() << Q_FUNC_INFO << widget->objectName() << widgetPath;
|
if( widget->objectName() == objectName )
|
||||||
|
|
||||||
if( widgetPath.isEmpty() )
|
|
||||||
return widget;
|
return widget;
|
||||||
|
|
||||||
QString searchName = widgetPath.first();
|
|
||||||
|
|
||||||
foreach( QObject* child, widget->children() )
|
foreach( QObject* child, widget->children() )
|
||||||
{
|
{
|
||||||
if( child->isWidgetType() && child->objectName() == searchName )
|
QWidget* found = findWidget(qobject_cast< QWidget* >( child ), objectName);
|
||||||
{
|
|
||||||
QStringList newWidgetPath = widgetPath;
|
if( found )
|
||||||
newWidgetPath.removeFirst();
|
return found;
|
||||||
return findWidget(qobject_cast< QWidget* >( child ), newWidgetPath);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
@@ -378,13 +373,8 @@ QtScriptResolver::loadDataFromWidgets()
|
|||||||
{
|
{
|
||||||
QVariantMap data = dataWidget.toMap();
|
QVariantMap data = dataWidget.toMap();
|
||||||
|
|
||||||
QStringList widgetPath;
|
QString widgetName = data["widget"].toString();
|
||||||
foreach(const QVariant& pathItem, data["widget"].toList())
|
QWidget* widget= findWidget( m_configWidget.data(), widgetName );
|
||||||
{
|
|
||||||
widgetPath << pathItem.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget* widget= findWidget( m_configWidget.data(), widgetPath );
|
|
||||||
|
|
||||||
QString value = widgetData( widget, data["property"].toString() ).toString();
|
QString value = widgetData( widget, data["property"].toString() ).toString();
|
||||||
|
|
||||||
@@ -403,16 +393,11 @@ QtScriptResolver::fillDataInWidgets( const QVariantMap& data )
|
|||||||
qDebug() << Q_FUNC_INFO << data;
|
qDebug() << Q_FUNC_INFO << data;
|
||||||
foreach(const QVariant& dataWidget, m_dataWidgets)
|
foreach(const QVariant& dataWidget, m_dataWidgets)
|
||||||
{
|
{
|
||||||
QStringList widgetPath;
|
QString widgetName = dataWidget.toMap()["widget"].toString();
|
||||||
foreach(const QVariant& pathItem, dataWidget.toMap()["widget"].toList())
|
QWidget* widget= findWidget( m_configWidget.data(), widgetName );
|
||||||
{
|
|
||||||
widgetPath << pathItem.toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
QWidget* widget= findWidget( m_configWidget.data(), widgetPath );
|
|
||||||
if( !widget )
|
if( !widget )
|
||||||
{
|
{
|
||||||
qDebug() << Q_FUNC_INFO << "widget specified in resolver was not found:" << widgetPath;
|
qDebug() << Q_FUNC_INFO << "widget specified in resolver was not found:" << widgetName;
|
||||||
Q_ASSERT(false);
|
Q_ASSERT(false);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@@ -119,7 +119,7 @@ signals:
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
virtual void loadUi();
|
virtual void loadUi();
|
||||||
QWidget* findWidget( QWidget* widget, const QStringList& widgetPath );
|
QWidget* findWidget( QWidget* widget, const QString& objectName );
|
||||||
void setWidgetData( const QVariant& value, QWidget* widget, const QString& property );
|
void setWidgetData( const QVariant& value, QWidget* widget, const QString& property );
|
||||||
QVariant widgetData( QWidget* widget, const QString& property );
|
QVariant widgetData( QWidget* widget, const QString& property );
|
||||||
QVariantMap loadDataFromWidgets();
|
QVariantMap loadDataFromWidgets();
|
||||||
|
Reference in New Issue
Block a user