diff options
Diffstat (limited to 'khotkeys/update/update.cpp')
-rw-r--r-- | khotkeys/update/update.cpp | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/khotkeys/update/update.cpp b/khotkeys/update/update.cpp new file mode 100644 index 000000000..ac96a9709 --- /dev/null +++ b/khotkeys/update/update.cpp @@ -0,0 +1,62 @@ +/**************************************************************************** + + KHotKeys + + Copyright (C) 2003 Lubos Lunak <[email protected]> + + Distributed under the terms of the GNU General Public License version 2. + +****************************************************************************/ + +#define _UPDATE_CPP_ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <kapplication.h> +#include <kcmdlineargs.h> +#include <kstandarddirs.h> +#include <kconfig.h> +#include <kdebug.h> +#include <dcopclient.h> + +#include <settings.h> + +using namespace KHotKeys; + +static const KCmdLineOptions options[] = + { + // no need for I18N_NOOP(), this is not supposed to be used directly + { "id <id>", "Id of the script to add to khotkeysrc.", 0 }, + KCmdLineLastOption + }; + +int main( int argc, char* argv[] ) + { + KCmdLineArgs::init( argc, argv, "khotkeys_update", "KHotKeys Update", + "KHotKeys update utility", "1.0" ); + KCmdLineArgs::addCmdLineOptions( options ); + KApplication app( false, true ); // X11 connection is necessary for KKey* stuff :-/ + KCmdLineArgs* args = KCmdLineArgs::parsedArgs(); + QCString id = args->getOption( "id" ); + QString file = locate( "data", "khotkeys/" + id + ".khotkeys" ); + if( file.isEmpty()) + { + kdWarning() << "File " << id << " not found!" << endl; + return 1; + } + init_global_data( false, &app ); + Settings settings; + settings.read_settings( true ); + KConfig cfg( file, true ); + if( !settings.import( cfg, false )) + { + kdWarning() << "Import of " << id << " failed!" << endl; + return 2; + } + settings.write_settings(); + QByteArray data; + kapp->dcopClient()->send( "khotkeys*", "khotkeys", "reread_configuration()", data ); + return 0; + } |