kcmoduleinfo.cpp
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025 #include "kcmoduleinfo.h"
00026
00027 #include <kdesktopfile.h>
00028 #include <kdebug.h>
00029 #include <kglobal.h>
00030 #include <kstandarddirs.h>
00031 #include <klocale.h>
00032
00033 KCModuleInfo::KCModuleInfo(const QString& desktopFile)
00034 : _fileName(desktopFile), d(0L)
00035 {
00036 _allLoaded = false;
00037
00038
00039 KService::Ptr sptr = KService::serviceByStorageId(desktopFile);
00040 if ( !sptr )
00041 {
00042 kdWarning() << "Could not find the service " << desktopFile << endl;
00043 return;
00044 }
00045 init( sptr );
00046 }
00047
00048 KCModuleInfo::KCModuleInfo( KService::Ptr moduleInfo )
00049 : _fileName( moduleInfo->desktopEntryPath() )
00050 {
00051 kdDebug() << k_funcinfo << _fileName << endl;
00052 _allLoaded = false;
00053
00054 init(moduleInfo);
00055 }
00056
00057 KCModuleInfo::KCModuleInfo( const KCModuleInfo &rhs )
00058 : d( 0 )
00059 {
00060 ( *this ) = rhs;
00061 }
00062
00063
00064
00065
00066 KCModuleInfo &KCModuleInfo::operator=( const KCModuleInfo &rhs )
00067 {
00068 _keywords = rhs._keywords;
00069 _name = rhs._name;
00070 _icon = rhs._icon;
00071 _lib = rhs._lib;
00072 _handle = rhs._handle;
00073 _fileName = rhs._fileName;
00074 _doc = rhs._doc;
00075 _comment = rhs._comment;
00076 _needsRootPrivileges = rhs._needsRootPrivileges;
00077 _isHiddenByDefault = rhs._isHiddenByDefault;
00078 _allLoaded = rhs._allLoaded;
00079 _service = rhs._service;
00080
00081
00082
00083 return *this;
00084 }
00085
00086 bool KCModuleInfo::operator==( const KCModuleInfo & rhs ) const
00087 {
00088 return ( ( _name == rhs._name ) && ( _lib == rhs._lib ) && ( _fileName == rhs._fileName ) );
00089 }
00090
00091 bool KCModuleInfo::operator!=( const KCModuleInfo & rhs ) const
00092 {
00093 return ! operator==( rhs );
00094 }
00095
00096 KCModuleInfo::~KCModuleInfo() { }
00097
00098 void KCModuleInfo::init(KService::Ptr s)
00099 {
00100 if ( !s )
00101 return;
00102
00103 _service = s;
00104
00105 setName(_service->name());
00106 setComment(_service->comment());
00107 setIcon(_service->icon());
00108
00109
00110 setLibrary(_service->library());
00111
00112
00113 setKeywords(_service->keywords());
00114 }
00115
00116 void
00117 KCModuleInfo::loadAll()
00118 {
00119 if( !_service )
00120 return;
00121
00122 _allLoaded = true;
00123
00124
00125 setHandle(_service->property("X-KDE-FactoryName", QVariant::String).toString());
00126
00127 QVariant tmp;
00128
00129
00130 tmp = _service->property( "X-KDE-Weight", QVariant::Int );
00131 setWeight( tmp.isValid() ? tmp.toInt() : 100 );
00132
00133
00134 tmp = _service->property( "X-KDE-RootOnly", QVariant::Bool );
00135 setNeedsRootPrivileges( tmp.isValid() ? tmp.toBool() : false );
00136
00137
00138
00139 tmp = _service->property( "X-KDE-IsHiddenByDefault", QVariant::Bool );
00140 setIsHiddenByDefault( tmp.isValid() ? tmp.toBool() : false );
00141
00142
00143 setDocPath( _service->property( "DocPath", QVariant::String ).toString() );
00144 }
00145
00146 QString
00147 KCModuleInfo::docPath() const
00148 {
00149 if (!_allLoaded)
00150 const_cast<KCModuleInfo*>(this)->loadAll();
00151
00152 return _doc;
00153 }
00154
00155 QString
00156 KCModuleInfo::handle() const
00157 {
00158 if (!_allLoaded)
00159 const_cast<KCModuleInfo*>(this)->loadAll();
00160
00161 if (_handle.isEmpty())
00162 return _lib;
00163
00164 return _handle;
00165 }
00166
00167 int
00168 KCModuleInfo::weight() const
00169 {
00170 if (!_allLoaded)
00171 const_cast<KCModuleInfo*>(this)->loadAll();
00172
00173 return _weight;
00174 }
00175
00176 bool
00177 KCModuleInfo::needsRootPrivileges() const
00178 {
00179 if (!_allLoaded)
00180 const_cast<KCModuleInfo*>(this)->loadAll();
00181
00182 return _needsRootPrivileges;
00183 }
00184
00185 bool
00186 KCModuleInfo::isHiddenByDefault() const
00187 {
00188 if (!_allLoaded)
00189 const_cast<KCModuleInfo*>(this)->loadAll();
00190
00191 return _isHiddenByDefault;
00192 }
00193
00194
This file is part of the documentation for kutils Library Version 3.3.2.