From 8cc40bd4a0a37152e7c566a7114d2bc8a6b0be9f Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lukas=20T=C3=B6nne?= <lukas.toenne@gmail.com>
Date: Thu, 6 Mar 2014 12:38:08 +0100
Subject: [PATCH] Blender Diffusion tool for QtCreator: Prints a url to
 Diffusion on developer.blender.org for easy online linking and code
 reference.

---
 .../externaltools/qtc_blender_diffusion.py    | 42 +++++++++++++++++++
 .../externaltools/qtc_blender_diffusion.xml   | 12 ++++++
 2 files changed, 54 insertions(+)
 create mode 100755 utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py
 create mode 100644 utils_ide/qtcreator/externaltools/qtc_blender_diffusion.xml

diff --git a/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py
new file mode 100755
index 0000000..915c949
--- /dev/null
+++ b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.py
@@ -0,0 +1,42 @@
+#!/usr/bin/env python3
+
+"""
+Takes 1 arg
+
+ qtc_blender_diffusion.py <file> <row>
+
+Currently GCC is assumed
+"""
+
+import sys
+import os
+import subprocess
+
+SOURCE_FILE = sys.argv[-2]
+SOURCE_ROW = sys.argv[-1]
+
+BASE_URL = "https://developer.blender.org/diffusion/B/browse"
+
+def main():
+    dirname, filename = os.path.split(SOURCE_FILE)
+
+    process = subprocess.Popen(["git", "rev-parse", "--symbolic-full-name", "--abbrev-ref", "@{u}"], stdout=subprocess.PIPE, cwd=dirname, universal_newlines=True)
+    output = process.communicate()[0]
+    branchname = output.rstrip().rsplit('/', 1)[-1]
+
+    process = subprocess.Popen(["git", "rev-parse", "--show-toplevel"], stdout=subprocess.PIPE, cwd=dirname, universal_newlines=True)
+    output = process.communicate()[0]
+    toplevel = output.rstrip()
+    filepath = os.path.relpath(SOURCE_FILE, toplevel)
+
+    url = '/'.join([BASE_URL, branchname, filepath]) + "$" + SOURCE_ROW
+
+    print(url)
+
+    # Maybe handy, but also annoying?
+    if "--browse" in sys.argv:
+        import webbrowser
+        webbrowser.open(url)
+
+if __name__ == "__main__":
+    main()
diff --git a/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.xml b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.xml
new file mode 100644
index 0000000..9bf3b73
--- /dev/null
+++ b/utils_ide/qtcreator/externaltools/qtc_blender_diffusion.xml
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--Written on Mi. Mär. 5 19:21:33 2014 by Qt Creator 3.0.0-->
+<externaltool id="qtc_blender_diffusion">
+    <description>Print a URL to Diffusion on developer.blender.org for online reference</description>
+    <displayname>Blender Diffusion</displayname>
+    <category>Documentation</category>
+    <executable output="showinpane" error="showinpane" modifiesdocument="no">
+        <path>/home/lukas/.config/QtProject/qtcreator/externaltools/qtc_blender_diffusion.py</path>
+        <arguments>%{CurrentDocument:FilePath} %{CurrentDocument:Row}</arguments>
+        <workingdirectory>%{CurrentDocument:Path}</workingdirectory>
+    </executable>
+</externaltool>
-- 
GitLab