+ }\r
+ \r
+ // Edit existing links\r
+ String js = new String( "function getCursorPos() {"\r
+ +"var cursorPos;"\r
+ +"if (window.getSelection) {"\r
+ +" var selObj = window.getSelection();"\r
+ +" var selRange = selObj.getRangeAt(0);"\r
+ +" var workingNode = window.getSelection().anchorNode.parentNode;"\r
+ +" while(workingNode != null) { " \r
+ +" if (workingNode.nodeName.toLowerCase()=='a') workingNode.setAttribute('href','" +dialog.getUrl() +"');"\r
+ +" workingNode = workingNode.parentNode;"\r
+ +" }"\r
+ +"}"\r
+ +"} getCursorPos();");\r
+ browser.page().mainFrame().evaluateJavaScript(js);\r
+ \r
+ if (!dialog.getUrl().trim().equals("")) {\r
+ contentChanged();\r
+ return;\r
+ }\r
+ \r
+ // Remove URL\r
+ js = new String( "function getCursorPos() {"\r
+ +"var cursorPos;"\r
+ +"if (window.getSelection) {"\r
+ +" var selObj = window.getSelection();"\r
+ +" var selRange = selObj.getRangeAt(0);"\r
+ +" var workingNode = window.getSelection().anchorNode.parentNode;"\r
+ +" while(workingNode != null) { " \r
+ +" if (workingNode.nodeName.toLowerCase()=='a') { "\r
+ +" workingNode.removeAttribute('href');"\r
+ +" workingNode.removeAttribute('title');"\r
+ +" var text = document.createTextNode(workingNode.innerText);"\r
+ +" workingNode.parentNode.insertBefore(text, workingNode);"\r
+ +" workingNode.parentNode.removeChild(workingNode);"\r
+ +" }"\r
+ +" workingNode = workingNode.parentNode;"\r
+ +" }"\r
+ +"}"\r
+ +"} getCursorPos();");\r
+ browser.page().mainFrame().evaluateJavaScript(js);\r
+ \r
+ contentChanged();\r
+\r
+ \r
+ }\r
+ \r
+ \r
+ // Insert a hyperlink\r
+ public void insertLatex() {\r
+ editLatex(null);\r
+ }\r
+ public void editLatex(String guid) {\r
+ logger.log(logger.EXTREME, "Inserting latex");\r
+ String text = browser.selectedText();\r
+ if (text.trim().equalsIgnoreCase("")) {\r
+ InsertLatexImage dialog = new InsertLatexImage();\r
+ if (guid != null) {\r
+ String formula = conn.getNoteTable().noteResourceTable.getNoteSourceUrl(guid).replace("http://latex.codecogs.com/gif.latex?", "");\r
+ dialog.setFormula(formula);\r
+ }\r
+ dialog.exec();\r
+ if (!dialog.okPressed()) {\r
+ logger.log(logger.EXTREME, "Edit LaTex canceled");\r
+ return;\r
+ }\r
+ text = dialog.getFormula().trim();\r
+ }\r
+ blockApplication.emit(new Long(5000));\r
+ logger.log(logger.EXTREME, "Inserting LaTeX formula:" +text);\r
+ latexGuid = guid;\r
+ text = StringUtils.replace(text, "'", "\\'");\r
+ String url = "http://latex.codecogs.com/gif.latex?" +text;\r
+ QNetworkAccessManager manager = new QNetworkAccessManager(this);\r
+ manager.finished.connect(this, "insertLatexImageReady(QNetworkReply)");\r
+ manager.get(new QNetworkRequest(new QUrl(url)));\r
+ }\r
+ \r
+ public void insertLatexImageReady(QNetworkReply reply) {\r
+ if (reply.error() != NetworkError.NoError) \r
+ return;\r
+ \r
+ QByteArray image = reply.readAll();\r
+\r
+\r
+ Resource newRes = null;\r
+ QFile tfile;\r
+ String path;\r
+ if (latexGuid == null) {\r
+ path = Global.getFileManager().getResDirPath("latex-temp.gif");\r
+ tfile = new QFile(path);\r
+ tfile.open(new QIODevice.OpenMode(QIODevice.OpenModeFlag.WriteOnly));\r
+ tfile.write(image);\r
+ tfile.close();\r
+ newRes = createResource(path,0,"image/gif", false);\r
+ path = Global.getFileManager().getResDirPath(newRes.getGuid()+".gif");\r
+ tfile.rename(path);\r