aboutsummaryrefslogtreecommitdiffstats
path: root/src/modules/help/libkvihelp.cpp
diff options
context:
space:
mode:
authorGravatar Fabio Bas2008-09-25 17:06:11 +0000
committerGravatar Fabio Bas2008-09-25 17:06:11 +0000
commit345cc56416491a268266523c207d0485499f72bd (patch)
tree61540c9796c8639d012d5dd6f89da083b4f111d3 /src/modules/help/libkvihelp.cpp
parentquick fix (diff)
downloadKVIrc-345cc56416491a268266523c207d0485499f72bd.tar.gz
KVIrc-345cc56416491a268266523c207d0485499f72bd.tar.bz2
KVIrc-345cc56416491a268266523c207d0485499f72bd.zip
more work on the help search
git-svn-id: https://svn.kvirc.de/svn/trunk/kvirc@2569 17fca916-40b9-46aa-a4ea-0a15b648b75c
Diffstat (limited to 'src/modules/help/libkvihelp.cpp')
-rw-r--r--src/modules/help/libkvihelp.cpp77
1 files changed, 43 insertions, 34 deletions
diff --git a/src/modules/help/libkvihelp.cpp b/src/modules/help/libkvihelp.cpp
index a4d096ceb..409984e17 100644
--- a/src/modules/help/libkvihelp.cpp
+++ b/src/modules/help/libkvihelp.cpp
@@ -138,57 +138,66 @@ static bool help_kvs_cmd_search(KviKvsModuleCommandCall * c)
static bool help_kvs_cmd_open(KviKvsModuleCommandCall * c)
{
- QString szDoc, szHelpDir;
+ QString szDoc, szHelpDir, szParam;
QDir dirHelp;
KVSM_PARAMETERS_BEGIN(c)
- KVSM_PARAMETER("document",KVS_PT_STRING,KVS_PF_OPTIONAL,szDoc)
+ KVSM_PARAMETER("document",KVS_PT_STRING,KVS_PF_OPTIONAL,szParam)
KVSM_PARAMETERS_END(c)
+ szDoc=szParam;
g_pApp->getGlobalKvircDirectory(szHelpDir,KviApp::Help);
dirHelp = QDir(szHelpDir);
- if(szDoc.isEmpty()){
+ // no document => index
+ if(szDoc.isEmpty())
+ {
szDoc = dirHelp.absoluteFilePath("index.html");
qDebug ("No file, use default at path %s",szDoc.toUtf8().data());
- } else qDebug("Doc set from user to %s",szDoc.toUtf8().data());
-
- if (g_pDocIndex && !szDoc.isEmpty())
+ }
+
+ // try absolute path
+ QFileInfo * f= new QFileInfo(szDoc);
+ if(!f->exists())
{
- if (!g_pDocIndex->documentList().count())
+ //try relative path
+ szDoc = dirHelp.absoluteFilePath(szDoc);
+ qDebug("No abs path, trying relative path: %s",szDoc.toUtf8().data());
+ f->setFile(szDoc);
+ }
+
+ if(!f->exists())
+ {
+ //try search
+ qDebug("No rel path, trying search..");
+ if(g_pDocIndex)
{
- QString szDoclist,szDict;
- g_pApp->getLocalKvircDirectory(szDoclist,KviApp::Help,"help.doclist." KVI_SOURCES_DATE);
- g_pApp->getLocalKvircDirectory(szDict,KviApp::Help,"help.dict." KVI_SOURCES_DATE);
- if ( KviFileUtils::fileExists(szDoclist) && KviFileUtils::fileExists( szDict )) g_pDocIndex->readDict();
- else
+ if (!g_pDocIndex->documentList().count())
+ {
+ QString szDoclist,szDict;
+ g_pApp->getLocalKvircDirectory(szDoclist,KviApp::Help,"help.doclist." KVI_SOURCES_DATE);
+ g_pApp->getLocalKvircDirectory(szDict,KviApp::Help,"help.dict." KVI_SOURCES_DATE);
+ if ( KviFileUtils::fileExists(szDoclist) && KviFileUtils::fileExists( szDict ))
+ {
+ g_pDocIndex->readDict();
+ }
+ }
+ int i=g_pDocIndex->titlesList().indexOf(szParam);
+ if (i!=-1)
{
- c->warning(__tr2qs("Docs database is not builded"));
- return true;
+ szDoc=QUrl::fromLocalFile(g_pDocIndex->documentList()[ i ]).path();
+ f->setFile(szDoc);
}
}
- int i=g_pDocIndex->titlesList().indexOf(szDoc);
- if (i!=-1)
- {
- szDoc=QUrl::fromLocalFile(g_pDocIndex->documentList()[ i ]).path();
- if (szDoc.left(1)=="/") szDoc.remove(0,1);
- }
}
- QFileInfo * f= new QFileInfo(szDoc);
- if(f)
+
+ if(!f->exists())
{
- if(!f->exists())
- {
- szDoc = dirHelp.absoluteFilePath(szDoc);
- qDebug("No abs path, trying relative path: %s",szDoc.toUtf8().data());
- f->setFile(szDoc);
- }
- if(!f->exists())
- {
- szDoc = dirHelp.absoluteFilePath("nohelpavailable.html");
- qDebug("No rel path, defaulting to error page: %s",szDoc.toUtf8().data());
- f->setFile(szDoc);
- }
+ //everything failed => error
+ szDoc = dirHelp.absoluteFilePath("nohelpavailable.html");
+
+ qDebug("Document not found, defaulting to error page: %s",szDoc.toUtf8().data());
+ f->setFile(szDoc);
}
if(!c->switches()->find('n',"new"))