lib Library API Documentation

KoDocumentIface.cc

00001 /* This file is part of the KDE project 00002 Copyright (C) 2000 David Faure <faure@kde.org> 00003 00004 This library is free software; you can redistribute it and/or 00005 modify it under the terms of the GNU Library General Public 00006 License as published by the Free Software Foundation; either 00007 version 2 of the License. 00008 00009 This library is distributed in the hope that it will be useful, 00010 but WITHOUT ANY WARRANTY; without even the implied warranty of 00011 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 00012 Library General Public License for more details. 00013 00014 You should have received a copy of the GNU Library General Public License 00015 along with this library; see the file COPYING.LIB. If not, write to 00016 the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 00017 Boston, MA 02111-1307, USA. 00018 */ 00019 00020 #include "koDocument.h" 00021 #include "KoDocumentIface.h" 00022 #include "koDocumentInfoDlg.h" 00023 #include "koDocumentInfo.h" 00024 #include "koView.h" 00025 #include <kapplication.h> 00026 #include <dcopclient.h> 00027 #include <kdcopactionproxy.h> 00028 #include <kaction.h> 00029 #include <kdebug.h> 00030 #include <kdcoppropertyproxy.h> 00031 00032 //static 00033 QCString KoDocumentIface::newIfaceName() 00034 { 00035 static int s_docIFNumber = 0; 00036 QCString name; name.setNum( s_docIFNumber++ ); name.prepend("Document-"); 00037 return name; 00038 } 00039 00040 KoDocumentIface::KoDocumentIface( KoDocument * doc, const char * name ) 00041 : DCOPObject( name ? QCString(name) : newIfaceName() ) 00042 { 00043 m_pDoc = doc; 00044 m_actionProxy = new KDCOPActionProxy( doc->actionCollection(), this ); 00045 } 00046 00047 KoDocumentIface::~KoDocumentIface() 00048 { 00049 delete m_actionProxy; 00050 } 00051 00052 void KoDocumentIface::openURL( QString url ) 00053 { 00054 m_pDoc->openURL( KURL( url ) ); 00055 } 00056 00057 QString KoDocumentIface::url() 00058 { 00059 return m_pDoc->url().url(); 00060 } 00061 00062 bool KoDocumentIface::isModified() 00063 { 00064 return m_pDoc->isModified(); 00065 } 00066 00067 int KoDocumentIface::viewCount() 00068 { 00069 return m_pDoc->viewCount(); 00070 } 00071 00072 DCOPRef KoDocumentIface::view( int idx ) 00073 { 00074 QPtrList<KoView> views = m_pDoc->views(); 00075 KoView *v = views.at( idx ); 00076 if ( !v ) 00077 return DCOPRef(); 00078 00079 DCOPObject *obj = v->dcopObject(); 00080 00081 if ( !obj ) 00082 return DCOPRef(); 00083 00084 return DCOPRef( kapp->dcopClient()->appId(), obj->objId() ); 00085 } 00086 00087 DCOPRef KoDocumentIface::action( const QCString &name ) 00088 { 00089 return DCOPRef( kapp->dcopClient()->appId(), m_actionProxy->actionObjectId( name ) ); 00090 } 00091 00092 QCStringList KoDocumentIface::actions() 00093 { 00094 QCStringList res; 00095 QValueList<KAction *> lst = m_actionProxy->actions(); 00096 QValueList<KAction *>::ConstIterator it = lst.begin(); 00097 QValueList<KAction *>::ConstIterator end = lst.end(); 00098 for (; it != end; ++it ) 00099 res.append( (*it)->name() ); 00100 00101 return res; 00102 } 00103 00104 QMap<QCString,DCOPRef> KoDocumentIface::actionMap() 00105 { 00106 return m_actionProxy->actionMap(); 00107 } 00108 00109 void KoDocumentIface::saveAs( const QString & url ) 00110 { 00111 m_pDoc->saveAs( KURL( url ) ); 00112 } 00113 00114 void KoDocumentIface::setOutputMimeType( const QCString & mimetype ) 00115 { 00116 m_pDoc->setOutputMimeType( mimetype ); 00117 } 00118 00119 QString KoDocumentIface::documentInfoAuthorName() const 00120 { 00121 KoDocumentInfo * info = m_pDoc->documentInfo(); 00122 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00123 if ( !authorPage ) 00124 { 00125 kdWarning() << "Author information not found in documentInfo !" << endl; 00126 return QString::null; 00127 } 00128 else 00129 return authorPage->fullName(); 00130 } 00131 00132 QString KoDocumentIface::documentInfoEmail() const 00133 { 00134 KoDocumentInfo * info = m_pDoc->documentInfo(); 00135 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00136 if ( !authorPage ) 00137 { 00138 kdWarning() << "Author information not found in documentInfo !" << endl; 00139 return QString::null; 00140 } 00141 else 00142 return authorPage->email(); 00143 } 00144 00145 QString KoDocumentIface::documentInfoCompanyName() const 00146 { 00147 KoDocumentInfo * info = m_pDoc->documentInfo(); 00148 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00149 if ( !authorPage ) 00150 { 00151 kdWarning() << "Author information not found in documentInfo !" << endl; 00152 return QString::null; 00153 } 00154 else 00155 return authorPage->company(); 00156 } 00157 00158 QString KoDocumentIface::documentInfoTelephone() const 00159 { 00160 KoDocumentInfo * info = m_pDoc->documentInfo(); 00161 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00162 if ( !authorPage ) 00163 { 00164 kdWarning() << "Author information not found in documentInfo !" << endl; 00165 return QString::null; 00166 } 00167 else 00168 return authorPage->telephone(); 00169 00170 } 00171 QString KoDocumentIface::documentInfoFax() const 00172 { 00173 KoDocumentInfo * info = m_pDoc->documentInfo(); 00174 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00175 if ( !authorPage ) 00176 { 00177 kdWarning() << "Author information not found in documentInfo !" << endl; 00178 return QString::null; 00179 } 00180 else 00181 return authorPage->fax(); 00182 00183 } 00184 QString KoDocumentIface::documentInfoCountry() const 00185 { 00186 KoDocumentInfo * info = m_pDoc->documentInfo(); 00187 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00188 if ( !authorPage ) 00189 { 00190 kdWarning() << "Author information not found in documentInfo !" << endl; 00191 return QString::null; 00192 } 00193 else 00194 return authorPage->country(); 00195 00196 } 00197 QString KoDocumentIface::documentInfoPostalCode() const 00198 { 00199 KoDocumentInfo * info = m_pDoc->documentInfo(); 00200 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00201 if ( !authorPage ) 00202 { 00203 kdWarning() << "Author information not found in documentInfo !" << endl; 00204 return QString::null; 00205 } 00206 else 00207 return authorPage->postalCode(); 00208 00209 } 00210 QString KoDocumentIface::documentInfoCity() const 00211 { 00212 KoDocumentInfo * info = m_pDoc->documentInfo(); 00213 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00214 if ( !authorPage ) 00215 { 00216 kdWarning() << "Author information not found in documentInfo !" << endl; 00217 return QString::null; 00218 } 00219 else 00220 return authorPage->city(); 00221 00222 } 00223 00224 QString KoDocumentIface::documentInfoInitial() const 00225 { 00226 KoDocumentInfo * info = m_pDoc->documentInfo(); 00227 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00228 if ( !authorPage ) 00229 { 00230 kdWarning() << "Author information not found in documentInfo !" << endl; 00231 return QString::null; 00232 } 00233 else 00234 return authorPage->initial(); 00235 } 00236 00237 QString KoDocumentIface::documentInfoStreet() const 00238 { 00239 KoDocumentInfo * info = m_pDoc->documentInfo(); 00240 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00241 if ( !authorPage ) 00242 { 00243 kdWarning() << "Author information not found in documentInfo !" << endl; 00244 return QString::null; 00245 } 00246 else 00247 return authorPage->street(); 00248 00249 } 00250 00251 QString KoDocumentIface::documentInfoTitle() const 00252 { 00253 KoDocumentInfo * info = m_pDoc->documentInfo(); 00254 KoDocumentInfoAbout * aboutPage = static_cast<KoDocumentInfoAbout *>(info->page( "about" )); 00255 if ( !aboutPage ) 00256 { 00257 kdWarning() << "'About' page not found in documentInfo !" << endl; 00258 return QString::null; 00259 } 00260 else 00261 return aboutPage->title(); 00262 00263 } 00264 00265 QString KoDocumentIface::documentInfoAbstract() const 00266 { 00267 KoDocumentInfo * info = m_pDoc->documentInfo(); 00268 KoDocumentInfoAbout * aboutPage = static_cast<KoDocumentInfoAbout *>(info->page( "about" )); 00269 if ( !aboutPage ) 00270 { 00271 kdWarning() << "'About' page not found in documentInfo !" << endl; 00272 return QString::null; 00273 } 00274 else 00275 return aboutPage->abstract(); 00276 } 00277 00278 void KoDocumentIface::setDocumentInfoAuthorName(const QString & text) 00279 { 00280 KoDocumentInfo * info = m_pDoc->documentInfo(); 00281 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00282 if ( !authorPage ) 00283 { 00284 kdWarning() << "Author information not found in documentInfo !" << endl; 00285 } 00286 else 00287 authorPage->setFullName(text); 00288 00289 } 00290 00291 void KoDocumentIface::setDocumentInfoEmail(const QString &text) 00292 { 00293 KoDocumentInfo * info = m_pDoc->documentInfo(); 00294 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00295 if ( !authorPage ) 00296 { 00297 kdWarning() << "Author information not found in documentInfo !" << endl; 00298 } 00299 else 00300 authorPage->setEmail(text); 00301 } 00302 00303 void KoDocumentIface::setDocumentInfoCompanyName(const QString &text) 00304 { 00305 KoDocumentInfo * info = m_pDoc->documentInfo(); 00306 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00307 if ( !authorPage ) 00308 { 00309 kdWarning() << "Author information not found in documentInfo !" << endl; 00310 } 00311 else 00312 authorPage->setCompany(text); 00313 } 00314 00315 void KoDocumentIface::setDocumentInfoTelephone(const QString &text) 00316 { 00317 KoDocumentInfo * info = m_pDoc->documentInfo(); 00318 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00319 if ( !authorPage ) 00320 { 00321 kdWarning() << "Author information not found in documentInfo !" << endl; 00322 } 00323 else 00324 authorPage->setTelephone(text); 00325 00326 } 00327 00328 void KoDocumentIface::setDocumentInfoFax(const QString &text) 00329 { 00330 KoDocumentInfo * info = m_pDoc->documentInfo(); 00331 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00332 if ( !authorPage ) 00333 { 00334 kdWarning() << "Author information not found in documentInfo !" << endl; 00335 } 00336 else 00337 authorPage->setFax(text); 00338 } 00339 00340 void KoDocumentIface::setDocumentInfoCountry(const QString &text) 00341 { 00342 KoDocumentInfo * info = m_pDoc->documentInfo(); 00343 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00344 if ( !authorPage ) 00345 { 00346 kdWarning() << "Author information not found in documentInfo !" << endl; 00347 } 00348 else 00349 authorPage->setCountry(text); 00350 00351 } 00352 00353 void KoDocumentIface::setDocumentInfoTitle(const QString & text) 00354 { 00355 KoDocumentInfo * info = m_pDoc->documentInfo(); 00356 KoDocumentInfoAbout * aboutPage = static_cast<KoDocumentInfoAbout *>(info->page( "about" )); 00357 if ( !aboutPage ) 00358 { 00359 kdWarning() << "'About' page not found in documentInfo !" << endl; 00360 } 00361 else 00362 aboutPage->setTitle(text); 00363 } 00364 00365 void KoDocumentIface::setDocumentInfoPostalCode(const QString &text) 00366 { 00367 KoDocumentInfo * info = m_pDoc->documentInfo(); 00368 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00369 if ( !authorPage ) 00370 { 00371 kdWarning() << "Author information not found in documentInfo !" << endl; 00372 } 00373 else 00374 authorPage->setPostalCode(text); 00375 00376 } 00377 00378 00379 void KoDocumentIface::setDocumentInfoCity(const QString & text) 00380 { 00381 KoDocumentInfo * info = m_pDoc->documentInfo(); 00382 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00383 if ( !authorPage ) 00384 { 00385 kdWarning() << "Author information not found in documentInfo !" << endl; 00386 } 00387 else 00388 authorPage->setCity(text); 00389 } 00390 00391 void KoDocumentIface::setDocumentInfoInitial(const QString & text) 00392 { 00393 KoDocumentInfo * info = m_pDoc->documentInfo(); 00394 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00395 if ( !authorPage ) 00396 { 00397 kdWarning() << "Author information not found in documentInfo !" << endl; 00398 } 00399 else 00400 authorPage->setInitial(text); 00401 } 00402 00403 00404 void KoDocumentIface::setDocumentInfoStreet(const QString &text) 00405 { 00406 KoDocumentInfo * info = m_pDoc->documentInfo(); 00407 KoDocumentInfoAuthor * authorPage = static_cast<KoDocumentInfoAuthor *>(info->page( "author" )); 00408 if ( !authorPage ) 00409 { 00410 kdWarning() << "Author information not found in documentInfo !" << endl; 00411 } 00412 else 00413 authorPage->setStreet(text); 00414 00415 } 00416 00417 00418 void KoDocumentIface::setDocumentInfoAbstract(const QString &text) 00419 { 00420 KoDocumentInfo * info = m_pDoc->documentInfo(); 00421 KoDocumentInfoAbout * aboutPage = static_cast<KoDocumentInfoAbout *>(info->page( "about" )); 00422 if ( !aboutPage ) 00423 { 00424 kdWarning() << "'About' page not found in documentInfo !" << endl; 00425 } 00426 else 00427 aboutPage->setAbstract(text); 00428 } 00429 00430 QCStringList KoDocumentIface::functionsDynamic() 00431 { 00432 return DCOPObject::functionsDynamic() + KDCOPPropertyProxy::functions( m_pDoc ); 00433 } 00434 00435 bool KoDocumentIface::processDynamic( const QCString &fun, const QByteArray &data, 00436 QCString& replyType, QByteArray &replyData ) 00437 { 00438 if ( KDCOPPropertyProxy::isPropertyRequest( fun, m_pDoc ) ) 00439 return KDCOPPropertyProxy::processPropertyRequest( fun, data, replyType, replyData, m_pDoc ); 00440 00441 return DCOPObject::processDynamic( fun, data, replyType, replyData ); 00442 } 00443
KDE Logo
This file is part of the documentation for lib Library Version 1.3.3.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Sep 28 04:03:59 2004 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003