Skip to content

Commit

Permalink
dont crash on local help if help is not available
Browse files Browse the repository at this point in the history
  • Loading branch information
wschweer committed Feb 19, 2015
1 parent e2eb0cb commit b6767ee
Show file tree
Hide file tree
Showing 3 changed files with 32 additions and 22 deletions.
2 changes: 1 addition & 1 deletion libmscore/line.cpp
Expand Up @@ -51,7 +51,7 @@ bool LineSegment::readProperties(XmlReader& e)
setUserOff2(e.readPoint() * spatium());
else if (tag == "pos") {
if (score()->mscVersion() > 114) {
qreal _spatium = spatium();
qreal _spatium = score()->spatium();
setUserOff(QPointF());
setReadPos(e.readPoint() * _spatium);
if (e.pasteMode()) // x position will be wrong
Expand Down
5 changes: 4 additions & 1 deletion mscore/help.cpp
Expand Up @@ -129,7 +129,10 @@ void HelpQuery::actionTriggered(QObject* obj)

void HelpQuery::returnPressed()
{
QMap<QString,QUrl>list = mscore->helpEngine()->linksForIdentifier(entry->text().toLower());
QHelpEngine* he = mscore->helpEngine();
if (!he)
return;
QMap<QString,QUrl>list = he->linksForIdentifier(entry->text().toLower());
if (!list.isEmpty()) {
mscore->showHelp(list.begin().value());
}
Expand Down
47 changes: 27 additions & 20 deletions mscore/musescore.cpp
Expand Up @@ -355,6 +355,24 @@ MuseScore::MuseScore()
}
}

if (!converterMode) {
_loginManager = new LoginManager(this);

// initialize help engine
QString lang = mscore->getLocaleISOCode();
if (lang == "en_US") // HACK
lang = "en";

QString s = getSharePath() + "manual/doc_" + lang + ".qhc";
qDebug("init Help from: <%s>", qPrintable(s));
_helpEngine = new QHelpEngine(s, this);
if (!_helpEngine->setupData()) {
qDebug("cannot setup data for help engine: %s", qPrintable(_helpEngine->error()));
delete _helpEngine;
_helpEngine = 0;
}
}

_positionLabel = new QLabel;
_positionLabel->setObjectName("decoration widget"); // this prevents animations
_positionLabel->setToolTip(tr("Measure:Beat:Tick"));
Expand Down Expand Up @@ -894,9 +912,11 @@ MuseScore::MuseScore()
menuHelp->setObjectName("Help");

#ifndef Q_OS_MAC
HelpQuery* hw = new HelpQuery(menuHelp);
menuHelp->addAction(hw);
connect(menuHelp, SIGNAL(aboutToShow()), hw, SLOT(setFocus()));
if (_helpEngine) {
HelpQuery* hw = new HelpQuery(menuHelp);
menuHelp->addAction(hw);
connect(menuHelp, SIGNAL(aboutToShow()), hw, SLOT(setFocus()));
}
#endif
menuHelp->addAction(getAction("local-help"));
menuHelp->addAction(tr("&Online Handbook"), this, SLOT(helpBrowser1()));
Expand Down Expand Up @@ -968,23 +988,6 @@ MuseScore::MuseScore()
cornerLabel->setPixmap(QPixmap(":/data/mscore.png"));
cornerLabel->setGeometry(width() - 48, 0, 48, 48);
}
if (!converterMode) {
_loginManager = new LoginManager(this);

// initialize help engine
QString lang = mscore->getLocaleISOCode();
if (lang == "en_US") // HACK
lang = "en";

QString s = getSharePath() + "manual/doc_" + lang + ".qhc";
qDebug("init Help from: <%s>", qPrintable(s));
_helpEngine = new QHelpEngine(s, this);
if (!_helpEngine->setupData()) {
qDebug("cannot setup data for help engine: %s", qPrintable(_helpEngine->error()));
delete _helpEngine;
_helpEngine = 0;
}
}
}

MuseScore::~MuseScore()
Expand Down Expand Up @@ -1063,6 +1066,10 @@ void MuseScore::showHelp(const QUrl& url)

void MuseScore::showHelp(QString s)
{
if (!_helpEngine) {
qDebug("no help available");
return;
}
s = s.toLower();
qDebug("showHelp <%s>", qPrintable(s));
QMap<QString,QUrl>list = _helpEngine->linksForIdentifier(s);
Expand Down

0 comments on commit b6767ee

Please sign in to comment.