From 01ea042598d18846c9ce1d3decae0bc82ecde355 Mon Sep 17 00:00:00 2001 From: gsherman Date: Tue, 17 Nov 2009 00:41:55 +0000 Subject: [PATCH] Added a Python script for generating unique context ids for creating context sensitive help. The script requires Python 2.5. See comments at the head of the script for more information. git-svn-id: http://svn.osgeo.org/qgis/trunk@12156 c8812cc2-4d05-0410-92ff-de0c093fc19c --- scripts/context_help_id.py | 48 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 48 insertions(+) create mode 100755 scripts/context_help_id.py diff --git a/scripts/context_help_id.py b/scripts/context_help_id.py new file mode 100755 index 00000000000..018ed44ee02 --- /dev/null +++ b/scripts/context_help_id.py @@ -0,0 +1,48 @@ +#!/usr/bin/python +""" +/*************************************************************************** + contxt_help_id.py + ------------------- + begin : 2009-11-16 + copyright : (C) 2009 by Gary E.Sherman + email : gsherman at mrcc.com + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + + This script generates a unique context id based for use in the QGIS + context sensitive help system. It uses the SHA1 hash for the class name + and converts the first 12 characters to a unique integer. + + To create a context id, pass the name of the QGIS class on the command line. + Example: + ./context_help_id.py QgsAbout + + This script requires Python 2.5 or higher (hashlib was introduced at 2.5). + + NOTE: Due to a change in the way context ids are generated, ids + generated by the old method (Java hashCode function) will be different than + the id generated by the new method for the same class. +""" +import hashlib +import sys +# check to see if a class name was specified and if so, craete the context id +if len(sys.argv) > 1: + hash = hashlib.sha1() + # set the hash to the name passed on the command line + hash.update(sys.argv[1]) + # generate the context id by converting the first 12 characters of the hash + # to decimal + context_id = int(hash.hexdigest()[:12],16) + # print the result + print context_id +else: + # if no class name was specified, give a bit of help + print "To generate a context sensitive help id, specify the QGIS class name on the command line"