forked from qt-creator/qt-creator
Android: Add Libraries: Disable library model while parse is in progress
Change-Id: I314e7db6178d6d6863b3f99a0bf1f0eec0956303 Reviewed-by: Eskil Abrahamsen Blomfeldt <eskil.abrahamsen-blomfeldt@digia.com>
This commit is contained in:
@@ -154,8 +154,10 @@ AndroidDeployQtWidget::AndroidDeployQtWidget(AndroidDeployQtStep *step)
|
|||||||
connect(m_ui->addAndroidExtraLibButton, SIGNAL(clicked()), this, SLOT(addAndroidExtraLib()));
|
connect(m_ui->addAndroidExtraLibButton, SIGNAL(clicked()), this, SLOT(addAndroidExtraLib()));
|
||||||
connect(m_ui->removeAndroidExtraLibButton, SIGNAL(clicked()), this, SLOT(removeAndroidExtraLib()));
|
connect(m_ui->removeAndroidExtraLibButton, SIGNAL(clicked()), this, SLOT(removeAndroidExtraLib()));
|
||||||
|
|
||||||
connect(m_step->project(), SIGNAL(proFilesEvaluated()), this, SLOT(checkProjectTemplate()));
|
connect(m_extraLibraryListModel, SIGNAL(enabledChanged(bool)),
|
||||||
checkProjectTemplate();
|
m_ui->additionalLibrariesGroupBox, SLOT(setEnabled(bool)));
|
||||||
|
|
||||||
|
m_ui->additionalLibrariesGroupBox->setEnabled(m_extraLibraryListModel->isEnabled());
|
||||||
}
|
}
|
||||||
|
|
||||||
AndroidDeployQtWidget::~AndroidDeployQtWidget()
|
AndroidDeployQtWidget::~AndroidDeployQtWidget()
|
||||||
@@ -163,15 +165,6 @@ AndroidDeployQtWidget::~AndroidDeployQtWidget()
|
|||||||
delete m_ui;
|
delete m_ui;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidDeployQtWidget::checkProjectTemplate()
|
|
||||||
{
|
|
||||||
QmakeProjectManager::QmakeProject *project = static_cast<QmakeProjectManager::QmakeProject *>(m_step->project());
|
|
||||||
if (project->rootQmakeProjectNode()->projectType() == QmakeProjectManager::ApplicationTemplate)
|
|
||||||
m_ui->additionalLibrariesGroupBox->setEnabled(true);
|
|
||||||
else
|
|
||||||
m_ui->additionalLibrariesGroupBox->setEnabled(false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void AndroidDeployQtWidget::createManifestButton()
|
void AndroidDeployQtWidget::createManifestButton()
|
||||||
{
|
{
|
||||||
CreateAndroidManifestWizard wizard(m_step->target());
|
CreateAndroidManifestWizard wizard(m_step->target());
|
||||||
|
|||||||
@@ -75,7 +75,6 @@ private slots:
|
|||||||
void addAndroidExtraLib();
|
void addAndroidExtraLib();
|
||||||
void removeAndroidExtraLib();
|
void removeAndroidExtraLib();
|
||||||
void checkEnableRemoveButton();
|
void checkEnableRemoveButton();
|
||||||
void checkProjectTemplate();
|
|
||||||
|
|
||||||
private:
|
private:
|
||||||
virtual QString summaryText() const;
|
virtual QString summaryText() const;
|
||||||
|
|||||||
@@ -40,9 +40,11 @@ AndroidExtraLibraryListModel::AndroidExtraLibraryListModel(QmakeProjectManager::
|
|||||||
: QAbstractItemModel(parent)
|
: QAbstractItemModel(parent)
|
||||||
, m_project(project)
|
, m_project(project)
|
||||||
{
|
{
|
||||||
reset();
|
QmakeProjectManager::QmakeProFileNode *node = m_project->rootQmakeProjectNode();
|
||||||
|
proFileUpdated(node, node->validParse(), node->parseInProgress());
|
||||||
|
|
||||||
connect(m_project, SIGNAL(proFilesEvaluated()), this, SLOT(reset()));
|
connect(m_project, SIGNAL(proFileUpdated(QmakeProjectManager::QmakeProFileNode*,bool,bool)),
|
||||||
|
this, SLOT(proFileUpdated(QmakeProjectManager::QmakeProFileNode*,bool,bool)));
|
||||||
}
|
}
|
||||||
|
|
||||||
QModelIndex AndroidExtraLibraryListModel::index(int row, int column, const QModelIndex &) const
|
QModelIndex AndroidExtraLibraryListModel::index(int row, int column, const QModelIndex &) const
|
||||||
@@ -75,15 +77,40 @@ QVariant AndroidExtraLibraryListModel::data(const QModelIndex &index, int role)
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidExtraLibraryListModel::reset()
|
void AndroidExtraLibraryListModel::proFileUpdated(QmakeProjectManager::QmakeProFileNode *node, bool success, bool parseInProgress)
|
||||||
{
|
{
|
||||||
if (m_project->rootQmakeProjectNode()->projectType() != QmakeProjectManager::ApplicationTemplate)
|
QmakeProjectManager::QmakeProFileNode *root = m_project->rootQmakeProjectNode();
|
||||||
|
if (node != root)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
if (parseInProgress) {
|
||||||
|
emit enabledChanged(false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
bool enabled;
|
||||||
beginResetModel();
|
beginResetModel();
|
||||||
QmakeProjectManager::QmakeProFileNode *node = m_project->rootQmakeProjectNode();
|
if (success && root->projectType() == QmakeProjectManager::ApplicationTemplate) {
|
||||||
m_entries = node->variableValue(QmakeProjectManager::AndroidExtraLibs);
|
m_entries = node->variableValue(QmakeProjectManager::AndroidExtraLibs);
|
||||||
|
enabled = true;
|
||||||
|
} else {
|
||||||
|
// parsing error or not a application template
|
||||||
|
m_entries.clear();
|
||||||
|
enabled = false;
|
||||||
|
}
|
||||||
endResetModel();
|
endResetModel();
|
||||||
|
|
||||||
|
emit enabledChanged(enabled);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool AndroidExtraLibraryListModel::isEnabled() const
|
||||||
|
{
|
||||||
|
QmakeProjectManager::QmakeProFileNode *root = m_project->rootQmakeProjectNode();
|
||||||
|
if (root->parseInProgress())
|
||||||
|
return false;
|
||||||
|
if (root->projectType() != QmakeProjectManager::ApplicationTemplate)
|
||||||
|
return false;
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
void AndroidExtraLibraryListModel::addEntries(const QStringList &list)
|
void AndroidExtraLibraryListModel::addEntries(const QStringList &list)
|
||||||
|
|||||||
@@ -34,7 +34,10 @@
|
|||||||
#include <QAbstractItemModel>
|
#include <QAbstractItemModel>
|
||||||
#include <QStringList>
|
#include <QStringList>
|
||||||
|
|
||||||
namespace QmakeProjectManager { class QmakeProject; }
|
namespace QmakeProjectManager {
|
||||||
|
class QmakeProject;
|
||||||
|
class QmakeProFileNode;
|
||||||
|
}
|
||||||
|
|
||||||
namespace Android {
|
namespace Android {
|
||||||
namespace Internal {
|
namespace Internal {
|
||||||
@@ -54,8 +57,13 @@ public:
|
|||||||
void removeEntries(QModelIndexList list);
|
void removeEntries(QModelIndexList list);
|
||||||
void addEntries(const QStringList &list);
|
void addEntries(const QStringList &list);
|
||||||
|
|
||||||
|
bool isEnabled() const;
|
||||||
|
|
||||||
|
signals:
|
||||||
|
void enabledChanged(bool);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void reset();
|
void proFileUpdated(QmakeProjectManager::QmakeProFileNode *node, bool success, bool parseInProgress);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
QmakeProjectManager::QmakeProject *m_project;
|
QmakeProjectManager::QmakeProject *m_project;
|
||||||
|
|||||||
Reference in New Issue
Block a user