diff options
| author | 2008-09-25 17:06:11 +0000 | |
|---|---|---|
| committer | 2008-09-25 17:06:11 +0000 | |
| commit | 345cc56416491a268266523c207d0485499f72bd (patch) | |
| tree | 61540c9796c8639d012d5dd6f89da083b4f111d3 /src/modules/help/libkvihelp.cpp | |
| parent | quick fix (diff) | |
| download | KVIrc-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.cpp | 77 |
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")) |
