#include "qtuicodemodelsupport.h" #include "qt4project.h" #include using namespace Qt4ProjectManager; using namespace Internal; Qt4UiCodeModelSupport::Qt4UiCodeModelSupport(CppTools::CppModelManagerInterface *modelmanager, Qt4Project *project, const QString &source, const QString &uiHeaderFile) : CppTools::AbstractEditorSupport(modelmanager), m_project(project), m_sourceName(source), m_fileName(uiHeaderFile), m_updateIncludingFiles(false) { qDebug()<<"ctor Qt4UiCodeModelSupport for"< sourceTime)) { QFile file(m_fileName); if (file.open(QFile::ReadOnly)) { qDebug()<<"ui*h file is more recent then source file, using information from ui*h file"<environment(m_project->activeBuildConfiguration()).toStringList()); uic.start(m_project->qtVersion(m_project->activeBuildConfiguration())->uicCommand(), QStringList(), QIODevice::ReadWrite); uic.waitForStarted(); uic.write(ui.toUtf8()); uic.closeWriteChannel(); if (uic.waitForFinished()) { m_contents = uic.readAllStandardOutput(); m_cacheTime = QDateTime::currentDateTime(); // qDebug()<<"\nusing uic from"<qtVersion(m_project->activeBuildConfiguration())->uicCommand(); // qDebug()<<"resulted in:"; // qDebug()<< m_contents; // qDebug()<<"============================="; return true; } else { qDebug()<<"running uic failed"<<" using uic: "<qtVersion(m_project->activeBuildConfiguration())->uicCommand(); qDebug()<contents())) { qDebug()<<"runUic: success, updated on the fly"; updateDocument(); } else { qDebug()<<"runUic: failed, not updated"; } } void Qt4UiCodeModelSupport::updateFromBuild() { qDebug()<<"Qt4UiCodeModelSupport::updateFromBuild() for file"<= sourceTime) { qDebug()<<"Cache is still more recent then source"; return; } else { QFileInfo fi(m_fileName); QDateTime uiHeaderTime = fi.exists() ? fi.lastModified() : QDateTime(); if (uiHeaderTime.isValid() && (uiHeaderTime > sourceTime)) { if (m_cacheTime >= uiHeaderTime) return; qDebug()<<"found ui*h updating from it"; QFile file(m_fileName); if (file.open(QFile::ReadOnly)) { QTextStream stream(&file); m_contents = stream.readAll().toUtf8(); m_cacheTime = uiHeaderTime; updateDocument(); return; } } qDebug()<<"ui*h not found or not more recent then source not changing anything"; } }