kio Library API Documentation

krun.h

00001 /* This file is part of the KDE project 00002 Copyright (C) 1998, 1999 Torben Weis <weis@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, or (at your option) any later version. 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 #ifndef __k_run_h__ 00021 #define __k_run_h__ 00022 00023 #include <sys/stat.h> 00024 #include <sys/types.h> 00025 00026 #include <qobject.h> 00027 #include <qtimer.h> 00028 #include <qstring.h> 00029 #include <kurl.h> 00030 #include <kstartupinfo.h> 00031 00032 class KProcess; 00033 class KService; 00034 namespace KIO { 00035 class Job; 00036 class StatJob; 00037 } 00038 00057 class KIO_EXPORT KRun : public QObject 00058 { 00059 Q_OBJECT 00060 public: 00084 KRun( const KURL& url, mode_t mode = 0, 00085 bool isLocalFile = false, bool showProgressInfo = true ); 00086 00111 KRun( const KURL& url, QWidget* window, mode_t mode = 0, 00112 bool isLocalFile = false, bool showProgressInfo = true ); 00113 00118 virtual ~KRun(); 00119 00126 void abort(); 00127 00133 bool hasError() const { return m_bFault; } 00134 00140 bool hasFinished() const { return m_bFinished; } 00141 00149 bool autoDelete() const { return m_bAutoDelete; } 00150 00159 void setAutoDelete(bool b) { m_bAutoDelete = b; } 00160 00169 void setPreferredService( const QString& desktopEntryName ); 00170 00178 void setRunExecutables(bool b); 00179 00187 void setEnableExternalBrowser(bool b); 00188 00199 // BIC merge second overload with first one, using tempFiles=false 00200 static pid_t run( const KService& _service, const KURL::List& _urls, bool tempFiles ); 00201 static pid_t run( const KService& _service, const KURL::List& _urls ); 00202 00215 static pid_t run( const QString& _exec, const KURL::List& _urls, 00216 const QString& _name = QString::null, 00217 const QString& _icon = QString::null, 00218 const QString& _obsolete1 = QString::null, 00219 const QString& _obsolete2 = QString::null ); 00220 00236 // BIC Merge second overload with first one using runExecutables=true, and 00237 // merge third overload with first one as well using tempFiles=false and 00238 // runExecutables=true 00239 static pid_t runURL( const KURL& _url, const QString& _mimetype, bool tempFile, bool runExecutables); 00240 static pid_t runURL( const KURL& _url, const QString& _mimetype, bool tempFile); 00241 static pid_t runURL( const KURL& _url, const QString& _mimetype ); 00242 00257 static pid_t runCommand( QString cmd ); 00258 00270 static pid_t runCommand( const QString& cmd, const QString & execName, const QString & icon ); 00271 00279 // BIC merge second overload with first one, using tempFiles=false 00280 static bool displayOpenWithDialog( const KURL::List& lst, bool tempFiles ); 00281 static bool displayOpenWithDialog( const KURL::List& lst ); 00282 00287 static void shellQuote( QString &_str ); 00288 00303 // BIC merge second overload with first one, using tempFiles=false 00304 static QStringList processDesktopExec(const KService &_service, const KURL::List &_urls, bool has_shell, bool tempFiles); 00305 static QStringList processDesktopExec(const KService &_service, const KURL::List &_urls, bool has_shell); 00306 00315 static QString binaryName( const QString & execLine, bool removePath ); 00316 00322 static bool isExecutable( const QString& serviceType ); 00323 00337 static bool isExecutableFile( const KURL& url, const QString &mimetype ); 00338 00343 static bool checkStartupNotify( const QString& binName, const KService* service, bool* silent_arg, QCString* wmclass_arg ); 00344 00345 signals: 00350 void finished(); 00355 void error(); 00356 00357 protected slots: 00358 void slotTimeout(); 00359 void slotScanFinished( KIO::Job * ); 00360 void slotScanMimeType( KIO::Job *, const QString &type ); 00361 virtual void slotStatResult( KIO::Job * ); 00362 00363 protected: 00364 virtual void init(); 00365 00366 virtual void scanFile(); 00367 00373 virtual void foundMimeType( const QString& _type ); 00374 00375 virtual void killJob(); 00376 00377 KURL m_strURL; 00378 bool m_bFault; 00379 bool m_bAutoDelete; 00380 bool m_bProgressInfo; 00381 bool m_bFinished; 00382 KIO::Job * m_job; 00383 QTimer m_timer; 00384 00389 bool m_bScanFile; 00390 bool m_bIsDirectory; 00391 00396 bool m_bInit; 00397 00398 bool m_bIsLocalFile; 00399 mode_t m_mode; 00400 00401 protected: 00402 virtual void virtual_hook( int id, void* data ); 00403 00404 private: 00405 void init (const KURL& url, QWidget* window, mode_t mode, 00406 bool isLocalFile, bool showProgressInfo); 00407 private: 00408 class KRunPrivate; 00409 KRunPrivate *d; 00410 }; 00411 00412 #ifndef KDE_NO_COMPAT 00413 00419 class KIO_EXPORT_DEPRECATED KOpenWithHandler 00420 { 00421 public: 00422 KOpenWithHandler() {} 00423 static bool exists() { return true; } 00424 }; 00425 #endif 00426 00433 class KIO_EXPORT KProcessRunner : public QObject 00434 { 00435 Q_OBJECT 00436 00437 public: 00438 00439 static pid_t run(KProcess *, const QString & binName); 00440 #ifdef Q_WS_X11 // We don't have KStartupInfo in Qt/Embedded 00441 static pid_t run(KProcess *, const QString & binName, const KStartupInfoId& id ); 00442 #endif 00443 00444 virtual ~KProcessRunner(); 00445 00446 pid_t pid() const; 00447 00448 protected slots: 00449 00450 void slotProcessExited(KProcess *); 00451 00452 private: 00453 00454 KProcessRunner(KProcess *, const QString & binName); 00455 #ifdef Q_WS_X11 // We don't have KStartupInfo in Qt/Embedded 00456 KProcessRunner(KProcess *, const QString & binName, const KStartupInfoId& id ); 00457 #endif 00458 KProcessRunner(); 00459 00460 KProcess * process_; 00461 QString binName; 00462 #ifdef Q_WS_X11 // We don't have KStartupInfo in Qt/Embedded 00463 KStartupInfoId id_; 00464 #endif 00465 }; 00466 00467 #endif
KDE Logo
This file is part of the documentation for kio Library Version 3.4.0.
Documentation copyright © 1996-2004 the KDE developers.
Generated on Tue Apr 12 23:09:23 2005 by doxygen 1.3.7 written by Dimitri van Heesch, © 1997-2003