Skip to content

Instantly share code, notes, and snippets.

@NathanW2
Last active August 29, 2015 14:19
Show Gist options
  • Select an option

  • Save NathanW2/3b9dc774f6086c70c7f5 to your computer and use it in GitHub Desktop.

Select an option

Save NathanW2/3b9dc774f6086c70c7f5 to your computer and use it in GitHub Desktop.
Project auto complete for QGIS Command Bar
def complete_projects(argname, data):
# TODO Add auto complete for paths
projects = []
for path in project_paths:
projects += [os.path.basename(f) for f in glob.glob(path + "/*.qgs")]
return projects
@command.command("Name")
@command.complete_with(name=complete_projects)
def load_project(name):
"""
Load a project from the set project paths
"""
_name = name
name += ".qgs"
for path in project_paths:
for root, dirs, files in os.walk(path):
if name in files:
path = os.path.join(root, name)
iface.addProject(path)
return
iface.addProject(_name)
def vector_layers(argname, data):
return [layer.name() for layer in QgsMapLayerRegistry.instance().mapLayers().values()]
def is_vector_layer(data):
try:
layer = layer_by_name(data)
vector = layer.type() == QgsMapLayer.VectorLayer
if vector:
return True, ""
else:
return False, "Is not vector layer"
except IndexError:
return False, "Layer not found"
@command.command("layer name")
@command.complete_with(tablename=vector_layers)
@command.check(tablename=is_vector_layer)
def table(tablename):
if not tablename.strip():
layer = iface.activeLayer()
else:
layer = layer_by_name(tablename)
iface.showAttributeTable(layer)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment