diff options
author | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-02-01 23:11:34 -0600 |
---|---|---|
committer | Timothy Pearson <kb9vqf@pearsoncomputing.net> | 2013-02-01 23:11:34 -0600 |
commit | 65f5e7cb4d09977affa95100ef20ddbfa4620a34 (patch) | |
tree | 116347138c6081c5aa4bf1e0db4ddbb04d3f6d0e /kiosktool/kioskrun.h | |
parent | 3c66b171a6f0ad667c538fd727bbcef54af71d37 (diff) | |
download | kiosktool-65f5e7cb4d09977affa95100ef20ddbfa4620a34.tar.gz kiosktool-65f5e7cb4d09977affa95100ef20ddbfa4620a34.zip |
Rename many classes and header files to avoid conflicts with KDE4
Diffstat (limited to 'kiosktool/kioskrun.h')
-rw-r--r-- | kiosktool/kioskrun.h | 231 |
1 files changed, 231 insertions, 0 deletions
diff --git a/kiosktool/kioskrun.h b/kiosktool/kioskrun.h new file mode 100644 index 0000000..54a25a2 --- /dev/null +++ b/kiosktool/kioskrun.h @@ -0,0 +1,231 @@ +/* + * kioskrun.h + * + * Copyright (C) 2004 Waldo Bastian <bastian@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 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; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + */ +#ifndef _KIOSKRUN_H_ +#define _KIOSKRUN_H_ + +#include <tqdict.h> +#include <tqobject.h> +#include <tqregexp.h> +#include <tqstringlist.h> +#include <tqtimer.h> + +#include <dcopclient.h> +#include <dcopref.h> + +#include <kprogress.h> + +class ImmutableStatus; +class TDEConfig; +class TDEProcess; +class KSimpleConfig; + +class KioskGui; + +class KioskRun : public TQObject +{ + friend class KioskGui; + + Q_OBJECT + +public: + static KioskRun* self() { return s_self; } + + void setKdeDirs(const TQStringList &dirs); + void setUser(const TQString &user); + + TQString homeDir() { return m_homeDir; } + TQStringList kdeDirs() { return m_kdeDirs; } + TQString desktopPath() { return m_desktopPath; } + + // Locate existing anywhere + TQString locate(const char *resource, const TQString &filename=TQString()); + + // Locate for saving + TQString locateSave(const char *resource, const TQString &filename=TQString()); + + // Locate for reading saved changed + TQString locateLocal(const char *resource, const TQString &filename=TQString()); + + // Prepare runtime environment for run() + bool prepare(); + + // Update sycoca database in runtime environment + void updateSycoca(); + + // Request sycoca update in install environment after flushing config files + void scheduleSycocaUpdate(); + + // Request sycoca update in install environment + void forceSycocaUpdate(); + + // Run a program inside the runtime test environment + TDEProcess* run(const TQString &cmd, const TQStringList &args=TQStringList()); + + // A DCOPRef to make dcop calls into the runtime test environment + DCOPRef dcopRef(const TQCString &appId, const TQCString &objId); + + // A DCOPClient to make dcop calls into the runtime test environment + DCOPClient *dcopClient() { return m_dcopClient; } + + // Open config file in the install directory + TDEConfig *configFile(const TQString &filename); + + // Make config files temporary mutable. + void makeMutable(bool bMutable); + + // Returns whether specific config group is immutable, + // or entire file if group is empty + bool isConfigImmutable(const TQString &filename, const TQString &group); + + // Make specific config group immutable, + // or entire file if group is empty + void setConfigImmutable(const TQString &filename, const TQString &group, bool bImmutable); + + // Close all opened config files. + bool flushConfigCache(); + + // Return all config files created by the user + TQStringList newConfigFiles(); + + // Merge new settings from the test directory into the installation directory + void mergeConfigFile(const TQString &filename); + + // Lookup the setting for a custom action + bool lookupCustomAction(const TQString &action); + + // Change the setting for a custom action + void setCustomAction(const TQString &action, bool checked); + + // Create installation directory and its parent dirs + bool createDir(const TQString &dir); + + // Install file + bool install(const TQString &file, const TQString &destination); + + // Delete file + bool remove(const TQString &destination); + + // Move file or directory + bool move(const TQString &source, const TQString &destination, const TQStringList &files); + + // Delete directory in test home dir + void deleteDir(const TQString &); + + // Open /etc/kderc for writing + KSimpleConfig *openKderc(); + + // Install new /etc/kderc + bool closeKderc(); + + // Read information of profile @p profile + void getProfileInfo(const TQString &profile, TQString &description, TQString &installDir, TQString &installUser); + + // Store information for profile @p profile + bool setProfileInfo(const TQString &profile, const TQString &description, const TQString &installDir, const TQString &installUser, bool b=false, bool deleteFiles=true); + + // Get new, non-existing, profile name + TQString newProfile(); + + // Delete profile @p profile + bool deleteProfile(const TQString &profile, bool deleteFiles = true); + + // Get list of all existing profiles + TQStringList allProfiles(); + + // Maps a single group or user to a one or more profiles + typedef TQMap<TQString,TQStringList> ProfileMapping; + + // Read mappings between groups/users and profiles + void getUserProfileMappings( ProfileMapping &groups, ProfileMapping &users, TQStringList &groupOrder); + + // Store mappings between groups/users and profiles + bool setUserProfileMappings( const ProfileMapping &groups, const ProfileMapping &users, const TQStringList &groupOrder); + + // Read profile prefix + TQString getProfilePrefix(); + + // Store profile prefix + bool setProfilePrefix(const TQString &prefix); + + // Create upload directory + bool createRemoteDir(const KURL &dir); + + // Create upload directory and all its parent dirs and be polite if ask = true + bool createRemoteDirRecursive(const KURL &dir, bool ask); + + // Upload file + bool uploadRemote(const TQString &file, const KURL &dest); + +protected: + KioskRun( TQObject* parent = 0, const char* name = 0); + ~KioskRun(); + + bool setupRuntimeEnv(); + void shutdownRuntimeEnv(); + void setupConfigEnv(); + void shutdownConfigEnv(); + void applyEnvironment(TDEProcess *p); + + TQString saveImmutableStatus(const TQString &filename); + bool restoreImmutableStatus(const TQString &filename, bool force); + + void setCustomRestrictionFileBrowsing(bool restrict); + +private: + static KioskRun* s_self; + TQString m_homeDir; + TQString m_configDir; + TQString m_desktopPath; + TQString m_user; + TQStringList m_kdeDirs; + TQStringList m_xdgDataDirs; + TQStringList m_xdgConfigDirs; + DCOPClient *m_dcopClient; + TDEInstance *m_instance; + TDEInstance *m_saveInstance; + TQDict<TDEConfig> m_saveConfigCache; + TQDict<ImmutableStatus> m_immutableStatusCache; + bool m_noRestrictions; + bool m_forceSycocaUpdate; + bool m_isRoot; + + TQString m_kderc; + TQString m_localKderc; + KSimpleConfig *m_localKdercConfig; +}; + + +class KioskRunProgressDialog : public KProgressDialog +{ + Q_OBJECT + +public: + KioskRunProgressDialog(TQWidget *parent, const char *name, + const TQString &caption, const TQString &text); +public slots: + void slotProgress(); + void slotFinished(); + +private: + TQTimer m_timer; + int m_timeStep; +}; + + +#endif |