QXRD  0.11.16
qxrdhelpbrowser.cpp
Go to the documentation of this file.
1 #include "qxrdhelpbrowser.h"
2 #include "qxrdscriptengine.h"
3 #include "qxrdexperiment.h"
4 #include <stdio.h>
5 #include "qxrddebug.h"
6 
8  QTextBrowser(parent)
9 {
11  printf("QxrdHelpBrowser::QxrdHelpBrowser(%p)\n", this);
12  }
13 }
14 
16 {
18  printf("QxrdHelpBrowser::~QxrdHelpBrowser(%p)\n", this);
19  }
20 }
21 
23 {
24  m_Experiment = expt;
25 }
26 
27 QVariant QxrdHelpBrowser::loadResource(int type, const QUrl &name)
28 {
29 // printf("QxrdHelpBrowser::loadResource(%d,\"%s\",\"%s\",\"%s\")\n",
30 // type, qPrintable(name.scheme()), qPrintable(name.path()), name.encodedQuery().data());
31 
33 
34  if (expt) {
35  QxrdScriptEnginePtr engine(expt->scriptEngine());
36 
37  if (engine) {
38  if (type == QTextDocument::HtmlResource) {
39  if (name.scheme() == "qrc") {
40  if (name.path() == "/help/autohelp") {
41 
42 #if (QT_VERSION >= QT_VERSION_CHECK(5, 0, 0))
43  QByteArray res = engine->helpText(name.query());
44 #else
45  QByteArray res = engine->helpText(name.encodedQuery());
46 #endif
47 // printf("QxrdHelpBrowser::loadResource res.length = %d\n", res.count());
48 
49  return res;
50  } else if (name.path() == "/help/macrocounter") {
51  QByteArray res = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\">\n"
52  "<html>\n"
53  " <head>\n"
54  " <title>QXRD Spec Macro Counter</title>\n"
55  " </head>\n"
56  "\n"
57  " <body>\n"
58  " <h1>QXRD Spec Macro Counter</h1>\n"
59  " <p><code><pre>\n";
60 
61  QFile macroFile(":/qxrd_macrocounter.mac");
62 
63  if (macroFile.open(QIODevice::ReadOnly | QIODevice::Text)) {
64  QByteArray macros = macroFile.readAll();
65 
66  macros.replace("&", "&amp;");
67  macros.replace("<", "&lt;");
68  macros.replace(">", "&gt;");
69 
70  res.append(macros);
71  } else {
72  res.append("Couldn't open macro file");
73  }
74 
75  res.append(" </pre></code></p>\n"
76  " </body>\n"
77  "</html>\n");
78 
79  return res;
80  }
81  }
82  }
83  }
84  }
85 
86  QVariant res = QTextBrowser::loadResource(type, name);
87 
88 // printf("QxrdHelpBrowser::loadResource res.typeName = %s\n", res.typeName());
89 
90  return res;
91 }
QSharedPointer< QxrdExperiment > QxrdExperimentPtr
qint64 qcepDebug(int cond)
Definition: qcepdebug.cpp:26
QxrdHelpBrowser(QWidget *parent=0)
QSharedPointer< QxrdScriptEngine > QxrdScriptEnginePtr
void init(QxrdExperimentWPtr expt)
QWeakPointer< QxrdExperiment > QxrdExperimentWPtr
QVariant loadResource(int type, const QUrl &name)
QxrdExperimentWPtr m_Experiment
virtual ~QxrdHelpBrowser()