summaryrefslogtreecommitdiffstats
path: root/kmrml/kmrml/lib/kmrml_config.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kmrml/kmrml/lib/kmrml_config.cpp')
-rw-r--r--kmrml/kmrml/lib/kmrml_config.cpp339
1 files changed, 0 insertions, 339 deletions
diff --git a/kmrml/kmrml/lib/kmrml_config.cpp b/kmrml/kmrml/lib/kmrml_config.cpp
deleted file mode 100644
index 9f5872b9..00000000
--- a/kmrml/kmrml/lib/kmrml_config.cpp
+++ /dev/null
@@ -1,339 +0,0 @@
-/* This file is part of the KDE project
- Copyright (C) 2002 Carsten Pfeiffer <pfeiffer@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, version 2.
-
- 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.
-*/
-
-#include <tqdir.h>
-#include <tqfile.h>
-#include <tqtextcodec.h>
-
-#include <tdeconfig.h>
-#include <kdebug.h>
-#include <tdeglobal.h>
-#include <kprocess.h>
-#include <kstandarddirs.h>
-
-#include "kmrml_config.h"
-
-#include <tdeversion.h>
-#if TDE_VERSION < 307
- #define QUOTE( x ) x
-#else
- #define QUOTE( x ) TDEProcess::quote( x )
-#endif
-
-using namespace KMrml;
-
-// #define DEFAULT_ADDCOLLECTION_CMD "gift-add-collection.pl --thumbnail-dir=%t --local-encoding %d"
-#define DEFAULT_ADDCOLLECTION_CMD "gift-add-collection.pl --gift-home=%h --thumbnail-dir=%t --local-encoding=%e %d"
-#define DEFAULT_REMOVECOLLECTION_CMD "gift-add-collection.pl --gift-home=%h --local-encoding=%e --remove-collection %d"
-
-#define DEFAULT_MRMLD_CMD "gift --port %p --datadir %d"
-#define DEFAULT_MRMLD_CMD_AUTOPORT "gift --datadir %d"
-
-#define CONFIG_GROUP "MRML Settings"
-#define DEFAULT_HOST "localhost"
-#define DEFAULT_USER "kmrml"
-#define DEFAULT_PASS "none"
-#define DEFAULT_AUTH false
-#define DEFAULT_AUTOPORT true
-const int DEFAULT_PORT = 12789;
-
-Config::Config()
-{
- m_ownConfig = new TDEConfig( "tdeio_mrmlrc", false, false );
- m_config = m_ownConfig;
-
- init();
-}
-
-Config::Config( TDEConfig *config )
- : m_config( config ),
- m_ownConfig( 0L )
-{
- init();
-}
-
-Config::~Config()
-{
- delete m_ownConfig;
-}
-
-void Config::init()
-{
- m_config->setGroup( CONFIG_GROUP );
- m_defaultHost = m_config->readEntry( "Default Host" );
- if ( m_defaultHost.isEmpty() )
- m_defaultHost = DEFAULT_HOST;
-
- m_hostList = m_config->readListEntry( "Host List" );
- if ( m_hostList.isEmpty() )
- m_hostList.append( DEFAULT_HOST );
-
- m_serverStartedIndividually =
- m_config->readBoolEntry( "ServerStartedIndividually", false );
-}
-
-bool Config::sync()
-{
- bool notifySlaves = m_config->isDirty();
- m_config->sync();
- return notifySlaves;
-
- // This moved to kcontrol/MainPage::save() so we don't have to link against
- // TDEIO and need a full TDEApplication instance to work (so that the tiny
- // mrmlsearch binary can also use this class)
- // tell the ioslaves about the new configuration
-// if ( notifySlaves )
-// TDEIO::SlaveConfig::self()->reset();
-}
-
-void Config::setDefaultHost( const TQString& host )
-{
- m_defaultHost = host.isEmpty() ?
- TQString::fromLatin1(DEFAULT_HOST) : host;
-
- m_config->setGroup( CONFIG_GROUP );
- m_config->writeEntry( "Default Host", m_defaultHost );
-}
-
-ServerSettings Config::settingsForLocalHost() const
-{
- return settingsForHost( "localhost" );
-}
-
-ServerSettings Config::settingsForHost( const TQString& host ) const
-{
- TDEConfigGroup config( m_config, settingsGroup( host ) );
- ServerSettings settings;
-
- settings.host = host;
- settings.configuredPort = config.readUnsignedNumEntry( "Port",
- DEFAULT_PORT );
- settings.autoPort = (host == "localhost") &&
- config.readBoolEntry("Automatically determine Port",
- DEFAULT_AUTOPORT );
- settings.user = config.readEntry( "Username", DEFAULT_USER );
- settings.pass = config.readEntry( "Password", DEFAULT_PASS );
- settings.useAuth = config.readBoolEntry( "Perform Authentication",
- DEFAULT_AUTH );
-
- return settings;
-}
-
-void Config::addSettings( const ServerSettings& settings )
-{
- TQString host = settings.host;
- if ( m_hostList.find( host ) == m_hostList.end() )
- m_hostList.append( host );
-
- m_config->setGroup( CONFIG_GROUP );
- m_config->writeEntry( "Host List", m_hostList );
-
- m_config->setGroup( settingsGroup( host ) );
- m_config->writeEntry( "Host", host );
- m_config->writeEntry( "Port", settings.configuredPort );
- m_config->writeEntry( "Automatically determine Port", settings.autoPort );
- m_config->writeEntry( "Username", settings.user );
- m_config->writeEntry( "Password", settings.pass );
- m_config->writeEntry( "Perform Authentication", settings.useAuth );
-}
-
-bool Config::removeSettings( const TQString& host )
-{
- bool success = m_config->deleteGroup( settingsGroup( host ) );
- if ( success )
- {
- m_hostList.remove( host );
- m_config->setGroup( CONFIG_GROUP );
- }
-
- return success;
-}
-
-TQStringList Config::indexableDirectories() const
-{
- m_config->setGroup( CONFIG_GROUP );
- return m_config->readListEntry( "Indexable Directories" );
-}
-
-void Config::setIndexableDirectories( const TQStringList& dirs )
-{
- m_config->setGroup( CONFIG_GROUP );
- m_config->writeEntry( "Indexable Directories", dirs );
-}
-
-TQString Config::addCollectionCommandLine() const
-{
- m_config->setGroup( CONFIG_GROUP );
- TQString cmd = m_config->readEntry( "AddCollection Commandline",
- DEFAULT_ADDCOLLECTION_CMD );
- int index = cmd.find( "%h" );
- if ( index != -1 )
- cmd.replace( index, 2, QUOTE( mrmldDataDir() ) );
-
- index = cmd.find( "%e" );
- if ( index != -1 )
- cmd.replace( index, 2, TQTextCodec::codecForLocale()->mimeName() );
-
- return cmd;
-}
-
-void Config::setAddCollectionCommandLine( const TQString& cmd )
-{
- m_config->setGroup( CONFIG_GROUP );
- m_config->writeEntry( "AddCollection Commandline", cmd );
-}
-
-TQString Config::removeCollectionCommandLine() const
-{
- m_config->setGroup( CONFIG_GROUP );
- TQString cmd = m_config->readEntry( "RemoveCollection Commandline",
- DEFAULT_REMOVECOLLECTION_CMD );
- int index = cmd.find( "%h" );
- if ( index != -1 )
- cmd.replace( index, 2, QUOTE( mrmldDataDir() ) );
-
- index = cmd.find( "%e" );
- if ( index != -1 )
- cmd.replace( index, 2, TQTextCodec::codecForLocale()->mimeName() );
-
- return cmd;
-}
-
-void Config::setRemoveCollectionCommandLine( const TQString& cmd )
-{
- m_config->setGroup( CONFIG_GROUP );
- m_config->writeEntry( "RemoveCollection Commandline", cmd );
-}
-
-TQString Config::mrmldCommandline() const
-{
- ServerSettings settings = settingsForLocalHost();
-
- m_config->setGroup( CONFIG_GROUP );
- TQString cmd = m_config->readEntry( "MrmmlDaemon Commandline",
- settings.autoPort ?
- DEFAULT_MRMLD_CMD_AUTOPORT :
- DEFAULT_MRMLD_CMD );
-
- // add data directory and port to the commandline
- int index = cmd.find( "%p" );
- if ( index != -1 )
- {
- TQString port = settings.autoPort ?
- TQString() : TQString::number( settings.configuredPort );
- cmd.replace( index, 2, port );
- }
- index = cmd.find( "%d" );
- if ( index != -1 )
- {
- cmd.replace( index, 2, QUOTE( mrmldDataDir() ) );
- }
-
- tqDebug("***** commandline: %s", cmd.latin1());
-
- return cmd;
-}
-
-TQString Config::mrmldDataDir()
-{
- TQString dir = TDEGlobal::dirs()->saveLocation( "data",
- "kmrml/mrmld-data/" );
- if ( dir.isEmpty() ) // fallback
- dir = TQDir::homeDirPath() + "/";
-
- return dir;
-}
-
-void Config::setMrmldCommandLine( const TQString& cmd )
-{
- m_config->setGroup( CONFIG_GROUP );
- m_config->writeEntry( "MrmmlDaemon Commandline", cmd );
-}
-
-///////////////////////////////////////////////////////////////////
-///////////////////////////////////////////////////////////////////
-
-ServerSettings::ServerSettings()
- : configuredPort( 0 ),
- autoPort( true ),
- useAuth( false )
-{
-}
-
-ServerSettings::ServerSettings( const TQString& host, unsigned short int port,
- bool autoPort, bool useAuth,
- const TQString& user, const TQString& pass )
-{
- this->host = host;
- this->configuredPort = port;
- this->autoPort = autoPort;
- this->useAuth = useAuth;
- this->user = user;
- this->pass = pass;
-}
-
-// static
-ServerSettings ServerSettings::defaults()
-{
- return ServerSettings( DEFAULT_HOST, DEFAULT_PORT,
- (!strcmp(DEFAULT_HOST, "localhost") && DEFAULT_PORT),
- DEFAULT_AUTH, DEFAULT_USER, DEFAULT_PASS );
-}
-
-KURL ServerSettings::getUrl() const
-{
- KURL url;
- url.setProtocol( "mrml" );
- url.setHost( host );
- if ( !autoPort )
- url.setPort( configuredPort );
-
- if ( useAuth && user.isEmpty() )
- {
- url.setUser( user );
- url.setPass( pass );
- }
-
- return url;
-}
-
-unsigned short int ServerSettings::port() const
-{
- if ( autoPort )
- {
- TQString portsFile = Config::mrmldDataDir() + "gift-port.txt";
- TQFile file( portsFile );
- if ( file.open( IO_ReadOnly ) )
- {
- TQString line;
- (void) file.readLine( line, 6 );
-// tqDebug("**** read: %s", line.latin1());
-
- file.close();
-
- bool ok;
- unsigned short int p = line.toUShort( &ok );
- if ( ok )
- return p;
- }
- else
- kdWarning() << "Can't open \"" << portsFile << "\" to automatically determine the gift port" << endl;
- }
-
- return configuredPort;
-}