mirror of
https://github.com/qgis/QGIS.git
synced 2025-02-23 00:02:38 -05:00
49 lines
2.2 KiB
Python
Executable File
49 lines
2.2 KiB
Python
Executable File
#!/usr/bin/python
|
|
"""
|
|
/***************************************************************************
|
|
context_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"
|