[kde-doc-english] [khelpcenter] /: Remove the ht://dig support
Pino Toscano
pino at kde.org
Sat Mar 12 23:06:09 UTC 2016
Git commit 163133768d77ae16e36b31d1174d6c60d53cfdce by Pino Toscano.
Committed on 12/03/2016 at 23:01.
Pushed by pino into branch 'master'.
Remove the ht://dig support
ht://dig is basically unmantained for the past decade, and its
integration in khelpcenter has always been a sort of hack (execute
a CGI, and print its resulting HTML text).
Since Xapian is used as better solution, all of the htp://dig
supporting code can be removed completely.
CCBUG: 103266
CCBUG: 112958
BUG: 122437
BUG: 125276
BUG: 152671
BUG: 158633
BUG: 209415
BUG: 244091
BUG: 255384
BUG: 256397
BUG: 277464
M +0 -2 CMakeLists.txt
D +0 -14 README.htdig
M +0 -14 doc/khelpcenter/index.docbook
M +0 -9 docmetainfo.cpp
M +0 -3 docmetainfo.h
D +0 -61 htmlsearch.cpp
D +0 -51 htmlsearch.h
D +0 -47 htmlsearch/CMakeLists.txt
D +0 -5 htmlsearch/Messages.sh
D +0 -23 htmlsearch/checked.xpm
D +0 -470 htmlsearch/htmlsearch.cpp
D +0 -254 htmlsearch/htmlsearch.desktop
D +0 -62 htmlsearch/htmlsearch.h
D +0 -25 htmlsearch/index.cpp
D +0 -371 htmlsearch/kcmhtmlsearch.cpp
D +0 -84 htmlsearch/kcmhtmlsearch.h
D +0 -52 htmlsearch/klangcombo.cpp
D +0 -47 htmlsearch/klangcombo.h
D +0 -246 htmlsearch/ktagcombobox.cpp
D +0 -92 htmlsearch/ktagcombobox.h
D +0 -6 htmlsearch/long.html
D +0 -4 htmlsearch/meinproc_wrapper
D +0 -21 htmlsearch/nomatch.html
D +0 -89 htmlsearch/progressdialog.cpp
D +0 -32 htmlsearch/progressdialog.h
D +0 -1 htmlsearch/short.html
D +- -- htmlsearch/star.png
D +- -- htmlsearch/star_blank.png
D +0 -19 htmlsearch/syntax.html
D +0 -22 htmlsearch/unchecked.xpm
D +0 -16 htmlsearch/wrapper.html
D +0 -156 htmlsearchconfig.cpp
D +0 -58 htmlsearchconfig.h
M +0 -1 kcmhelpcenter.cpp
M +0 -2 kcmhelpcenter.h
M +2 -14 searchhandlers/CMakeLists.txt
D +0 -8 searchhandlers/docbook.desktop.cmake
D +0 -8 searchhandlers/htdig.desktop.cmake
D +0 -2 searchhandlers/htdig_long.html
D +0 -222 searchhandlers/khc_docbookdig.pl.cmake
D +0 -148 searchhandlers/khc_htdig.pl.cmake
D +0 -117 searchhandlers/khc_htsearch.pl
M +1 -2 tests/CMakeLists.txt
http://commits.kde.org/khelpcenter/163133768d77ae16e36b31d1174d6c60d53cfdce
diff --git a/CMakeLists.txt b/CMakeLists.txt
index d078a24..65abaea 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -84,13 +84,11 @@ set(khelpcenter_KDEINIT_SRCS
toc.cpp
mainwindow.cpp
docentry.cpp
- htmlsearch.cpp
history.cpp
application.cpp
treebuilder.cpp
infotree.cpp
kcmhelpcenter.cpp
- htmlsearchconfig.cpp
fontdialog.cpp
plugintraverser.cpp
scrollkeepertreebuilder.cpp
diff --git a/README.htdig b/README.htdig
deleted file mode 100644
index c498103..0000000
--- a/README.htdig
+++ /dev/null
@@ -1,14 +0,0 @@
-To make use of the full-text search function in khelpcenter,
-you need ht://dig.
-
-ht://dig is a HTML indexing and searching tool.
-
-You can get it from http://www.htdig.org.
-
-NOTE: If you install htdig from source, make sure
-that you put the 'htsearch' as well as the 'htdig'
-and 'htmerge' binaries into your PATH.
-
-Per default, 'htsearch' goes to some cgi-bin
-directory.
-
diff --git a/doc/khelpcenter/index.docbook b/doc/khelpcenter/index.docbook
index 04d6bae..b48f6c9 100644
--- a/doc/khelpcenter/index.docbook
+++ b/doc/khelpcenter/index.docbook
@@ -356,20 +356,6 @@ including <command>gcc</command> (the C/C++ compiler),
<title>The <guilabel>Search</guilabel> tab</title>
<para>
-Searching requires you have the <application>ht://Dig</application>
-application installed. Information on installing and configuring the
-search index is available in the document. Configuration of the search
-index is performed in the &kcontrol;, by choosing
-<menuchoice><guisubmenu>Help</guisubmenu><guimenuitem>Index</guimenuitem></menuchoice>,
-and detailed help is available from this module.
-</para>
-
-<para>
-For the purposes of this document, we'll assume you already have this set
-up and configured.
-</para>
-
-<para>
Searching the help files is fairly intuitive, enter the word(s) you wish
to search for in the text box, choose your options (if any), and press
<guibutton>Search</guibutton>. The results display in the viewer pane
diff --git a/docmetainfo.cpp b/docmetainfo.cpp
index 275452e..bfbace5 100644
--- a/docmetainfo.cpp
+++ b/docmetainfo.cpp
@@ -26,7 +26,6 @@
#include <KConfig>
#include <KConfigGroup>
-#include "htmlsearch.h"
#include "docentrytraverser.h"
#include <KLocalizedString>
@@ -46,8 +45,6 @@ DocMetaInfo::DocMetaInfo()
{
qDebug() << "DocMetaInfo()";
- mHtmlSearch = new HTMLSearch;
-
mRootEntry.setName( i18n("Top-Level Documentation") );
}
@@ -61,8 +58,6 @@ DocMetaInfo::~DocMetaInfo()
delete *it;
}
- delete mHtmlSearch;
-
mLoaded = false;
mSelf = 0;
@@ -97,10 +92,6 @@ DocEntry *DocMetaInfo::addDocEntry( const QString &fileName )
entry->name() ,
mLanguageNames[ lang ] ) );
}
- if ( entry->searchMethod().toLower() == "htdig" )
- {
- mHtmlSearch->setupDocEntry( entry );
- }
QString indexer = entry->indexer();
indexer.replace( "%f", fileName );
entry->setIndexer( indexer );
diff --git a/docmetainfo.h b/docmetainfo.h
index 9fff541..7d25a3e 100644
--- a/docmetainfo.h
+++ b/docmetainfo.h
@@ -28,7 +28,6 @@
namespace KHC {
- class HTMLSearch;
class DocEntryTraverser;
/*!
@@ -84,8 +83,6 @@ namespace KHC {
QMap<QString,QString> mLanguageNames;
- HTMLSearch *mHtmlSearch;
-
static bool mLoaded;
static DocMetaInfo *mSelf;
diff --git a/htmlsearch.cpp b/htmlsearch.cpp
deleted file mode 100644
index 66870fc..0000000
--- a/htmlsearch.cpp
+++ /dev/null
@@ -1,61 +0,0 @@
-#include "htmlsearch.h"
-
-#include <KConfig>
-#include <KConfigGroup>
-
-#include "docentry.h"
-
-
-
-using namespace KHC;
-
-HTMLSearch::HTMLSearch()
-{
- mConfig = new KConfig("khelpcenterrc");
-}
-
-HTMLSearch::~HTMLSearch()
-{
- delete mConfig;
-}
-
-void HTMLSearch::setupDocEntry( KHC::DocEntry *entry )
-{
-// kDebug() << "HTMLSearch::setupDocEntry(): " << entry->name();
-
- if ( entry->searchMethod().toLower() != QLatin1String("htdig") ) return;
-
- if ( entry->search().isEmpty() )
- entry->setSearch( defaultSearch( entry ) );
- if ( entry->indexer().isEmpty() )
- entry->setIndexer( defaultIndexer( entry ) );
- if ( entry->indexTestFile().isEmpty() )
- entry->setIndexTestFile( defaultIndexTestFile( entry ) );
-
-// entry->dump();
-}
-
-QString HTMLSearch::defaultSearch( KHC::DocEntry *entry )
-{
- QString htsearch = QLatin1String("cgi:");
- htsearch += mConfig->group("htdig").readPathEntry( "htsearch", QString() );
- htsearch += "?words=%k&method=and&format=-desc&config=";
- htsearch += entry->identifier();
-
- return htsearch;
-}
-
-QString HTMLSearch::defaultIndexer( KHC::DocEntry * )
-{
- QString indexer = mConfig->group("htdig").readPathEntry( "indexer", QString() );
- indexer += " --indexdir=%i %f";
-
- return indexer;
-}
-
-QString HTMLSearch::defaultIndexTestFile( KHC::DocEntry *entry )
-{
- return entry->identifier() + QLatin1String(".exists");
-}
-
-// vim:ts=2:sw=2:et
diff --git a/htmlsearch.h b/htmlsearch.h
deleted file mode 100644
index 04b1022..0000000
--- a/htmlsearch.h
+++ /dev/null
@@ -1,51 +0,0 @@
-/* This file is part of the KDE project
- Copyright 2002 Cornelius Schumacher <schumacher at kde.org>
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public
- License version 2 or at your option version 3 as published
- by the Free Software Foundation.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- General Public License for more details.
-
- You should have received a copy of the GNU General Public License
- along with this program; see the file COPYING. If not, write to
- the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- Boston, MA 02110-1301, USA.
-*/
-
-#ifndef KHC_HTMLSEARCH_H
-#define KHC_HTMLSEARCH_H
-
-#include <QObject>
-
-class KConfig;
-
-namespace KHC {
-
-class DocEntry;
-
-class HTMLSearch : public QObject
-{
- Q_OBJECT
- public:
- HTMLSearch();
- ~HTMLSearch();
-
- void setupDocEntry( KHC::DocEntry * );
-
- QString defaultSearch( KHC::DocEntry * );
- QString defaultIndexer( KHC::DocEntry * );
- QString defaultIndexTestFile( KHC::DocEntry * );
-
- private:
- KConfig *mConfig;
-};
-
-}
-
-#endif //KHC_HTMLSEARCH_H
-// vim:ts=2:sw=2:et
diff --git a/htmlsearch/CMakeLists.txt b/htmlsearch/CMakeLists.txt
deleted file mode 100644
index 9a30626..0000000
--- a/htmlsearch/CMakeLists.txt
+++ /dev/null
@@ -1,47 +0,0 @@
-
-
-########### next target ###############
-
-set(htmlsearch_LIB_SRCS htmlsearch.cpp progressdialog.cpp)
-
-
-add_library(htmlsearch SHARED ${htmlsearch_LIB_SRCS})
-
-target_link_libraries(htmlsearch KF5::KIOWidgets)
-
-set_target_properties(htmlsearch PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION})
-install(TARGETS htmlsearch ${INSTALL_TARGETS_DEFAULT_ARGS})
-
-
-########### next target ###############
-
-set(kcm_htmlsearch_LIB_SRCS kcmhtmlsearch.cpp klangcombo.cpp ktagcombobox.cpp)
-
-
-add_library(kcm_htmlsearch SHARED ${kcm_htmlsearch_LIB_SRCS})
-
-target_link_libraries(kcm_htmlsearch KF5::KIOWidgets)
-
-set_target_properties(kcm_htmlsearch PROPERTIES VERSION ${GENERIC_LIB_VERSION} SOVERSION ${GENERIC_LIB_SOVERSION})
-install(TARGETS kcm_htmlsearch ${INSTALL_TARGETS_DEFAULT_ARGS})
-
-
-########### next target ###############
-
-add_executable(khtmlindex index.cpp)
-
-target_link_libraries(khtmlindex KF5::KDELibs4Support htmlsearch )
-
-install(PROGRAMS khtmlindex ${INSTALL_TARGETS_DEFAULT_ARGS})
-
-
-########### install files ###############
-
-install( FILES htmlsearch.desktop DESTINATION ${SERVICES_INSTALL_DIR} )
-install( FILES long.html short.html wrapper.html nomatch.html syntax.html DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/en )
-install( FILES star.png star_blank.png DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/pics )
-install( FILES unchecked.xpm checked.xpm DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/pics )
-
-install( PROGRAMS meinproc_wrapper DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/ )
-
-ecm_install_icons( ${DATA_INSTALL_DIR}/khelpcenter/ )
diff --git a/htmlsearch/Messages.sh b/htmlsearch/Messages.sh
deleted file mode 100644
index 6b789de..0000000
--- a/htmlsearch/Messages.sh
+++ /dev/null
@@ -1,5 +0,0 @@
-#! /usr/bin/env bash
-exit 0 # htmlsearch is not built and deprecated
-### TODO: why do we need 2 POT files for one directory?
-$XGETTEXT index.cpp htmlsearch.cpp progressdialog.cpp rc.cpp -o $podir/htmlsearch.pot
-$XGETTEXT kcmhtmlsearch.cpp klangcombo.cpp ktagcombobox.cpp rc.cpp -o $podir/kcmhtmlsearch.pot
diff --git a/htmlsearch/checked.xpm b/htmlsearch/checked.xpm
deleted file mode 100644
index 1ed1902..0000000
--- a/htmlsearch/checked.xpm
+++ /dev/null
@@ -1,23 +0,0 @@
-/* XPM */
-static char*unchecked[]={
-"16 16 4 1",
-"# c #000000",
-"+ c #ffffff",
-"D c #000000",
-". c None",
-"................",
-"............++++",
-"..++++++++++DDD+",
-"..+########DDD+.",
-"..+#++++++DDD+..",
-"+DDD+...+DDD#+..",
-"++DDD+++DDD+#+..",
-"..+DDDDDDD++#+..",
-"..+#DDDDD+.+#+..",
-"..+#++DD+..+#+..",
-"..+#+++++..+#+..",
-"..+#++++++++#+..",
-"..+##########+..",
-"..++++++++++++..",
-"................",
-"................"};
diff --git a/htmlsearch/htmlsearch.cpp b/htmlsearch/htmlsearch.cpp
deleted file mode 100644
index d7bbe7a..0000000
--- a/htmlsearch/htmlsearch.cpp
+++ /dev/null
@@ -1,470 +0,0 @@
-#include <QRegExp>
-#include <QDir>
-#include <assert.h>
-
-#include <kconfig.h>
-
-#include "progressdialog.h"
-#include <QTextStream>
-#include <QStandardPaths>
-#include <QDebug>
-
-
-
-HTMLSearch::HTMLSearch()
- : QObject(), _proc(0)
-{
-}
-
-
-QString HTMLSearch::dataPath(const QString& _lang)
-{
- return kapp->dirs()->saveLocation("data", QString("khelpcenter/%1").arg(_lang));
-}
-
-
-void HTMLSearch::scanDir(const QString& dir)
-{
- assert( dir.at( dir.length() - 1 ) == '/' );
-
- QStringList::ConstIterator it;
-
- if ( KStandardDirs::exists( dir + "index.docbook" ) ) {
- _files.append(dir + "index.docbook");
- progress->setFilesScanned(++_filesScanned);
- } else {
- QDir d(dir, "*.html", QDir::Name|QDir::IgnoreCase, QDir::Files | QDir::Readable);
- QStringList const &list = d.entryList();
- QString adir = d.canonicalPath () + '/';
- QString file;
- for (it=list.begin(); it != list.end(); ++it)
- {
- file = adir + *it;
- if ( !_files.contains( file ) ) {
- _files.append(file);
- progress->setFilesScanned(++_filesScanned);
- }
- }
- }
-
- QDir d2(dir, QString(), QDir::Name|QDir::IgnoreCase, QDir::Dirs);
- QStringList const &dlist = d2.entryList();
- for (it=dlist.begin(); it != dlist.end(); ++it)
- if (*it != "." && *it != "..")
- {
- scanDir(dir + *it + '/');
- kapp->processEvents();
- }
-}
-
-
-bool HTMLSearch::saveFilesList(const QString& _lang)
-{
- QStringList dirs;
-
- // throw away old files list
- _files.clear();
-
- // open config file
- KConfig config("khelpcenterrc");
- KConfigGroup scopeGroup( &config, "Scope" );
-
- // add KDE help dirs
- if (scopeGroup.readEntry("KDE", true))
- dirs = kapp->dirs()->findDirs("html", _lang + '/');
- //qDebug() << "got " << dirs.count() << " dirs\n";
-
- // TODO: Man and Info!!
-
- // add local urls
- QStringList add = scopeGroup.readEntry("Paths", QStringList() );
- QStringList::const_iterator it;
- for (it = add.begin(); it != add.end(); ++it) {
- if ( ( *it ).at( ( *it ).length() - 1 ) != '/' )
- ( *it ) += '/';
- dirs.append(*it);
- }
-
- _filesScanned = 0;
-
- for (it = dirs.begin(); it != dirs.end(); ++it)
- scanDir(*it);
-
- return true;
-}
-
-
-bool HTMLSearch::createConfig(const QString& _lang)
-{
- QString fname = dataPath(_lang) + "/htdig.conf";
-
- // locate the common dir
- QString wrapper = locate("data", QString("khelpcenter/%1/wrapper.html").arg(_lang));
- if (wrapper.isEmpty())
- wrapper = locate("data", QString("khelpcenter/en/wrapper.html"));
- if (wrapper.isEmpty())
- return false;
- wrapper = wrapper.left(wrapper.length() - 12);
-
- // locate the image dir
- QString images = locate("data", "khelpcenter/pics/star.png");
- if (images.isEmpty())
- return false;
- images = images.left(images.length() - 8);
-
- // This is an example replacement for the default bad_words file
- // distributed with ht://Dig. It was compiled by Marjolein Katsma
- // <HSH at taxon.demon.nl>.
- QString bad_words = i18nc( "List of words to exclude from index",
- "above:about:according:across:actually:\n"
- "adj:after:afterwards:again:against:all:\n"
- "almost:alone:along:already:also:although:\n"
- "always:among:amongst:and:another:any:\n"
- "anyhow:anyone:anything:anywhere:are:aren:\n"
- "arent:around:became:because:become:\n"
- "becomes:becoming:been:before:beforehand:\n"
- "begin:beginning:behind:being:below:beside:\n"
- "besides:between:beyond:billion:both:but:\n"
- "can:cant:cannot:caption:could:couldnt:\n"
- "did:didnt:does:doesnt:dont:down:during:\n" //krazy:exclude=spelling
- "each:eight:eighty:either:else:elsewhere:\n"
- "end:ending:enough:etc:even:ever:every:\n"
- "everyone:everything:everywhere:except:few:\n"
- "fifty:first:five:for:former:formerly:forty:\n"
- "found:four:from:further:had:has:hasnt:have:\n" //krazy:exclude=spelling
- "havent:hence:her:here:hereafter:hereby:\n"
- "herein:heres:hereupon:hers:herself:hes:him:\n"
- "himself:his:how:however:hundred:\n"
- "inc:indeed:instead:into:isnt:its:\n"
- "itself:last:later:latter:latterly:least:\n"
- "less:let:like:likely:ltd:made:make:makes:\n"
- "many:may:maybe:meantime:meanwhile:might:\n"
- "million:miss:more:moreover:most:mostly:\n"
- "mrs:much:must:myself:namely:neither:\n"
- "never:nevertheless:next:nine:ninety:\n"
- "nobody:none:nonetheless:noone:nor:not:\n" //krazy:exclude=spelling
- "nothing:now:nowhere:off:often:once:\n"
- "one:only:onto:others:otherwise:our:ours:\n"
- "ourselves:out:over:overall:own:page:per:\n"
- "perhaps:rather:recent:recently:same:\n"
- "seem:seemed:seeming:seems:seven:seventy:\n"
- "several:she:shes:should:shouldnt:since:six:\n" //krazy:exclude=spelling
- "sixty:some:somehow:someone:something:\n"
- "sometime:sometimes:somewhere:still:stop:\n"
- "such:taking:ten:than:that:the:their:them:\n"
- "themselves:then:thence:there:thereafter:\n"
- "thereby:therefore:therein:thereupon:these:\n"
- "they:thirty:this:those:though:thousand:\n"
- "three:through:throughout:thru:thus:tips:\n"
- "together:too:toward:towards:trillion:\n"
- "twenty:two:under:unless:unlike:unlikely:\n"
- "until:update:updated:updates:upon:\n"
- "used:using:very:via:want:wanted:wants:\n"
- "was:wasnt:way:ways:wed:well:were:\n"
- "werent:what:whats:whatever:when:whence:\n"
- "whenever:where:whereafter:whereas:whereby:\n"
- "wherein:whereupon:wherever:wheres:whether:\n"
- "which:while:whither:who:whoever:whole:\n"
- "whom:whomever:whose:why:will:with:within:\n"
- "without:wont:work:worked:works:working:\n"
- "would:wouldnt:yes:yet:you:youd:youll:your:\n"
- "youre:yours:yourself:yourselves:youve" );
-
- QFile f;
- f.setName( dataPath(_lang) + "/bad_words" );
- if (f.open(QIODevice::WriteOnly))
- {
- QTextStream ts( &f );
- QStringList words = bad_words.split( QRegExp ( "[\n:]" ), QString::SkipEmptyParts );
- for ( QStringList::ConstIterator it = words.begin();
- it != words.end(); ++it )
- ts << *it << endl;
- f.close();
- }
-
- f.setName(fname);
- if (f.open(QIODevice::WriteOnly))
- {
- //qDebug() << "Writing config for " << _lang << " to " << fname;
-
- QTextStream ts(&f);
-
- ts << "database_dir:\t\t" << dataPath(_lang) << endl;
- ts << "start_url:\t\t`" << dataPath(_lang) << "/files`" << endl;
- ts << "local_urls:\t\tfile:/=/" << endl;
- ts << "local_urls_only:\ttrue" << endl;
- ts << "maximum_pages:\t\t1" << endl;
- ts << "image_url_prefix:\t" << images << endl;
- ts << "star_image:\t\t" << images << "star.png" << endl;
- ts << "star_blank:\t\t" << images << "star_blank.png" << endl;
- ts << "compression_level:\t6" << endl;
- ts << "max_hop_count:\t\t0" << endl;
-
- ts << "search_results_wrapper:\t" << wrapper << "wrapper.html" << endl;
- ts << "nothing_found_file:\t" << wrapper << "nomatch.html" << endl;
- ts << "syntax_error_file:\t" << wrapper << "syntax.html" << endl;
- ts << "bad_word_list:\t\t" << dataPath(_lang) << "/bad_words" << endl;
- ts << "external_parsers:\t" << "text/xml\t" << locate( "data", "khelpcenter/meinproc_wrapper" ) << endl;
- f.close();
- return true;
- }
-
- return false;
-}
-
-
-#define CHUNK_SIZE 15
-
-bool HTMLSearch::generateIndex( const QString & _lang, QWidget *parent)
-{
- if (_lang == "C")
- _lang = "en";
-
- if (!createConfig(_lang))
- return false;
-
- // create progress dialog
- progress = new ProgressDialog(parent);
- progress->show();
- kapp->processEvents();
-
- // create files list ----------------------------------------------
- if (!saveFilesList(_lang))
- return false;
-
- progress->setState(1);
-
- // run htdig ------------------------------------------------------
- KConfig config("khelpcenterrc", true);
- KConfigGroup group(&config, "htdig");
- QString exe = group.readPathEntry("htdig", QStandardPaths::findExecutable("htdig"));
-
- if (exe.isEmpty())
- {
- return false;
- }
- bool initial = true;
- bool done = false;
- int count = 0;
-
- _filesToDig = _files.count();
- progress->setFilesToDig(_filesToDig);
- _filesDigged = 0;
-
- QDir d; d.mkdir(dataPath(_lang));
-
- while (!done)
- {
- // kill old process
- delete _proc;
-
- // prepare new process
- _proc = new K3Process();
- *_proc << exe << "-v" << "-c" << dataPath(_lang)+"/htdig.conf";
- if (initial)
- {
- *_proc << "-i";
- initial = false;
- }
-
- //qDebug() << "Running htdig";
-
- connect(_proc, &K3Process::receivedStdout, this, &HTMLSearch::htdigStdout);
-
- connect(_proc, &K3Process::processExited, this, &HTMLSearch::htdigExited);
-
- _htdigRunning = true;
-
- // write out file
- QFile f(dataPath(_lang)+"/files");
- if (f.open(QIODevice::WriteOnly))
- {
- QTextStream ts(&f);
-
- for (int i=0; i<CHUNK_SIZE; ++i, ++count)
- if (count < _filesToDig) {
- ts << "file://" + _files[count] << endl;
- } else {
- done = true;
- break;
- }
- f.close();
- }
- else
- {
- //qDebug() << "Could not open `files` for writing";
- return false;
- }
-
-
- // execute htdig
- _proc->start(K3Process::NotifyOnExit, K3Process::Stdout );
-
- kapp->enter_loop();
-
- if (!_proc->normalExit() || _proc->exitStatus() != 0)
- {
- delete _proc;
- delete progress;
- return false;
- }
-
- // _filesDigged += CHUNK_SIZE;
- progress->setFilesDigged(_filesDigged);
- kapp->processEvents();
- }
-
- progress->setState(2);
-
- // run htmerge -----------------------------------------------------
- exe = group.readPathEntry("htmerge", kapp->dirs()->findExe("htmerge"));
- if (exe.isEmpty())
- {
- return false;
- }
- delete _proc;
- _proc = new K3Process();
- *_proc << exe << "-c" << dataPath(_lang)+"/htdig.conf";
-
- //qDebug() << "Running htmerge";
-
- connect(_proc, &K3Process::processExited, this, &HTMLSearch::htmergeExited);
-
- _htmergeRunning = true;
-
- _proc->start(K3Process::NotifyOnExit, K3Process::Stdout);
-
- kapp->enter_loop();
-
- if (!_proc->normalExit() || _proc->exitStatus() != 0)
- {
- delete _proc;
- delete progress;
- return false;
- }
-
- delete _proc;
-
- progress->setState(3);
- kapp->processEvents();
-
- delete progress;
-
- return true;
-}
-
-
-
-void HTMLSearch::htdigStdout(K3Process *, char *buffer, int len)
-{
- QString line = QString(buffer).left(len);
-
- int cnt=0, index=-1;
- while ( (index = line.find("file://", index+1)) > 0)
- cnt++;
- _filesDigged += cnt;
-
- cnt=0;
- index=-1;
- while ( (index = line.find("not changed", index+1)) > 0)
- cnt++;
- _filesDigged -= cnt;
-
- progress->setFilesDigged(_filesDigged);
-}
-
-
-void HTMLSearch::htdigExited(K3Process *p)
-{
- //qDebug() << "htdig terminated " << p->exitStatus();
- _htdigRunning = false;
- kapp->exit_loop();
-}
-
-
-void HTMLSearch::htmergeExited(K3Process *)
-{
- //qDebug() << "htmerge terminated";
- _htmergeRunning = false;
- kapp->exit_loop();
-}
-
-
-void HTMLSearch::htsearchStdout(K3Process *, char *buffer, int len)
-{
- _searchResult += QString::fromLocal8Bit(buffer,len);
-}
-
-
-void HTMLSearch::htsearchExited(K3Process *)
-{
- //qDebug() << "htsearch terminated";
- _htsearchRunning = false;
- kapp->exit_loop();
-}
-
-
-QString HTMLSearch::search( const QString & _lang, const QString & words, const QString & method, int matches,
- const QString & format, const QString & sort)
-{
- if (_lang == "C")
- _lang = "en";
-
- createConfig(_lang);
-
- QString result = dataPath(_lang)+"/result.html";
-
- // run htsearch ----------------------------------------------------
- KConfig *config = new KConfig("khelpcenterrc", true);
- KConfigGroup group(config, "htdig");
- QString exe = group.readPathEntry("htsearch", kapp->dirs()->findExe("htsearch"));
- if (exe.isEmpty())
- {
- delete config;
- return QString();
- }
- _proc = new K3Process();
- *_proc << exe << "-c" << dataPath(_lang)+"/htdig.conf" <<
- QString("words=%1;method=%2;matchesperpage=%3;format=%4;sort=%5").arg(words).arg(method).arg(matches).arg(format).arg(sort);
-
- //qDebug() << "Running htsearch";
-
- connect(_proc, &K3Process::receivedStdout, this, &HTMLSearch::htsearchStdout);
- connect(_proc, &K3Process::processExited, this, &HTMLSearch::htsearchExited);
-
- _htsearchRunning = true;
- _searchResult = "";
-
- _proc->start(K3Process::NotifyOnExit, K3Process::Stdout);
-
- kapp->enter_loop();
-
- if (!_proc->normalExit() || _proc->exitStatus() != 0)
- {
- //qDebug() << "Error running htsearch... returning now";
- delete _proc;
- delete config;
- return QString();
- }
-
- delete _proc;
-
- // modify the search result
- _searchResult = _searchResult.replace("http://localhost/", "file:/");
- _searchResult = _searchResult.remove("Content-type: text/html");
-
- // dump the search result
- QFile f(result);
- if (f.open(QIODevice::WriteOnly))
- {
- QTextStream ts(&f);
-
- ts << _searchResult << endl;
-
- f.close();
- delete config;
- return result;
- }
- delete config;
- return QString();
-}
diff --git a/htmlsearch/htmlsearch.desktop b/htmlsearch/htmlsearch.desktop
deleted file mode 100644
index 80454dd..0000000
--- a/htmlsearch/htmlsearch.desktop
+++ /dev/null
@@ -1,254 +0,0 @@
-[Desktop Entry]
-Exec=kcmshell5 htmlsearch
-Icon=help_index
-Type=Service
-X-KDE-ServiceTypes=KCModule
-X-DocPath=kcontrol/help-index.html
-
-X-KDE-Library=kcm_htmlsearch
-X-KDE-FactoryName=htmlsearch
-X-KDE-ParentApp=kcontrol
-
-Name=Index
-Name[af]=Indeks
-Name[ar]=الفهرس
-Name[be]=Індэкс
-Name[be at latin]=Źmiest
-Name[bg]=Индекс
-Name[bn]=সূচি
-Name[bn_IN]=ইন্ডেক্স
-Name[br]=Meneger
-Name[bs]=Indeks
-Name[ca]=Índex
-Name[ca at valencia]=Índex
-Name[cs]=Rejstřík
-Name[csb]=Indeks
-Name[cy]=Mynegai
-Name[da]=Indeks
-Name[de]=Stichwortverzeichnis
-Name[el]=Ευρετήριο
-Name[en_GB]=Index
-Name[eo]=Indekso
-Name[es]=Índice
-Name[et]=Indeks
-Name[eu]=Indizea
-Name[fa]=فهرست
-Name[fi]=Hakemisto
-Name[fr]=Index
-Name[fy]=Yndeks
-Name[ga]=Innéacs
-Name[gl]=Índice
-Name[gu]=અનુક્રમણિકા
-Name[he]=אינדקס
-Name[hi]=निर्देशिका
-Name[hne]=निर्देसिका
-Name[hr]=Indeks
-Name[hsb]=Indeks
-Name[hu]=Keresési index
-Name[ia]=Indice
-Name[id]=Indeks
-Name[is]=Yfirlit
-Name[it]=Indice
-Name[ja]=インデックス
-Name[ka]=ინდექსი
-Name[kk]=Индекс
-Name[km]=លិបិក្រម
-Name[kn]=ಅನುಕ್ರಮ (ಇಂಡೆಕ್ಸ್)
-Name[ko]=찾아보기
-Name[ku]=Pêrist
-Name[lt]=Rodyklė
-Name[lv]=Indekss
-Name[mai]=सूची
-Name[mk]=Индекс
-Name[ml]=സൂചിക
-Name[mr]=सूची
-Name[ms]=Indeks
-Name[nb]=Indeks
-Name[nds]=Index
-Name[ne]=अनुक्रमणिका
-Name[nl]=Index
-Name[nn]=Indeks
-Name[oc]=Indèx
-Name[or]=ଅନୁକ୍ରମଣିକା
-Name[pa]=ਇੰਡੈਕਸ
-Name[pl]=Indeks
-Name[pt]=Índice
-Name[pt_BR]=Índice
-Name[ro]=Index
-Name[ru]=Индекс
-Name[se]=Indeaksa
-Name[si]=පටුන
-Name[sk]=Index
-Name[sl]=Kazalo
-Name[sr]=Индекс
-Name[sr at ijekavian]=Индекс
-Name[sr at ijekavianlatin]=Indeks
-Name[sr at latin]=Indeks
-Name[sv]=Index
-Name[ta]=பொருளடக்கம்
-Name[te]=సూచిక
-Name[tg]=Индекс
-Name[th]=ดัชนี
-Name[tr]=Dizin
-Name[ug]=مۇندەرىجە
-Name[uk]=Індекс
-Name[uz]=Indeks
-Name[uz at cyrillic]=Индекс
-Name[vi]=Chỉ mục
-Name[wa]=Indecse
-Name[xh]=Isalathiso
-Name[x-test]=xxIndexxx
-Name[zh_CN]=索引
-Name[zh_TW]=索引
-
-Comment=Index generation
-Comment[af]=Indeks genereering
-Comment[ar]=توليد الفهرس
-Comment[be]=Стварэнне індэксу
-Comment[be at latin]=Stvareńnie źmiestu
-Comment[bg]=Създаване на индекс
-Comment[bn]=সূচি উত্পাদন
-Comment[bn_IN]=ইন্ডেক্স নির্মাণ প্রণালী
-Comment[br]=Genel ar meneger
-Comment[bs]=Stvaranje indeksa
-Comment[ca]=Generació de l'índex
-Comment[ca at valencia]=Generació de l'índex
-Comment[cs]=Vytvoření rejstříku
-Comment[csb]=Generowanié indeksu
-Comment[cy]=Cynhyrchu mynegai
-Comment[da]=Indeksgenerering
-Comment[de]=Erstellung des Stichwortverzeichnisses
-Comment[el]=Δημιουργία περιεχομένων
-Comment[en_GB]=Index generation
-Comment[eo]=Kreado de indekso
-Comment[es]=Generación del índice
-Comment[et]=Indeksi loomine
-Comment[eu]=Indizea sortzea
-Comment[fa]=تولید فهرست
-Comment[fi]=Hakemiston luonti
-Comment[fr]=Génération d'index
-Comment[fy]=Yndeksgeneraasje
-Comment[ga]=Giniúint innéacs
-Comment[gl]=Xeración do índice
-Comment[gu]=અનુક્રમણિકા બનાવટ
-Comment[he]=יצירת אינדקס
-Comment[hi]=सूची बनाएँ
-Comment[hne]=सूची बनाव
-Comment[hr]=Generiranje indeksa
-Comment[hsb]=Stworjenje indeksa
-Comment[hu]=Index létrehozása
-Comment[ia]=Generation de indice
-Comment[id]=Pembuatan indeks
-Comment[is]=Yfirlitsgerð
-Comment[it]=Generazione dell'indice
-Comment[ja]=インデックスを生成
-Comment[ka]=ინდექსის შექმნა
-Comment[kk]=Индексті құру
-Comment[km]=ការបង្កើតលិបិក្រម
-Comment[kn]=ಅನುಕ್ರಮ (ಇಂಡೆಕ್ಸ್) ಉತ್ಪತ್ತಿ
-Comment[ko]=찾아보기 생성
-Comment[ku]=Afirandina pêristê
-Comment[lt]=Rodyklės generavimas
-Comment[lv]=Indeksa ģenerēšana
-Comment[mai]=सूची बनाबू
-Comment[mk]=Генерирање на индекс
-Comment[ml]=സൂചികാനിര്മ്മാണം
-Comment[mr]=सूची बनवा
-Comment[ms]=Penjanaan indeks
-Comment[nb]=Lag innholdsregister
-Comment[nds]=Index maken
-Comment[ne]=अनुक्रमणिका सिर्जना
-Comment[nl]=Indexgeneratie
-Comment[nn]=Indekslaging
-Comment[or]=ଅନୁକ୍ରମଣିକା ସୃଷ୍ଟି
-Comment[pa]=ਇੰਡੈਕਸ ਬਣਾਓ
-Comment[pl]=Generowanie indeksu
-Comment[pt]=Geração de índices
-Comment[pt_BR]=Geração de índice
-Comment[ro]=Generează indexul
-Comment[ru]=Создание индекса
-Comment[se]=Indeaksaráhkadeapmi
-Comment[si]=පටුන ජනණය
-Comment[sk]=Generovanie indexu
-Comment[sl]=Ustvarjanje kazala
-Comment[sr]=Стварање индекса
-Comment[sr at ijekavian]=Стварање индекса
-Comment[sr at ijekavianlatin]=Stvaranje indeksa
-Comment[sr at latin]=Stvaranje indeksa
-Comment[sv]=Indexskapare
-Comment[ta]=பொருளடக்க இயக்கம்
-Comment[te]=సూచిక ను తయారుచెయుట
-Comment[tg]=Эҷоди индекс
-Comment[th]=สร้างดัชนี
-Comment[tr]=Dizin oluşturma
-Comment[ug]=ئىندېكس ھاسىل قىلىش
-Comment[uk]=Створення індексу
-Comment[uz]=Indeksni yaratish
-Comment[uz at cyrillic]=Индексни яратиш
-Comment[vi]=Tạo ra chỉ mục
-Comment[wa]=Fijhaedje d' indecse
-Comment[xh]=Ulwenziwo Lwesalathiso
-Comment[x-test]=xxIndex generationxx
-Comment[zh_CN]=索引生成
-Comment[zh_TW]=產生索引
-
-X-KDE-Keywords=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
-X-KDE-Keywords[bg]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,Помощ,Търсене,Индекс,Език
-X-KDE-Keywords[bn]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
-X-KDE-Keywords[bs]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,pomoć,pretraga,indeks
-X-KDE-Keywords[ca]=Ajuda,HTML,Cerca,Índex,htdig,htsearch,htmerge,Àmbit,Idioma
-X-KDE-Keywords[ca at valencia]=Ajuda,HTML,Cerca,Índex,htdig,htsearch,htmerge,Àmbit,Idioma
-X-KDE-Keywords[cs]=Nápověda,HTML,Hledání,htdig,htsearch,htmerge,Rozsah,Jazyk
-X-KDE-Keywords[da]=Hjælp,HTML,Søgning,Indeks,htdig,htsearch,htmerge,Scope,sprog
-X-KDE-Keywords[de]=Hilfe,HTML,Suche,Index,Stichwortverzeichnis,htdig,Sprachen
-X-KDE-Keywords[el]=Βοήθεια,HTML,αναζήτηση,ευρετήριο,htdig,htsearch,htmerge,εμβέλεια,γλώσσα
-X-KDE-Keywords[en_GB]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
-X-KDE-Keywords[eo]=Helpo,HTML,Serĉi,Indekso,htdig,htsearch,htmerge,Amplekso,Lingvo
-X-KDE-Keywords[es]=Ayuda,HTML,Buscar,Índice,htdig,htsearch,htmerge,Ámbito,Idioma
-X-KDE-Keywords[et]=abi,HTML,otsing,indeks,htdig,htsearch,htmerge,keel
-X-KDE-Keywords[eu]=Laguntza,HTML,Bilaketa,Indizea,htdig,htsearch,htmerge,Esparrua,Hizkuntza
-X-KDE-Keywords[fa]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
-X-KDE-Keywords[fi]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,Ohjeet,HTML,Haku,Indeksi,Hakemisto,Laajuus,Kieli
-X-KDE-Keywords[fr]=Aide, HTML, recherche, index, htdig, htsearch, htmerge, étendue, langage
-X-KDE-Keywords[ga]=Cabhair,HTML,Cuardach,Innéacs,htdig,htsearch,htmerge,Scóip,Teanga
-X-KDE-Keywords[gl]=Axuda, buscar, índice, html, htdig, htsearch, htmerge, lingua, ámbito
-X-KDE-Keywords[gu]=મદદ,HTML,શોધ,અનુક્રમ,htdig,htsearch,htmerge,અવકાશ,ભાષા
-X-KDE-Keywords[hi]=मदद, HTML, खोज, सूचकांक, htdig, htsearch, htmerge, स्कोप, भाषा
-X-KDE-Keywords[hu]=Súgó,HTML,Keresés,Index,htdig,htsearch,htmerge,Tartomány,Nyelv
-X-KDE-Keywords[ia]=Adjuta,HTML,Cerca,Indice,htdig,htsearch,htmerge,Scopo,Linguage
-X-KDE-Keywords[id]=Bantuan,HTML,Cari,Indeks,htding,htsearch,htmerge,Cakupan,Bahasa
-X-KDE-Keywords[is]=Hjálp,HTML,Leit,Yfirlit,htdig,htsearch,htmerge,Svið,Tungumál
-X-KDE-Keywords[it]=aiuto,HTML,ricerca,indice,htdig,htsearch,htmerge,contesto,lingua
-X-KDE-Keywords[ja]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
-X-KDE-Keywords[kk]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
-X-KDE-Keywords[km]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
-X-KDE-Keywords[ko]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,도움말,검색,인덱스,언어
-X-KDE-Keywords[lt]=Pagalba,HTML,Paieška,Indeksas,htdig,htsearch,htmerge,Imtis,Kalba
-X-KDE-Keywords[lv]=Palīdzība,HTML,meklēšana,indekss,htdig,htsearch,htmerge,Scope,valoda
-X-KDE-Keywords[mr]=मदत, HTML, शोध, अनुक्रमणिका, htdig,htsearch,htmerge, सीमा, भाषा
-X-KDE-Keywords[nb]=Hjelp,HTML,Søk,Index,htdig,htsearch,htmerge,omfang,språk
-X-KDE-Keywords[nds]=Hülp.HTML,Söök,Index,htsearch,htmerge,Rebeet,Spraak
-X-KDE-Keywords[nl]=Help,HTML,zoeken,index,htdig,htsearch,htmerge,scope,taal
-X-KDE-Keywords[nn]=hjelp,HTML,søk,indeksering,htdig,htsearch,htmerge,omfang,verkeområde,scope,språk
-X-KDE-Keywords[pa]=ਮੱਦਦ,HTML,ਖੋਜ,ਲੱਭੋ,ਇੰਡੈਕਸ,htdig,htsearch,htmerge,ਸਕੋਪ,ਹੱਦ,ਭਾਸ਼ਾ
-X-KDE-Keywords[pl]=Pomoc,HTML,Znajdowanie,Wyszukiwanie,Indeks,htdig,htsearch,htmerge,Zakres,Język
-X-KDE-Keywords[pt]=Ajuda,HTML,Pesquisa,Índice,htdig,htsearch,htmerge,Âmbito,Linguagem
-X-KDE-Keywords[pt_BR]=Ajuda,HTML,Pesquisa,Índice,htdig,htsearch,htmerge,Âmbito,Linguagem
-X-KDE-Keywords[ro]=ajutor,HTML,căutare,caută,cuprins,htdig,htsearch,htmerge,limbă
-X-KDE-Keywords[ru]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,помощь,справка,поиск,индекс,язык
-X-KDE-Keywords[sk]=Pomoc,HTML,Hľadať,Index,htdig,htsearch,htmerge,Scope,Jazyk
-X-KDE-Keywords[sl]=pomoč,html,iskanje,kazalo,htdig,htsearch,htmerge,obseg,jezik
-X-KDE-Keywords[sr]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,помоћ,ХТМЛ,претрага,тражење,индекс,језик
-X-KDE-Keywords[sr at ijekavian]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,помоћ,ХТМЛ,претрага,тражење,индекс,језик
-X-KDE-Keywords[sr at ijekavianlatin]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,pomoć,HTML,pretraga,traženje,indeks,jezik
-X-KDE-Keywords[sr at latin]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,pomoć,HTML,pretraga,traženje,indeks,jezik
-X-KDE-Keywords[sv]=Hjälp,HTML,Sök,Index,htdig,htsearch,htmerge,Omfattning,Språk
-X-KDE-Keywords[tg]=Кумак,HTML,Ҷустуҷӯ,Индекс,htdig,htsearch,htmerge,Намудсоз,Забон
-X-KDE-Keywords[tr]=Yardım,HTML,Arama,Dizin,htdig,htsearch,htmerge,Kapsam,Dil
-X-KDE-Keywords[ug]=ياردەم، HTML، ئىزدەش، ئىندېكس، htdig، htsearch، htmerge، دائىرە، تىل
-X-KDE-Keywords[uk]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,довідка,допомога,пошук,індекс,покажчик,область,мова
-X-KDE-Keywords[vi]=Trợ giúp,HTML,Tìm kiếm,chỉ mục,htdig,htsearch,htmerge,Phạm vi,Ngôn ngữ,Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
-X-KDE-Keywords[wa]=Aidance,HTML,Cweri,Trover,Cachî,Cachî après,indecse,htdig,htsearch,htmerge,scope,fortchete,lingaedje
-X-KDE-Keywords[x-test]=xxHelpxx,xxHTMLxx,xxSearchxx,xxIndexxx,xxhtdigxx,xxhtsearchxx,xxhtmergexx,xxScopexx,xxLanguagexx
-X-KDE-Keywords[zh_CN]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language,帮助,搜索,索引,语言
-X-KDE-Keywords[zh_TW]=Help,HTML,Search,Index,htdig,htsearch,htmerge,Scope,Language
diff --git a/htmlsearch/htmlsearch.h b/htmlsearch/htmlsearch.h
deleted file mode 100644
index f93cb2b..0000000
--- a/htmlsearch/htmlsearch.h
+++ /dev/null
@@ -1,62 +0,0 @@
-#ifndef __HTMLSEARCH_H__
-#define __HTMLSEARCH_H__
-
-
-
-
-
-class QWidget;
-
-
-class K3Process;
-
-
-class ProgressDialog;
-
-
-class HTMLSearch : public QObject
-{
- Q_OBJECT
-
-public:
-
- HTMLSearch();
-
- bool generateIndex(const QString & lang, QWidget *parent=0);
-
- QString search(const QString & lang, const QString & words, const QString & method="and", int matches=10,
- const QString & format="builtin-long", const QString & sort="score");
-
-
-protected Q_SLOTS:
-
- void htdigStdout(K3Process *proc, char *buffer, int buflen);
- void htdigExited(K3Process *proc);
- void htmergeExited(K3Process *proc);
- void htsearchStdout(K3Process *proc, char *buffer, int buflen);
- void htsearchExited(K3Process *proc);
-
-
-protected:
-
- QString dataPath(const QString& lang);
-
- bool saveFilesList(const QString& lang);
- void scanDir(const QString& dir);
-
- bool createConfig(const QString& lang);
-
-
-private:
-
- QStringList _files;
- K3Process *_proc;
- int _filesToDig, _filesDigged, _filesScanned;
- volatile bool _htdigRunning, _htmergeRunning, _htsearchRunning;
- QString _searchResult;
- ProgressDialog *progress;
-
-};
-
-
-#endif
diff --git a/htmlsearch/index.cpp b/htmlsearch/index.cpp
deleted file mode 100644
index 3e1e72c..0000000
--- a/htmlsearch/index.cpp
+++ /dev/null
@@ -1,25 +0,0 @@
-
-#include <kcmdlineargs.h>
-#include <kaboutdata.h>
-
-#include "htmlsearch.h"
-
-
-int main(int argc, char *argv[])
-{
- KAboutData aboutData( "khtmlindex", "htmlsearch", ki18n("KHtmlIndex"),
- "",
- ki18n("KDE Index generator for help files."));
-
- KCmdLineArgs::init(argc, argv, &aboutData);
-
- KCmdLineOptions options;
- options.add("lang <lang>", ki18n("The language to index"), "en");
- KCmdLineArgs::addCmdLineOptions( options );
-
- KApplication app;
- HTMLSearch search;
-
- KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
- search.generateIndex(args->getOption("lang"));
-}
diff --git a/htmlsearch/kcmhtmlsearch.cpp b/htmlsearch/kcmhtmlsearch.cpp
deleted file mode 100644
index f7bcdf5..0000000
--- a/htmlsearch/kcmhtmlsearch.cpp
+++ /dev/null
@@ -1,371 +0,0 @@
-/**
- * kcmhtmlsearch.cpp
- *
- * Copyright (c) 2000 Matthias Hölzer-Klüpfel <hoelzer at kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include <QLayout>
-#include <kurllabel.h>
-#include <QCheckBox>
-#include <QWhatsThis>
-#include <kfiledialog.h>
-#include "klangcombo.h"
-#include <kurlrequester.h>
-#include <klineedit.h>
-#include <ktoolinvocation.h>
-#include <kpluginfactory.h>
-
-
-
-K_PLUGIN_FACTORY(KHTMLSearchConfigFactory, registerPlugin<KHTMLSearchConfig>();)
-K_EXPORT_PLUGIN(KHTMLSearchConfigFactory("kcmhtmlsearch"))
-
-KHTMLSearchConfig::KHTMLSearchConfig(QWidget *parent, const QVariantList &)
- : KCModule(KHTMLSearchConfigFactory::componentData(), parent), indexProc(0)
-{
- QVBoxLayout *vbox = new QVBoxLayout(this);
- vbox->setSpacing(5);
-
-
- QGroupBox *gb = new QGroupBox(i18n("ht://dig"), this);
- vbox->addWidget(gb);
-
- QGridLayout *grid = new QGridLayout(gb);
- grid->setSpacing(6);
- grid->setMargin(6);
-
- grid->addRowSpacing(0, gb->fontMetrics().lineSpacing());
-
- QLabel *l = new QLabel(i18n("The fulltext search feature makes use of the "
- "ht://dig HTML search engine. "
- "You can get ht://dig at the"), gb);
- l->setAlignment(QLabel::WordBreak);
- l->setMinimumSize(l->sizeHint());
- grid->addWidget(l, 1, 0, 1, 2 );
- QWhatsThis::add( gb, i18n( "Information about where to get the ht://dig package." ) );
-
- KUrlLabel *url = new KUrlLabel(gb);
- url->setURL("http://www.htdig.org");
- url->setText(i18n("ht://dig home page"));
- url->setAlignment(QLabel::AlignHCenter);
- grid->addWidget(url, 2, 0, 1, 2 );
- connect(url, static_cast<void (KUrlLabel::*)(const QString &)>(&KUrlLabel::leftClickedUrl), this, &KHTMLSearchConfig::urlClicked);
-
- gb = new QGroupBox(i18n("Program Locations"), this);
-
- vbox->addWidget(gb);
- grid = new QGridLayout(gb);
- grid->setSpacing(6);
- grid->setMargin(6);
- grid->addRowSpacing(0, gb->fontMetrics().lineSpacing());
-
- htdigBin = new KUrlRequester(gb);
- l = new QLabel(i18n("ht&dig"),gb);
- l->setBuddy(htdigBin);
- grid->addWidget(l, 1,0);
- grid->addWidget(htdigBin, 1,1);
- connect(htdigBin->lineEdit(), SIGNAL(textChanged(const QString&)), this, SLOT(configChanged()));
- QString wtstr = i18n( "Enter the path to your htdig program here, e.g. /usr/local/bin/htdig" );
- QWhatsThis::add( htdigBin, wtstr );
- QWhatsThis::add( l, wtstr );
-
- htsearchBin = new KUrlRequester(gb);
- l = new QLabel(i18n("ht&search"),gb);
- l->setBuddy(htsearchBin);
- grid->addWidget(l, 2,0);
- grid->addWidget(htsearchBin, 2,1);
- connect(htsearchBin->lineEdit(), SIGNAL(textChanged(const QString&)), this, SLOT(configChanged()));
- wtstr = i18n( "Enter the path to your htsearch program here, e.g. /usr/local/bin/htsearch" );
- QWhatsThis::add( htsearchBin, wtstr );
- QWhatsThis::add( l, wtstr );
-
- htmergeBin = new KUrlRequester(gb);
- l = new QLabel(i18n("ht&merge"),gb);
- l->setBuddy(htmergeBin);
- grid->addWidget(l, 3,0);
- grid->addWidget(htmergeBin, 3,1);
- connect(htmergeBin->lineEdit(), SIGNAL(textChanged(const QString&)), this, SLOT(configChanged()));
- wtstr = i18n( "Enter the path to your htmerge program here, e.g. /usr/local/bin/htmerge" );
- QWhatsThis::add( htmergeBin, wtstr );
- QWhatsThis::add( l, wtstr );
-
- QHBoxLayout *hbox = new QHBoxLayout(vbox);
-
- gb = new QGroupBox(i18n("Scope"), this);
- hbox->addWidget(gb);
- QWhatsThis::add( gb, i18n( "Here you can select which parts of the documentation should be included in the fulltext search index. Available options are the KDE Help pages, the installed man pages, and the installed info pages. You can select any number of these." ) );
-
- QVBoxLayout *vvbox = new QVBoxLayout(gb);
- vvbox->setSpacing(2);
- vvbox->setMargin(6);
- vvbox->addSpacing(gb->fontMetrics().lineSpacing());
-
- indexKDE = new QCheckBox(i18n("&KDE help"), gb);
- vvbox->addWidget(indexKDE);
- connect(indexKDE, &QCheckBox::clicked, this, &KHTMLSearchConfig::configChanged);
-
- indexMan = new QCheckBox(i18n("&Man pages"), gb);
- vvbox->addWidget(indexMan);
- indexMan->setEnabled(false),
- connect(indexMan, &QCheckBox::clicked, this, &KHTMLSearchConfig::configChanged);
-
- indexInfo = new QCheckBox(i18n("&Info pages"), gb);
- vvbox->addWidget(indexInfo);
- indexInfo->setEnabled(false);
- connect(indexInfo, &QCheckBox::clicked, this, &KHTMLSearchConfig::configChanged);
-
- gb = new QGroupBox(i18n("Additional Search Paths"), this);
- hbox->addWidget(gb);
- QWhatsThis::add( gb, i18n( "Here you can add additional paths to search for documentation. To add a path, click on the <em>Add...</em> button and select the folder from where additional documentation should be searched. You can remove folders by clicking on the <em>Delete</em> button." ) );
-
- grid = new QGridLayout(gb);
- grid->setSpacing(2);
- grid->setMargin(6);
- grid->addRowSpacing(0, gb->fontMetrics().lineSpacing());
-
- addButton = new QPushButton(i18n("Add..."), gb);
- grid->addWidget(addButton, 1,0);
-
- delButton = new QPushButton(i18n("Delete"), gb);
- grid->addWidget(delButton, 2,0);
-
- searchPaths = new QListWidget(gb);
- grid->addWidget(searchPaths, 1, 1,3, 1);
- grid->setRowStretch(2,2);
-
- gb = new QGroupBox(i18n("Language Settings"), this);
- vbox->addWidget(gb);
- QWhatsThis::add(gb, i18n("Here you can select the language you want to create the index for."));
- language = new KLanguageCombo(gb);
- l = new QLabel(i18n("&Language"),gb);
- l->setBuddy(language);
- vvbox = new QVBoxLayout(gb);
- vvbox->setSpacing(2);
- vvbox->setMargin(6);
- vvbox->addSpacing(gb->fontMetrics().lineSpacing());
- hbox = new QHBoxLayout(vvbox);
- hbox->setSpacing(6);
- hbox->addWidget(l);
- hbox->addWidget(language,1);
- hbox->addStretch(1);
-
- loadLanguages();
-
- vbox->addStretch(1);
-
- runButton = new QPushButton(i18n("Generate Index..."), this);
- QWhatsThis::add( runButton, i18n( "Click this button to generate the index for the fulltext search." ) );
- runButton->setFixedSize(runButton->sizeHint());
- vbox->addWidget(runButton, AlignRight);
- connect(runButton, &QPushButton::clicked, this, &KHTMLSearchConfig::generateIndex);
-
- connect(addButton, &QPushButton::clicked, this, &KHTMLSearchConfig::addClicked);
- connect(delButton, &QPushButton::clicked, this, &KHTMLSearchConfig::delClicked);
- connect(searchPaths, &QListWidget::highlighted, this, &KHTMLSearchConfig::pathSelected);
-
- checkButtons();
-
- load();
-}
-
-
-void KHTMLSearchConfig::loadLanguages()
-{
- // clear the list
- language->clear();
-
- // add all languages to the list
- QStringList langs = KGlobal::dirs()->findAllResources("locale",
- QLatin1String("*/kf5_entry.desktop"));
- langs.sort();
-
- for (QStringList::ConstIterator it = langs.begin(); it != langs.end(); ++it)
- {
- KSimpleConfig entry(*it);
- entry.setGroup(QLatin1String("KCM Locale"));
- QString name = entry.readEntry(QLatin1String("Name"), i18n("without name"));
-
- QString path = *it;
- int index = path.lastIndexOf('/');
- path = path.left(index);
- index = path.lastIndexOf('/');
- path = path.mid(index+1);
- language->insertLanguage(path, name);
- }
-}
-
-
-QString KHTMLSearchConfig::quickHelp() const
-{
- return i18n( "<h1>Help Index</h1> This configuration module lets you configure the ht://dig engine which can be used for fulltext search in the KDE documentation as well as other system documentation like man and info pages." );
-}
-
-
-void KHTMLSearchConfig::pathSelected(const QString &)
-{
- checkButtons();
-}
-
-
-void KHTMLSearchConfig::checkButtons()
-{
-
- delButton->setEnabled(searchPaths->currentItem() >= 0);
-}
-
-
-void KHTMLSearchConfig::addClicked()
-{
- QString dir = KFileDialog::getExistingDirectory();
-
- if (!dir.isEmpty())
- {
- for (uint i=0; i<searchPaths->count(); ++i)
- if (searchPaths->text(i) == dir)
- return;
- searchPaths->insertItem(dir);
- configChanged();
- }
-}
-
-
-void KHTMLSearchConfig::delClicked()
-{
- searchPaths->removeItem(searchPaths->currentItem());
- checkButtons();
- configChanged();
-}
-
-
-KHTMLSearchConfig::~KHTMLSearchConfig()
-{
-}
-
-
-void KHTMLSearchConfig::configChanged()
-{
- emit changed(true);
-}
-
-
-void KHTMLSearchConfig::load()
-{
- KConfig *config = new KConfig("khelpcenterrc", true);
-
- config->setGroup("htdig");
- htdigBin->lineEdit()->setText(config->readPathEntry("htdig", kapp->dirs()->findExe("htdig")));
- htsearchBin->lineEdit()->setText(config->readPathEntry("htsearch", kapp->dirs()->findExe("htsearch")));
- htmergeBin->lineEdit()->setText(config->readPathEntry("htmerge", kapp->dirs()->findExe("htmerge")));
-
- config->setGroup("Scope");
- indexKDE->setChecked(config->readEntry("KDE", true));
- indexMan->setChecked(config->readEntry("Man", false));
- indexInfo->setChecked(config->readEntry("Info", false));
-
- QStringList l = config->readPathEntry("Paths", QStringList());
- searchPaths->clear();
- QStringList::const_iterator it;
- for (it=l.begin(); it != l.end(); ++it)
- searchPaths->insertItem(*it);
-
- config->setGroup("Locale");
- QString lang = config->readEntry("Search Language", KLocale::global()->language());
- language->setCurrentItem(lang);
- delete config;
-
- emit changed(false);
-}
-
-
-void KHTMLSearchConfig::save()
-{
- KConfig *config= new KConfig("khelpcenterrc", false);
-
- config->setGroup("htdig");
- config->writePathEntry("htdig", htdigBin->lineEdit()->text());
- config->writePathEntry("htsearch", htsearchBin->lineEdit()->text());
- config->writePathEntry("htmerge", htmergeBin->lineEdit()->text());
-
- config->setGroup("Scope");
- config->writeEntry("KDE", indexKDE->isChecked());
- config->writeEntry("Man", indexMan->isChecked());
- config->writeEntry("Info", indexInfo->isChecked());
-
- QStringList l;
- for (uint i=0; i<searchPaths->count(); ++i)
- l.append(searchPaths->text(i));
- config->writePathEntry("Paths", l);
-
- config->setGroup("Locale");
- config->writeEntry("Search Language", language->currentTag());
-
- config->sync();
- delete config;
-
- emit changed(false);
-}
-
-
-void KHTMLSearchConfig::defaults()
-{
- htdigBin->lineEdit()->setText(kapp->dirs()->findExe("htdig"));
- htsearchBin->lineEdit()->setText(kapp->dirs()->findExe("htsearch"));
- htmergeBin->lineEdit()->setText(kapp->dirs()->findExe("htmerge"));
-
- indexKDE->setChecked(true);
- indexMan->setChecked(false);
- indexInfo->setChecked(false);
-
- searchPaths->clear();
-
- language->setCurrentItem(KLocale::global()->language());
-
- emit changed(true);
-}
-
-
-void KHTMLSearchConfig::urlClicked(const QString &url)
-{
- KToolInvocation::invokeBrowser(url);
-}
-
-
-void KHTMLSearchConfig::generateIndex()
-{
- save();
-
- QString exe = kapp->dirs()->findExe("khtmlindex");
- if (exe.isEmpty())
- return;
-
- delete indexProc;
-
- indexProc = new K3Process;
- *indexProc << exe << "--lang" << language->currentTag();
-
- connect(indexProc, &K3Process::processExited, this, &KHTMLSearchConfig::indexTerminated);
-
- runButton->setEnabled(false);
-
- indexProc->start();
-}
-
-
-void KHTMLSearchConfig::indexTerminated(K3Process *)
-{
- runButton->setEnabled(true);
-}
diff --git a/htmlsearch/kcmhtmlsearch.h b/htmlsearch/kcmhtmlsearch.h
deleted file mode 100644
index e069775..0000000
--- a/htmlsearch/kcmhtmlsearch.h
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * kcmhtmlsearch.h
- *
- * Copyright (c) 2000 Matthias Hölzer-Klüpfel <hoelzer at kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef __kcmhtmlsearch_h__
-#define __kcmhtmlsearch_h__
-
-
-#define KDE3_SUPPORT
-#include <kcmodule.h>
-#undef KDE3_SUPPORT
-#include <QVariantList>
-
-
-class QCheckBox;
-class QPushButton;
-class QListWidget;
-class K3Process;
-class KLanguageCombo;
-class KUrlRequester;
-class QStringList;
-
-class KHTMLSearchConfig : public KCModule
-{
- Q_OBJECT
-
-public:
-
- KHTMLSearchConfig(QWidget *parent, const QVariantList &args);
- virtual ~KHTMLSearchConfig();
-
- void load();
- void save();
- void defaults();
-
- QString quickHelp() const;
-
- int buttons();
-
-
-protected Q_SLOTS:
-
- void configChanged();
- void addClicked();
- void delClicked();
- void pathSelected(const QString &);
- void urlClicked(const QString&);
- void generateIndex();
-
- void indexTerminated(K3Process *proc);
-
-
-private:
-
- void checkButtons();
- void loadLanguages();
-
- KUrlRequester *htdigBin, *htsearchBin, *htmergeBin;
- QCheckBox *indexKDE, *indexMan, *indexInfo;
- QPushButton *addButton, *delButton, *runButton;
- QListWidget *searchPaths;
- KLanguageCombo *language;
-
- K3Process *indexProc;
-
-};
-
-#endif
diff --git a/htmlsearch/klangcombo.cpp b/htmlsearch/klangcombo.cpp
deleted file mode 100644
index 6a5dd5f..0000000
--- a/htmlsearch/klangcombo.cpp
+++ /dev/null
@@ -1,52 +0,0 @@
-/*
- * klangcombo.cpp - Adds some methods for inserting languages.
- *
- * Copyright (c) 1999-2000 Hans Petter Bieker <bieker at kde.org>
- *
- * Requires the Qt widget libraries, available at no cost at
- * http://www.troll.no/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "klangcombo.h"
-
-
-
-KLanguageCombo::~KLanguageCombo ()
-{
-}
-
-KLanguageCombo::KLanguageCombo (QWidget * parent, const char *name)
- : KTagComboBox(parent, name)
-{
-}
-
-void KLanguageCombo::insertLanguage(const QString& path, const QString& name, const QString& sub, const QString &submenu, int index)
-{
- QString output = name + QLatin1String(" (") + path + QString::fromLatin1(")");
- QPixmap flag(locate("locale", sub + path + QLatin1String("/flag.png")));
- insertItem(QIcon(flag), output, path, submenu, index);
-}
-
-void KLanguageCombo::changeLanguage(const QString& name, int i)
-{
- if (i < 0 || i >= count()) return;
- QString output = name + QLatin1String(" (") + tag(i) + QString::fromLatin1(")");
- changeItem(output, i);
-}
-
-
-
diff --git a/htmlsearch/klangcombo.h b/htmlsearch/klangcombo.h
deleted file mode 100644
index 8535961..0000000
--- a/htmlsearch/klangcombo.h
+++ /dev/null
@@ -1,47 +0,0 @@
-/*
- * klangcombo.h - Adds some methods for inserting languages.
- *
- * Copyright (c) 1999-2000 Hans Petter Bieker <bieker at kde.org>
- *
- * Requires the Qt widget libraries, available at no cost at
- * http://www.troll.no/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef __KLANGCOMBO_H__
-#define __KLANGCOMBO_H__
-
-#include "ktagcombobox.h"
-
-/*
- * Extends KTagCombo to support adding and changing languages.
- *
- * It has also support for sub menus.
- */
-class KLanguageCombo : public KTagComboBox
-{
- Q_OBJECT
-
-public:
- explicit KLanguageCombo(QWidget *parent=0, const char *name=0);
- ~KLanguageCombo();
-
- void insertLanguage(const QString& path, const QString& name, const QString& sub = QString(), const QString &submenu = QString(), int index = -1);
- void changeLanguage(const QString& name, int i);
-};
-
-#endif
diff --git a/htmlsearch/ktagcombobox.cpp b/htmlsearch/ktagcombobox.cpp
deleted file mode 100644
index 201771c..0000000
--- a/htmlsearch/ktagcombobox.cpp
+++ /dev/null
@@ -1,246 +0,0 @@
-/*
- * ktagcombobox.cpp - A combobox with support for submenues, icons and tags
- *
- * Copyright (c) 1999-2000 Hans Petter Bieker <bieker at kde.org>
- *
- * Requires the Qt widget libraries, available at no cost at
- * http://www.troll.no/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#define INCLUDE_MENUITEM_DEF 1
-#include "ktagcombobox.h"
-
-#include <QPainter>
-
-#include <QDebug>
-
-KTagComboBox::~KTagComboBox ()
-{
- delete popup;
-}
-
-KTagComboBox::KTagComboBox (QWidget * parent, const char *name)
- : QComboBox(parent, name),
- popup(0),
- old_popup(0)
-{
- clear();
-}
-
-void KTagComboBox::popupMenu()
-{
- popup->popup( mapToGlobal( QPoint(0,0) ), current );
-}
-
-void KTagComboBox::keyPressEvent( QKeyEvent *e )
-{
- int c;
-
- if ( ( e->key() == Key_F4 && e->state() == 0 ) ||
- ( e->key() == Key_Down && (e->state() & AltButton) ) ||
- ( e->key() == Key_Space ) ) {
- if ( count() ) {
- popup->setActiveItem( current );
- popupMenu();
- }
- return;
- } else {
- e->ignore();
- return;
- }
-
- c = currentItem();
- emit highlighted( c );
- emit activated( c );
-}
-
-void KTagComboBox::mousePressEvent( QMouseEvent * )
-{
- popupMenu();
-}
-
-void KTagComboBox::internalActivate( int index )
-{
- if (current == index) return;
- current = index;
- emit activated( index );
- repaint();
-}
-
-void KTagComboBox::internalHighlight( int index )
-{
- emit highlighted( index );
-}
-
-void KTagComboBox::clear()
-{
- tags.clear();
-
- delete old_popup;
- old_popup = popup;
- popup = new QPopupMenu(this);
- connect(popup, &QPopupMenu::activated, this, &KTagComboBox::internalActivate);
- connect(popup, &QPopupMenu::highlighted, this, &KTagComboBox::internalHighlight);
-}
-
-int KTagComboBox::count() const
-{
- return tags.count();
-}
-
-static inline void checkInsertPos(QPopupMenu *popup, const QString & str, int &index)
-{
- if (index == -2) index = popup->count();
- if (index != -1) return;
-
- int a = 0;
- int b = popup->count();
- while (a <= b) {
- int w = (a + b) / 2;
-
- int id = popup->idAt(w);
- int j = str.compare(popup->text(id));
-
- if (j > 0)
- a = w + 1;
- else
- b = w - 1;
- }
-
- index = a; // it doesn't really matter ... a == b here.
-}
-
-static inline QPopupMenu *checkInsertIndex(QPopupMenu *popup, const QStringList& tags, const QString &submenu)
-{
- int pos = tags.findIndex(submenu);
-
- QPopupMenu *pi = 0;
- if (pos != -1)
- {
- QMenuItem *p = popup->findItem(pos);
- pi = p?p->popup():0;
- }
- if (!pi) pi = popup;
-
- return pi;
-}
-
-void KTagComboBox::insertItem(const QIcon& icon, const QString &text, const QString &tag, const QString &submenu, int index )
-{
- QPopupMenu *pi = checkInsertIndex(popup, tags, submenu);
- checkInsertPos(pi, text, index);
- pi->insertItem(icon, text, count(), index);
- tags.append(tag);
-}
-
-void KTagComboBox::insertItem(const QString &text, const QString &tag, const QString &submenu, int index )
-{
- QPopupMenu *pi = checkInsertIndex(popup, tags, submenu);
- checkInsertPos(pi, text, index);
- pi->insertItem(text, count(), index);
- tags.append(tag);
-}
-
-void KTagComboBox::insertSeparator(const QString &submenu, int index)
-{
- QPopupMenu *pi = checkInsertIndex(popup, tags, submenu);
- pi->insertSeparator(index);
- tags.append(QString());
-}
-
-void KTagComboBox::insertSubmenu(const QString &text, const QString &tag, const QString &submenu, int index)
-{
- QPopupMenu *pi = checkInsertIndex(popup, tags, submenu);
- QPopupMenu *p = new QPopupMenu(pi);
- checkInsertPos(pi, text, index);
- pi->insertItem(text, p, count(), index);
- tags.append(tag);
- connect(p, &QPopupMenu::activated, this, &KTagComboBox::internalActivate);
- connect(p, &QPopupMenu::highlighted, this, &KTagComboBox::internalHighlight);
-}
-
-void KTagComboBox::paintEvent( QPaintEvent * ev)
-{
- QComboBox::paintEvent(ev);
-
- QPainter p (this);
-
- // Text
- QRect clip(2, 2, width() - 4, height() - 4);
-#if 0
- if ( hasFocus() && style().guiStyle() != MotifStyle )
- p.setPen( colorGroup().highlightedText() );
-#endif
- p.drawText(clip, AlignCenter | SingleLine, popup->text( current ));
-
- // Icon
- QIcon *icon = popup->iconSet( this->current );
- if (icon) {
- QPixmap pm = icon->pixmap();
- p.drawPixmap( 4, (height()-pm.height())/2, pm );
- }
-}
-
-bool KTagComboBox::containsTag( const QString &str ) const
-{
- return tags.contains(str) > 0;
-}
-
-QString KTagComboBox::currentTag() const
-{
- return tags.at(currentItem());
-}
-
-QString KTagComboBox::tag(int i) const
-{
- if (i < 0 || i >= count())
- {
- //qDebug() << "KTagComboBox::tag(), unknown tag " << i;
- return QString();
- }
- return *tags.at(i);
-}
-
-int KTagComboBox::currentItem() const
-{
- return current;
-}
-
-void KTagComboBox::setCurrentItem(int i)
-{
- if (i < 0 || i >= count()) return;
- current = i;
- repaint();
-}
-
-void KTagComboBox::setCurrentItem(const QString &code)
-{
- int i = tags.findIndex(code);
- if (code.isNull())
- i = 0;
- if (i != -1)
- setCurrentItem(i);
-}
-
-void KTagComboBox::setFont( const QFont &font )
-{
- QComboBox::setFont( font );
- popup->setFont( font );
-}
-
-
-
diff --git a/htmlsearch/ktagcombobox.h b/htmlsearch/ktagcombobox.h
deleted file mode 100644
index ccf9712..0000000
--- a/htmlsearch/ktagcombobox.h
+++ /dev/null
@@ -1,92 +0,0 @@
-/*
- * ktagcombobox.h - A combobox with support for submenues, icons and tags
- *
- * Copyright (c) 1999-2000 Hans Petter Bieker <bieker at kde.org>
- *
- * Requires the Qt widget libraries, available at no cost at
- * http://www.troll.no/
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-
-#ifndef __KTAGCOMBOBOX_H__
-#define __KTAGCOMBOBOX_H__
-
-#include <QComboBox>
-
-class QPopupMenu;
-
-/*
- * This class should be just like qcombobox, but it should be possible
- * to have have a QIcon for each entry, and each entry should have a tag.
- *
- * It has also support for sub menus.
- */
-class KTagComboBox : public QComboBox
-{
- Q_OBJECT
-
-public:
- explicit KTagComboBox(QWidget *parent=0, const char *name=0);
- ~KTagComboBox();
-
- void insertItem(const QIcon& icon, const QString &text, const QString &tag, const QString &submenu = QString(), int index=-1 );
- void insertItem(const QString &text, const QString &tag, const QString &submenu = QString(), int index=-1 );
- void insertSeparator(const QString &submenu = QString(), int index=-1 );
- void insertSubmenu(const QString &text, const QString &tag, const QString &submenu = QString(), int index=-1);
-
- int count() const;
- void clear();
-
- /*
- * Tag of the selected item
- */
- QString currentTag() const;
- QString tag ( int i ) const;
- bool containsTag (const QString &str ) const;
-
- /*
- * Set the current item
- */
- int currentItem() const;
- void setCurrentItem(int i);
- void setCurrentItem(const QString &code);
-
- // widget stuff
- virtual void setFont( const QFont & );
-
-Q_SIGNALS:
- void activated( int index );
- void highlighted( int index );
-
-private Q_SLOTS:
- void internalActivate( int );
- void internalHighlight( int );
-
-protected:
- void paintEvent( QPaintEvent * );
- void mousePressEvent( QMouseEvent * );
- void keyPressEvent( QKeyEvent *e );
- void popupMenu();
-
-private:
- // work space for the new class
- QStringList tags;
- QPopupMenu *popup, *old_popup;
- int current;
-};
-
-#endif
diff --git a/htmlsearch/long.html b/htmlsearch/long.html
deleted file mode 100644
index 1d0fa4c..0000000
--- a/htmlsearch/long.html
+++ /dev/null
@@ -1,6 +0,0 @@
-<dl><dt><strong><a href="$&(URL)">$&(TITLE)</a></strong>$(STARSLEFT)
-</dt><dd>$(EXCERPT)<br>
-<i><a href="$&(URL)">$&(URL)</a></i>
-<font size="-1">$(MODIFIED), $(SIZE) bytes</font>
-</dd></dl>
-
diff --git a/htmlsearch/meinproc_wrapper b/htmlsearch/meinproc_wrapper
deleted file mode 100644
index 239cf74..0000000
--- a/htmlsearch/meinproc_wrapper
+++ /dev/null
@@ -1,4 +0,0 @@
-#! /bin/sh
-
-file=`echo $3 | sed -e "s#http://localhost/#/#; s#file:/*#/#"`
-meinproc --htdig $file
diff --git a/htmlsearch/nomatch.html b/htmlsearch/nomatch.html
deleted file mode 100644
index 3059270..0000000
--- a/htmlsearch/nomatch.html
+++ /dev/null
@@ -1,21 +0,0 @@
-<html><head><title>No match for '$&(LOGICAL_WORDS)'</title></head>
-<body bgcolor="#ffffff" text="#000000" link="#aa0000">
-<h1><img src="htdig.gif">
-Search results</h1>
-<hr noshade size="4">
-<h2>No matches were found for '$&(LOGICAL_WORDS)'</h2>
-<p>
-Check the spelling of the search word(s) you used.
-If the spelling is correct and you only used one word,
-try using one or more similar search words with "<b>Any</b>."
-</p><p>
-If the spelling is correct and you used more than one
-word with "<b>Any</b>," try using one or more similar search
-words with "<b>Any</b>."</p><p>
-If the spelling is correct and you used more than one
-word with "<b>All</b>," try using one or more of the same words
-with "<b>Any</b>."</p>
-<hr noshade size="4">
-<a href="http://www.htdig.org/">
-<img src="htdig.gif" border="0">ht://Dig $(VERSION)</a>
-</body></html>
diff --git a/htmlsearch/progressdialog.cpp b/htmlsearch/progressdialog.cpp
deleted file mode 100644
index b49c7d6..0000000
--- a/htmlsearch/progressdialog.cpp
+++ /dev/null
@@ -1,89 +0,0 @@
-#include <QLayout>
-#include <QLabel>
-#include <QProgressBar>
-#include <KConfigGroup>
-#include <QDialogButtonBox>
-#include <QPushButton>
-#include <QVBoxLayout>
-
-
-
-
-ProgressDialog::ProgressDialog(QWidget *parent, const char *name)
- : QDialog( parent )
-{
- setWindowTitle( i18n("Generating Index") );
- QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Cancel);
- QWidget *mainWidget = new QWidget(this);
- QVBoxLayout *mainLayout = new QVBoxLayout;
- setLayout(mainLayout);
- mainLayout->addWidget(mainWidget);
- connect(buttonBox, SIGNAL(accepted()), this, SLOT(accept()));
- connect(buttonBox, SIGNAL(rejected()), this, SLOT(reject()));
- //PORTING SCRIPT: WARNING mainLayout->addWidget(buttonBox) must be last item in layout. Please move it.
- mainLayout->addWidget(buttonBox);
- buttonBox->button(QDialogButtonBox::Cancel)->setDefault(true);
- setObjectName( name );
- setModal( false );
-
- QGridLayout *grid = new QGridLayout(mainWidget);
- //PORT QT5 grid->setSpacing(spacingHint());
-
- QLabel *l = new QLabel(i18n("Scanning for files"), mainWidget);
- grid->addWidget(l, 0, 1, 1,2);
-
- filesScanned = new QLabel(plainPage());
- grid->addWidget(filesScanned, 1,2);
- setFilesScanned(0);
-
- check1 = new QLabel(plainPage());
- grid->addWidget(check1, 0,0);
-
- l = new QLabel(i18n("Extracting search terms"), mainWidget);
- grid->addWidget(l, 2, 1, 1,2);
-
- bar = new QProgressBar(plainPage());
- grid->addWidget(bar, 3,2);
-
- check2 = new QLabel(plainPage());
- grid->addWidget(check2, 2,0);
-
- l = new QLabel(i18n("Generating index..."), mainWidget);
- grid->addWidget(l, 4, 1, 1,2);
-
- check3 = new QLabel(plainPage());
- grid->addWidget(check3, 4,0);
-
- setState(0);
-
- setMinimumWidth(300);
-}
-
-
-void ProgressDialog::setFilesScanned(int n)
-{
- filesScanned->setText(i18n("Files processed: %1", n));
-}
-
-
-void ProgressDialog::setFilesToDig(int n)
-{
- bar->setRange(0, n);
-}
-
-
-void ProgressDialog::setFilesDigged(int n)
-{
- bar->setValue(n);
-}
-
-
-void ProgressDialog::setState(int n)
-{
- QPixmap unchecked = QPixmap(locate("data", "khelpcenter/pics/unchecked.xpm"));
- QPixmap checked = QPixmap(locate("data", "khelpcenter/pics/checked.xpm"));
-
- check1->setPixmap( n > 0 ? checked : unchecked);
- check2->setPixmap( n > 1 ? checked : unchecked);
- check3->setPixmap( n > 2 ? checked : unchecked);
-}
diff --git a/htmlsearch/progressdialog.h b/htmlsearch/progressdialog.h
deleted file mode 100644
index a55b379..0000000
--- a/htmlsearch/progressdialog.h
+++ /dev/null
@@ -1,32 +0,0 @@
-#ifndef __PROGRESS_DIALOG_H__
-#define __PROGRESS_DIALOG_H__
-
-#include <QDialog>
-
-class QLabel;
-class QProgressBar;
-
-class ProgressDialog : public QDialog
-{
-
- Q_OBJECT
-
-public:
-
- explicit ProgressDialog(QWidget *parent=0, const char *name=0);
-
- void setFilesScanned(int s);
- void setFilesToDig(int d);
- void setFilesDigged(int d);
-
- void setState(int n);
-
-private:
-
- QLabel *filesScanned, *check1, *check2, *check3;
- QProgressBar *bar;
-
-};
-
-
-#endif
diff --git a/htmlsearch/short.html b/htmlsearch/short.html
deleted file mode 100644
index e3e5e44..0000000
--- a/htmlsearch/short.html
+++ /dev/null
@@ -1 +0,0 @@
-$(STARSRIGHT) <strong><a href="$&(URL)">$&(TITLE)</a></strong><br>
diff --git a/htmlsearch/star.png b/htmlsearch/star.png
deleted file mode 100644
index 1bddebc..0000000
Binary files a/htmlsearch/star.png and /dev/null differ
diff --git a/htmlsearch/star_blank.png b/htmlsearch/star_blank.png
deleted file mode 100644
index ede2fd3..0000000
Binary files a/htmlsearch/star_blank.png and /dev/null differ
diff --git a/htmlsearch/syntax.html b/htmlsearch/syntax.html
deleted file mode 100644
index e724fd9..0000000
--- a/htmlsearch/syntax.html
+++ /dev/null
@@ -1,19 +0,0 @@
-<html><head><title>Error in Boolean search for '$&(WORDS)'</title></head>
-<body bgcolor="#ffffff" text="#000000" link="#aa0000">
-<h1><img src="htdig.gif">
-Error in Boolean search for '$&(LOGICAL_WORDS)'</h1>
-<hr noshade size="4">
-Boolean expressions need to be 'correct' in order for the search
-system to use them.
-The expression you entered has errors in it.<p>
-Examples of correct expressions are: <b>cat and dog</b>, <b>cat
-not dog</b>, <b>cat or (dog not nose)</b>.<br>Note that
-the operator <b>not</b> has the meaning of 'without'.
-<blockquote><b>
-$(SYNTAXERROR)
-</b></blockquote>
-<hr noshade size="4">
-<a href="http://www.htdig.org/">
-<img src="htdig.gif" border="0">ht://Dig $(VERSION)</a>
-</body></html>
-
diff --git a/htmlsearch/unchecked.xpm b/htmlsearch/unchecked.xpm
deleted file mode 100644
index e447281..0000000
--- a/htmlsearch/unchecked.xpm
+++ /dev/null
@@ -1,22 +0,0 @@
-/* XPM */
-static char*unchecked[]={
-"16 16 3 1",
-"# c #000000",
-"+ c #ffffff",
-". c None",
-"................",
-"................",
-"..++++++++++++..",
-"..+##########+..",
-"..+#++++++++#+..",
-"..+#+......+#+..",
-"..+#+......+#+..",
-"..+#+......+#+..",
-"..+#+......+#+..",
-"..+#+......+#+..",
-"..+#+......+#+..",
-"..+#++++++++#+..",
-"..+##########+..",
-"..++++++++++++..",
-"................",
-"................"};
diff --git a/htmlsearch/wrapper.html b/htmlsearch/wrapper.html
deleted file mode 100644
index 251266d..0000000
--- a/htmlsearch/wrapper.html
+++ /dev/null
@@ -1,16 +0,0 @@
-<html><head><title>Search results for '$&(WORDS)'</title></head>
-<body bgcolor="#ffffff" text="#000000" link="#aa0000">
-<h2><img src="htdig.gif">
-Search results for '$&(LOGICAL_WORDS)'</h2>
-<hr noshade size="4">
-<b>
-More <img src="reload.png" alt="*">'s indicate a better match.
-</b>
-<hr noshade size="1">
-$(HTSEARCH_RESULTS)
-$(PAGEHEADER)
-$(PREVPAGE) $(PAGELIST) $(NEXTPAGE)
-<hr noshade size="4">
-<a href="http://www.htdig.org/">
-<img src="htdig.gif" border="0">ht://Dig $(VERSION)</a>
-</body></html>
diff --git a/htmlsearchconfig.cpp b/htmlsearchconfig.cpp
deleted file mode 100644
index 601748e..0000000
--- a/htmlsearchconfig.cpp
+++ /dev/null
@@ -1,156 +0,0 @@
-/**
- * kcmhtmlsearch.cpp
- *
- * Copyright (c) 2000 Matthias Hölzer-Klüpfel <hoelzer at kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#include "htmlsearchconfig.h"
-
-#include <QLayout>
-
-#include <QGroupBox>
-#include <QLabel>
-#include <QVBoxLayout>
-#include <QGridLayout>
-#include <QDebug>
-
-#include <KUrlLabel>
-#include <KFile>
-#include <KUrlRequester>
-#include <KLineEdit>
-#include <KToolInvocation>
-#include <KLocalizedString>
-#include <KConfig>
-#include <KConfigGroup>
-
-namespace KHC {
-
-HtmlSearchConfig::HtmlSearchConfig(QWidget *parent, const char *name)
- : QWidget(parent)
-{
- setObjectName( name );
-
- QVBoxLayout *vbox = new QVBoxLayout(this);
- vbox->setMargin( 5 );
-
-
- QGroupBox *gb = new QGroupBox(i18n("ht://dig"), this);
- vbox->addWidget(gb);
-
- QGridLayout *grid = new QGridLayout(gb);
- grid->setMargin( 6 );
- grid->setSpacing( 6 );
-
- grid->addItem( new QSpacerItem( 0, gb->fontMetrics().lineSpacing() ), 0, 0 );
-
- QLabel *l = new QLabel(i18n("The fulltext search feature makes use of the "
- "ht://dig HTML search engine."), gb);
- l->setMinimumSize(l->sizeHint());
- grid->addWidget(l, 1, 1, 0, 1);
- gb->setWhatsThis( i18n( "Information about where to get the ht://dig package." ) );
-
- KUrlLabel *url = new KUrlLabel(gb);
- url->setUrl(QLatin1String("http://www.htdig.org"));
- url->setText(i18n("You can get ht://dig at the ht://dig home page"));
- url->setAlignment(Qt::AlignHCenter);
- grid->addWidget(url, 2,2, 0, 1);
- connect(url, static_cast<void (KUrlLabel::*)(const QString &)>(&KUrlLabel::leftClickedUrl), this, &HtmlSearchConfig::urlClicked);
-
- gb = new QGroupBox(i18n("Program Locations"), this);
-
- vbox->addWidget(gb);
- grid = new QGridLayout(gb);
- grid->setMargin( 6 );
- grid->setSpacing( 6 );
- grid->addItem( new QSpacerItem( 0, gb->fontMetrics().lineSpacing() ), 0, 0 );
-
- mHtsearchUrl = new KUrlRequester(gb);
- l = new QLabel(i18n("htsearch:"), gb);
- l->setBuddy( mHtsearchUrl );
- grid->addWidget(l, 1,0);
- grid->addWidget(mHtsearchUrl, 1,1);
- connect( mHtsearchUrl->lineEdit(), SIGNAL( textChanged( const QString & ) ),
- SIGNAL( changed() ) );
- QString wtstr = i18n( "Enter the URL of the htsearch CGI program." );
- mHtsearchUrl->setWhatsThis( wtstr );
- l->setWhatsThis( wtstr );
-
- mIndexerBin = new KUrlRequester(gb);
- l = new QLabel(i18n("Indexer:"), gb);
- l->setBuddy( mIndexerBin );
- grid->addWidget(l, 2,0);
- grid->addWidget(mIndexerBin, 2,1);
- connect( mIndexerBin->lineEdit(), SIGNAL( textChanged( const QString & ) ),
- SIGNAL( changed() ) );
- wtstr = i18n( "Enter the path to your htdig indexer program here." );
- mIndexerBin->setWhatsThis( wtstr );
- l->setWhatsThis( wtstr );
-
- mDbDir = new KUrlRequester(gb);
- mDbDir->setMode( KFile::Directory | KFile::LocalOnly );
- l = new QLabel(i18n("htdig database:"), gb);
- l->setBuddy( mDbDir );
- grid->addWidget(l, 3,0);
- grid->addWidget(mDbDir, 3,1);
- connect( mDbDir->lineEdit(), SIGNAL( textChanged( const QString & ) ),
- SIGNAL( changed() ) );
- wtstr = i18n( "Enter the path to the htdig database folder." );
- mDbDir->setWhatsThis( wtstr );
- l->setWhatsThis( wtstr );
-}
-
-HtmlSearchConfig::~HtmlSearchConfig()
-{
- qDebug() << "~HtmlSearchConfig()";
-}
-
-void HtmlSearchConfig::makeReadOnly()
-{
- mHtsearchUrl->setEnabled( false );
- mIndexerBin->setEnabled( false );
- mDbDir->setEnabled( false );
-}
-
-void HtmlSearchConfig::load( KConfig *config )
-{
- mHtsearchUrl->lineEdit()->setText(config->group("htdig").readPathEntry("htsearch", QStandardPaths::findExecutable("htsearch")));
- mIndexerBin->lineEdit()->setText(config->group("htdig").readPathEntry("indexer", QString()));
- mDbDir->lineEdit()->setText(config->group("htdig").readPathEntry("dbdir", "/opt/www/htdig/db/" ) );
-}
-
-void HtmlSearchConfig::save( KConfig *config )
-{
- config->group("htdig").writePathEntry("htsearch", mHtsearchUrl->lineEdit()->text());
- config->group("htdig").writePathEntry("indexer", mIndexerBin->lineEdit()->text());
- config->group("htdig").writePathEntry("dbdir", mDbDir->lineEdit()->text());
-}
-
-void HtmlSearchConfig::defaults()
-{
- mHtsearchUrl->lineEdit()->setText(QStandardPaths::findExecutable("htsearch"));
- mIndexerBin->lineEdit()->clear();
- mDbDir->lineEdit()->setText(QLatin1String("/opt/www/htdig/db/") );
-}
-
-void HtmlSearchConfig::urlClicked(const QString &url)
-{
- KToolInvocation::invokeBrowser(url);
-}
-
-} // End namespace KHC
-// vim:ts=2:sw=2:et
-
diff --git a/htmlsearchconfig.h b/htmlsearchconfig.h
deleted file mode 100644
index a93567d..0000000
--- a/htmlsearchconfig.h
+++ /dev/null
@@ -1,58 +0,0 @@
-/**
- * This file is part of KHelpCenter
- *
- * Copyright (c) 2000 Matthias Hölzer-Klüpfel <hoelzer at kde.org>
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License as published by
- * the Free Software Foundation; either version 2 of the License, or
- * (at your option) any later version.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-
-#ifndef KHC_HTMLSEARCHCONFIG_H
-#define KHC_HTMLSEARCHCONFIG_H
-
-#include <QWidget>
-
-class KUrlRequester;
-class KConfig;
-
-namespace KHC {
-
-class HtmlSearchConfig : public QWidget
-{
- Q_OBJECT
- public:
- explicit HtmlSearchConfig(QWidget *parent = 0L, const char *name = 0L);
- virtual ~HtmlSearchConfig();
-
- void load( KConfig * );
- void save( KConfig * );
- void defaults();
- void makeReadOnly();
-
- Q_SIGNALS:
- void changed();
-
- protected Q_SLOTS:
- void urlClicked(const QString&);
-
- private:
- KUrlRequester *mHtsearchUrl;
- KUrlRequester *mIndexerBin;
- KUrlRequester *mDbDir;
-};
-
-}
-
-#endif //KHC_HTMLSEARCHCONFIG_H
-// vim:ts=2:sw=2:et
diff --git a/kcmhelpcenter.cpp b/kcmhelpcenter.cpp
index 490c2ec..8ac5a15 100644
--- a/kcmhelpcenter.cpp
+++ b/kcmhelpcenter.cpp
@@ -21,7 +21,6 @@
#include "kcmhelpcenter.h"
-#include "htmlsearchconfig.h"
#include "docmetainfo.h"
#include "prefs.h"
#include "searchhandler.h"
diff --git a/kcmhelpcenter.h b/kcmhelpcenter.h
index ccbeb8f..dd74231 100644
--- a/kcmhelpcenter.h
+++ b/kcmhelpcenter.h
@@ -38,7 +38,6 @@ class KUrlRequester;
class QTreeWidget;
namespace KHC {
-class HtmlSearchConfig;
class DocEntry;
class SearchEngine;
}
@@ -149,7 +148,6 @@ class KCMHelpCenter : public KDialog
KAboutData *mAboutData;
- KHC::HtmlSearchConfig *mHtmlSearchTab;
QWidget *mScopeTab;
KTemporaryFile *mCmdFile;
diff --git a/searchhandlers/CMakeLists.txt b/searchhandlers/CMakeLists.txt
index e66de2e..98e2345 100644
--- a/searchhandlers/CMakeLists.txt
+++ b/searchhandlers/CMakeLists.txt
@@ -34,25 +34,13 @@ configure_file(${CMAKE_CURRENT_SOURCE_DIR}/xapian.desktop.cmake ${CMAKE_CURRENT_
install(FILES ${CMAKE_CURRENT_BINARY_DIR}/xapian.desktop DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/searchhandlers)
if (NOT WIN32)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/khc_docbookdig.pl.cmake ${CMAKE_CURRENT_BINARY_DIR}/khc_docbookdig.pl @ONLY)
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/khc_htdig.pl.cmake ${CMAKE_CURRENT_BINARY_DIR}/khc_htdig.pl @ONLY )
-
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/docbook.desktop.cmake
-${CMAKE_CURRENT_BINARY_DIR}/docbook.desktop )
-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/man.desktop.cmake
${CMAKE_CURRENT_BINARY_DIR}/man.desktop )
-configure_file(${CMAKE_CURRENT_SOURCE_DIR}/htdig.desktop.cmake
-${CMAKE_CURRENT_BINARY_DIR}/htdig.desktop )
-
-# macro_additional_clean_files( ${CMAKE_CURRENT_BINARY_DIR}/khc_htdig.pl {CMAKE_CURRENT_BINARY_DIR}/khc_docbookdig.pl @ONLY)
-
########### install files ###############
-install( FILES htdig_long.html DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/searchhandlers/htdig )
-install( FILES ${CMAKE_CURRENT_BINARY_DIR}/htdig.desktop ${CMAKE_CURRENT_BINARY_DIR}/man.desktop ${CMAKE_CURRENT_BINARY_DIR}/docbook.desktop DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/searchhandlers )
+install(FILES ${CMAKE_CURRENT_BINARY_DIR}/man.desktop DESTINATION ${DATA_INSTALL_DIR}/khelpcenter/searchhandlers)
-install(PROGRAMS ${CMAKE_CURRENT_BINARY_DIR}/khc_htdig.pl khc_htsearch.pl khc_mansearch.pl ${CMAKE_CURRENT_BINARY_DIR}/khc_docbookdig.pl DESTINATION ${LIBEXEC_INSTALL_DIR})
+install(PROGRAMS khc_mansearch.pl DESTINATION ${LIBEXEC_INSTALL_DIR})
endif ()
diff --git a/searchhandlers/docbook.desktop.cmake b/searchhandlers/docbook.desktop.cmake
deleted file mode 100644
index 557d8e8..0000000
--- a/searchhandlers/docbook.desktop.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-DocumentTypes=application/docbook+xml
-
-SearchBinary=htsearch
-SearchBinaryPaths=/srv/www/cgi-bin,/usr/lib/cgi-bin,/opt/www/htdig/bin
-SearchCommand=${KDE_INSTALL_FULL_LIBEXECDIR}/khc_htsearch.pl --binary=%b --docbook --indexdir=%d --config=%i --words=%w --method=%o --maxnum=%m --lang=en
-IndexCommand=${KDE_INSTALL_FULL_LIBEXECDIR}/khc_docbookdig.pl --indexdir=%d --docpath=%p --identifier=%i
-TryExec=/usr/bin/htdig
diff --git a/searchhandlers/htdig.desktop.cmake b/searchhandlers/htdig.desktop.cmake
deleted file mode 100644
index ab9b8e1..0000000
--- a/searchhandlers/htdig.desktop.cmake
+++ /dev/null
@@ -1,8 +0,0 @@
-[Desktop Entry]
-DocumentTypes=text/html
-
-SearchBinary=htsearch
-SearchBinaryPaths=/srv/www/cgi-bin,/usr/lib/cgi-bin,/opt/www/htdig/bin
-SearchCommand=${KDE_INSTALL_FULL_LIBEXECDIR}/khc_htsearch.pl --binary=%b --indexdir=%d --config=%i --words=%w --method=%o --maxnum=%m --lang=%l
-IndexCommand=${KDE_INSTALL_FULL_LIBEXECDIR}/khc_htdig.pl --indexdir=%d --docpath=%p --identifier=%i --lang=%l
-TryExec=/usr/bin/htdig
diff --git a/searchhandlers/htdig_long.html b/searchhandlers/htdig_long.html
deleted file mode 100644
index a2e6e21..0000000
--- a/searchhandlers/htdig_long.html
+++ /dev/null
@@ -1,2 +0,0 @@
-$(STARSRIGHT) <a href="$&(URL)">$&(TITLE) ($(MODIFIED))</a><br>
-$(EXCERPT)<br>
diff --git a/searchhandlers/khc_docbookdig.pl.cmake b/searchhandlers/khc_docbookdig.pl.cmake
deleted file mode 100755
index 3b424c4..0000000
--- a/searchhandlers/khc_docbookdig.pl.cmake
+++ /dev/null
@@ -1,222 +0,0 @@
-#!/usr/bin/perl
-#
-# Wrapper script for creating search indices for htdig.
-#
-# This file is part of KHelpcenter.
-#
-# Copyright (C) 2002 SuSE Linux AG, Nuernberg
-#
-# Author: Cornelius Schumacher <cschum at suse.de>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-use strict;
-
-use Getopt::Long;
-
-my $htdigdata = "/srv/www/htdig/common/";
-my $htdigbin = "/usr/bin";
-my $kdeprefix = "@CMAKE_INSTALL_PREFIX@";
-chomp $kdeprefix;
-
-my $dbg = 1;
-
-my ($indexdir, $docpath, $identifier, $lang, $help );
-
-GetOptions (
- 'indexdir=s' => \$indexdir,
- 'docpath=s' => \$docpath,
- 'identifier=s' => \$identifier,
- 'lang=s' => \$lang,
- 'help' => \$help,
-);
-
-if ( $help ) {
- usage();
-}
-
-if ( !$indexdir || !$docpath || !$identifier ) {
- print STDERR "Missing arguments.\n";
- usage();
-}
-
-&dbg( "INDEXDIR: $indexdir" );
-
-if ( !$lang ) { $lang = "en"; }
-
-my $tmpdir = "$indexdir/$identifier.tmp";
-if ( ! -e $tmpdir ) {
- mkdir $tmpdir;
-}
-
-print "Creating index for <b>'$identifier'</b>\n";
-
-my $htdigconf = $indexdir;
-my $htdigdb = $indexdir;
-
-my $conffile = "$htdigconf/$identifier.conf";
-
-my $commondir = "$htdigdata/$lang";
-if ( !$lang || !-e $commondir ) {
- $commondir = "$htdigdata/en";
-}
-if ( !-e $commondir ) { $commondir = $htdigdata; }
-
-my $locale;
-if ( $lang eq "de" ) { $locale = "de_DE"; }
-else { $locale = $lang; }
-
-my $startfile = "$tmpdir/index.html";
-
-if ( !open( START, ">$startfile" ) ) {
- print STDERR "Unable to open '$startfile' for writing.\n";
- exit 1;
-}
-
-$ENV{ PATH } = '/bin:/usr/bin';
-$ENV{ CDPATH } = '';
-$ENV{ ENV } = '';
-
-my $findpath = "@HTML_INSTALL_DIR@/$lang/";
-my $findcmd = "find $findpath -name index.docbook";
-
-print STDERR "FINDCMD: $findcmd\n";
-
-if ( !open FIND, "$findcmd|" ) {
- print STDERR "Unable to find docs.\n";
- exit 1;
-}
-while ( <FIND> ) {
- chomp;
- my $path = $_;
- $path =~ /$findpath(.*)\/index.docbook$/;
- my $app = $1;
- print START "<a href=\"help://$app/index.docbook\">$path</a>\n";
-}
-close START;
-
-my $mimetypefile = "$tmpdir/htdig_mime";
-if ( !open( MIME, ">$mimetypefile" ) ) {
- print STDERR "Unable to open '$mimetypefile' for writing.\n";
- exit 1;
-}
-print MIME << "EOT";
-text/html html
-text/docbook docbook
-EOT
-close MIME;
-
-my $parserfile = "$tmpdir/docbookparser";
-if ( !open( PARSER, ">$parserfile" ) ) {
- print STDERR "Unable to open '$parserfile' for writing.\n";
- exit 1;
-}
-print PARSER << "EOT";
-#! /bin/bash
-
-file=\$1
-shift
-mime=\$1
-shift
-
-if test "\$#" -gt 0; then
- orig=\${1/file:\\//}
- shift
-fi
-
-case "\$orig" in
- help:/*)
- orig=\${orig/help:\\//}
- orig=\${orig/\/index.docbook/}
- cd @HTML_INSTALL_DIR@/en/\$orig
- file=index.docbook
- ;;
- *)
- file=\$orig
- cd `dirname \$orig`
- ;;
-esac
-
-echo "t apptitle"
-#$kdeprefix/bin/meinproc --htdig "\$file"
-$kdeprefix/bin/meinproc4 --htdig "\$file"
-EOT
-close PARSER;
-chmod 0755, $parserfile;
-
-if ( !open( CONF, ">$conffile" ) ) {
- print STDERR "Unable to open '$conffile' for writing.\n";
- exit 1;
-}
-print CONF << "EOT";
-# htdig configuration for doc '$identifier'
-#
-# This file has been automatically created by KHelpcenter
-common_dir: $commondir
-locale: $locale
-database_dir: $htdigdb
-database_base: \${database_dir}/$identifier
-local_urls: help://=@HTML_INSTALL_DIR@/en/ file://=/
-local_urls_only: true
-limit_urls_to: file:// help:/
-ignore_noindex: true
-max_hop_count: 4
-robotstxt_name: kdedig
-compression_level: 6
-template_map: Long long @DATA_INSTALL_DIR@/khelpcenter/searchhandlers/htdig/htdig_long.html
-search_algorithm: exact:1 prefix:0.8
-maximum_pages: 1
-matches_per_page: 10
-start_url: file://$tmpdir/index.html
-external_parsers: text/docbook $parserfile
-valid_extensions: .docbook .html
-mime_types: $mimetypefile
-EOT
-close CONF;
-
-my $ret = system( "$htdigbin/htdig", "-v", "-s", "-i", "-c", $conffile );
-if ( $ret != 0 ) {
- print STDERR "htdig failed\n";
-} else {
- $ret = system( "$htdigbin/htmerge", "-c", $conffile );
- if ( $ret != 0 ) { print STDERR "htmerge failed\n"; }
-}
-
-if ( $ret == 0 ) {
- my $existsfile = "$indexdir/$identifier.exists";
-
- if ( !open( EXISTS, ">$existsfile" ) ) {
- print STDERR "Unable to open '$existsfile' for writing.\n";
- exit 1;
- }
- print EXISTS "$identifier\n";
- close EXISTS;
-
- print "Finished successfully.\n";
-}
-
-exit $ret;
-
-sub dbg($)
-{
- $dbg && print STDERR shift, "\n";
-}
-
-sub usage()
-{
- print "Usage: khc_docbookdig.pl --indexdir <indexdir> --docpath <path> ";
- print "--identifier <identifier>\n";
- exit 1;
-}
diff --git a/searchhandlers/khc_htdig.pl.cmake b/searchhandlers/khc_htdig.pl.cmake
deleted file mode 100755
index 511adc8..0000000
--- a/searchhandlers/khc_htdig.pl.cmake
+++ /dev/null
@@ -1,148 +0,0 @@
-#!/usr/bin/perl
-#
-# Wrapper script for creating search indices for htdig.
-#
-# This file is part of the SuSE help system.
-#
-# Copyright (C) 2002 SuSE Linux AG, Nuernberg
-#
-# Author: Cornelius Schumacher <cschum at suse.de>
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License
-# along with this program; if not, write to the Free Software
-# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
-
-use strict;
-
-use Getopt::Long;
-
-my $htdigdata = "/srv/www/htdig/common/";
-my $htdigbin = "/usr/bin";
-my $kdeprefix = "@CMAKE_INSTALL_PREFIX@";
-chomp $kdeprefix;
-
-my $dbg = 1;
-
-my ($indexdir, $docpath, $identifier, $lang, $help );
-
-GetOptions (
- 'indexdir=s' => \$indexdir,
- 'docpath=s' => \$docpath,
- 'identifier=s' => \$identifier,
- 'lang=s' => \$lang,
- 'help' => \$help,
-);
-
-if ( $help ) {
- usage();
-}
-
-if ( !$indexdir || !$docpath || !$identifier ) {
- print STDERR "Missing arguments.\n";
- usage();
-}
-
-if ( !$lang ) { $lang = "en"; }
-
-&dbg( "INDEXDIR: $indexdir" );
-
-print "Creating index for <b>'$identifier'</b>\n";
-
-my $htdigconf = $indexdir;
-my $htdigdb = $indexdir;
-
-my $conffile = "$htdigconf/$identifier.conf";
-
-if ( !open( CONF, ">$conffile" ) ) {
- print STDERR "Unable to open '$conffile' for writing.\n";
- exit 1;
-}
-
-my $commondir = "$htdigdata/$lang";
-if ( !$lang || !-e $commondir ) {
- $commondir = "$htdigdata/en";
-}
-if ( !-e $commondir ) { $commondir = $htdigdata; }
-
-my $locale;
-if ( $lang eq "de" ) { $locale = "de_DE"; }
-else { $locale = $lang; }
-
-print CONF << "EOT";
-# htdig configuration for doc '$identifier'
-#
-# This file has been automatically created by KHelpcenter
-
-common_dir: $commondir
-locale: $locale
-database_dir: $htdigdb
-local_urls: http://localhost=
-local_urls_only: true
-limit_urls_to: http://localhost
-ignore_noindex: true
-max_hop_count: 4
-robotstxt_name: kdedig
-compression_level: 6
-template_map: Long long $kdeprefix/share/apps/khelpcenter/searchhandlers/htdig/htdig_long.html \\
- Short short $htdigdata/short.html
-search_algorithm: exact:1 prefix:0.8
-maximum_pages: 1
-matches_per_page: 10
-database_base: \${database_dir}/$identifier
-start_url: http://localhost/$docpath
-# for pdf-files
-max_doc_size: 5000000
-external_parsers: application/pdf /usr/share/doc/packages/htdig/contrib/parse_doc.pl application/postscript /usr/share/doc/packages/htdig/contrib/parse_doc.pl
-#external_parsers: text/docbook /build/htdig/parser
-EOT
-
-close CONF;
-
-$ENV{ PATH } = '';
-$ENV{ CDPATH } = '';
-$ENV{ ENV } = '';
-
-my $ret = system( "$htdigbin/htdig", "-s", "-i", "-c", $conffile );
-if ( $ret != 0 ) {
- print STDERR "htdig failed\n";
-} else {
- $ret = system( "$htdigbin/htmerge", "-c", $conffile );
- if ( $ret != 0 ) { print STDERR "htmerge failed\n"; }
-}
-
-if ( $ret == 0 ) {
- my $existsfile = "$indexdir/$identifier.exists";
-
- if ( !open( EXISTS, ">$existsfile" ) ) {
- print STDERR "Unable to open '$existsfile' for writing.\n";
- exit 1;
- }
- print EXISTS "$identifier\n";
- close EXISTS;
-
- print "Finished successfully.\n";
-}
-
-exit $ret;
-
-sub dbg($)
-{
- $dbg && print STDERR shift, "\n";
-}
-
-sub usage()
-{
- print "Usage: khc_htdig.pl --indexdir <indexdir> --docpath <path> ";
- print "--identifier <identifier>\n";
- exit 1;
-}
diff --git a/searchhandlers/khc_htsearch.pl b/searchhandlers/khc_htsearch.pl
deleted file mode 100755
index 5dc3f5f..0000000
--- a/searchhandlers/khc_htsearch.pl
+++ /dev/null
@@ -1,117 +0,0 @@
-#!/usr/bin/perl
-
-use strict;
-
-use Encode;
-use Getopt::Long;
-
-use open IO => ':utf8';
-use open ':std';
-
-my $htsearchpath="/srv/www/cgi-bin/htsearch";
-my $config;
-my $format;
-my $method;
-my $words;
-my $lang;
-my $docbook;
-my $indexdir;
-my $maxnum;
-
-GetOptions (
- 'binary=s' => \$htsearchpath,
- 'config=s' => \$config,
- 'format=s' => \$format,
- 'method=s' => \$method,
- 'words=s' => \$words,
- 'lang=s' => \$lang,
- 'docbook' => \$docbook,
- 'indexdir=s' => \$indexdir,
- 'maxnum=s' => \$maxnum
-);
-
-if ( !$indexdir ) {
- print STDERR "No index dir given.\n";
- exit 1;
-}
-
-if ( !$lang ) { $lang = "en"; }
-
-my $charset = langCharset( $lang );
-
-$words = encode( $charset, $words );
-
-if ( !open( HTSEARCH, "-|", "$htsearchpath", "-c", "$indexdir/$config.conf",
- "format=$format&method=$method&words=$words&matchesperpage=$maxnum&exclude=[index.html]" ) )
-{
- print "Can't execute htsearch at '$htsearchpath'.\n";
- exit 1;
-}
-
-my ($body,$liststart,$ref,$link,$error,$errorOut);
-
-while( <HTSEARCH> ) {
- if ( !$body ) {
- print;
- if ( /^<body/ ) { $body = 1; }
- }
- if ( /^<h3>/ ) {
- print;
- print "<ul>\n";
- $liststart = 1;
- }
- if ( /^<img src.*<a href="(.*)">(.*)<\/a>/ ) {
- $ref = $1;
- $link = $2;
-
- print STDERR "REF: $ref LINK: $link\n";
-
- $ref =~ s/file:\/\/localhost//;
-
- $ref =~ s/http:\/\/localhost\//file:\//;
-
- if ( $docbook ) {
- $ref =~ /help:\/\/(.*)\/index.docbook/;
- my $app = $1;
- $ref = "help:$app";
-
- $link =~ s/apptitle/$app/;
- }
-
- print " <li><a href=\"$ref\">$link</a></li>\n";
- }
- if ( /^<h1>ht:\/\/Dig error/ ) {
- $error = 1;
- print "Htdig error:\n";
- }
- if ( $error && /^<pre>/ ) {
- $errorOut = 1;
- }
- if ( $errorOut ) {
- print;
- if ( /^<\/pre>/ ) { $errorOut = 0; }
- }
-}
-
-close HTSEARCH;
-
-if ( $liststart ) { print "</ul>\n"; }
-
-print "</body></html>\n";
-
-if ( $? != 0 ) { exit $?; }
-
-1;
-
-# Return charset used for given language
-sub langCharset( $ )
-{
- my $lang = shift;
- if ( $lang eq "cz" || $lang eq "hu" ) {
- return "latin2";
- } elsif ( $lang eq "kr" ) {
- return "utf8";
- } else {
- return "latin1";
- }
-}
diff --git a/tests/CMakeLists.txt b/tests/CMakeLists.txt
index 2334364..d67d9dd 100644
--- a/tests/CMakeLists.txt
+++ b/tests/CMakeLists.txt
@@ -8,8 +8,7 @@ set(testmetainfo_SRCS
testmetainfo.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../docmetainfo.cpp
${CMAKE_CURRENT_SOURCE_DIR}/../docentry.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../docentrytraverser.cpp
- ${CMAKE_CURRENT_SOURCE_DIR}/../htmlsearch.cpp )
+ ${CMAKE_CURRENT_SOURCE_DIR}/../docentrytraverser.cpp )
kconfig_add_kcfg_files(testmetainfo_SRCS ../prefs.kcfgc)
More information about the kde-doc-english
mailing list