35 #include <QHelpEngine>
40 #include <QApplication>
50 QString helpFile =
profile()->getPath() +
"/cx_user_doc.qhc";
51 helpEngine =
new QHelpEngine(helpFile, NULL);
52 bool success = helpEngine->setupData();
56 helpEngine->registerDocumentation(docFile);
61 connect(qApp, SIGNAL(focusObjectChanged(QObject*)),
this, SLOT(focusObjectChanged(QObject*)));
62 connect(qApp, SIGNAL(focusChanged(QWidget*, QWidget*)),
this, SLOT(focusChanged(QWidget*, QWidget*)));
71 void HelpEngine::focusChanged(QWidget * old, QWidget * now)
79 void HelpEngine::focusObjectChanged(QObject* newFocus)
84 QString keyword = this->findBestMatchingKeyword(newFocus);
85 if (!keyword.isEmpty())
92 bool HelpEngine::isBreakChar(QChar c)
const
94 return c.isDigit() || c.isUpper();
97 bool HelpEngine::isBreakChar(QString text,
int index)
const
99 if (!this->isBreakChar(text[index]))
104 prev = this->isBreakChar(text[index-1]);
107 if (index+1<text.size())
108 next = this->isBreakChar(text[index+1]);
116 QString HelpEngine::convertToKeyword(QString
id)
const
123 retval.push_back(
id[0]);
124 for (
int i=1; i<
id.size(); ++i)
129 if (this->isBreakChar(
id, i))
131 retval.push_back(
"_");
133 retval.push_back(
id[i]);
135 return retval.toLower();
138 QString HelpEngine::findBestMatchingKeyword(QObject*
object)
142 QString
id = this->convertToKeyword(object->objectName());
145 if (
id.contains(
"help_widget"))
148 QMap<QString, QUrl> links = this->
engine()->linksForIdentifier(
id);
154 object =
object->parent();
cxResource_EXPORT ProfilePtr profile()
static QString getDocPath()
return path to folder containing documentation files
void keywordActivated(QString)