boolean insertHyperlink = true;\r
boolean insideTable = false;\r
boolean insideEncryption = false;\r
- public Signal1<Long> blockApplication;\r
+ public Signal1<BrowserWindow> blockApplication;\r
public Signal0 unblockApplication;\r
+ public boolean awaitingHttpResponse;\r
+ public long unblockTime;\r
String latexGuid; // This is set if we are editing an existing LaTeX formula. Useful to track guid.\r
\r
\r
tagEdit.setPalette(pal);\r
notebookBox.setPalette(pal);\r
\r
- blockApplication = new Signal1<Long>();\r
+ blockApplication = new Signal1<BrowserWindow>();\r
unblockApplication = new Signal0();\r
\r
logger.log(logger.HIGH, "Browser setup complete");\r
alteredTime.setEnabled(!v);\r
subjectTime.setEnabled(!v);\r
getBrowser().setEnabled(true);\r
- getBrowser().setEnabled(!v);\r
+// getBrowser().setEnabled(!v);\r
}\r
\r
// expose this class to Javascript on the web page\r
@SuppressWarnings("unused")\r
private void linkClicked(QUrl url) {\r
logger.log(logger.EXTREME, "URL Clicked: " +url.toString());\r
- if (url.toString().startsWith("latex://")) {\r
+ if (url.toString().startsWith("latex:")) {\r
int position = url.toString().lastIndexOf(".");\r
String guid = url.toString().substring(0,position);\r
position = guid.lastIndexOf("/");\r
}\r
text = dialog.getFormula().trim();\r
}\r
- blockApplication.emit(new Long(5000));\r
+ blockApplication.emit(this);\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
+ logger.log(logger.EXTREME, "Sending request to codecogs --> " + url);\r
QNetworkAccessManager manager = new QNetworkAccessManager(this);\r
manager.finished.connect(this, "insertLatexImageReady(QNetworkReply)");\r
+ unblockTime = new GregorianCalendar().getTimeInMillis()+5000;\r
+ awaitingHttpResponse = true;\r
manager.get(new QNetworkRequest(new QUrl(url)));\r
}\r
\r
public void insertLatexImageReady(QNetworkReply reply) {\r
+ logger.log(logger.EXTREME, "Response received from CodeCogs");\r
if (reply.error() != NetworkError.NoError) \r
return;\r
+\r
+ unblockTime = -1;\r
+ if (!awaitingHttpResponse)\r
+ return;\r
\r
+ awaitingHttpResponse = false;\r
+ QUrl replyUrl = reply.url(); \r
QByteArray image = reply.readAll();\r
-\r
+ reply.close();\r
+ logger.log(logger.EXTREME, "New image size: " +image.size());\r
\r
Resource newRes = null;\r
QFile tfile;\r
String path;\r
if (latexGuid == null) {\r
+ logger.log(logger.EXTREME, "Creating temporary gif"); \r
path = Global.getFileManager().getResDirPath("latex-temp.gif");\r
tfile = new QFile(path);\r
tfile.open(new QIODevice.OpenMode(QIODevice.OpenModeFlag.WriteOnly));\r
+ logger.log(logger.EXTREME, "File Open: " +tfile.errorString());\r
tfile.write(image);\r
+ logger.log(logger.EXTREME, "Bytes writtes: "+tfile.size());\r
tfile.close();\r
+ logger.log(logger.EXTREME, "Creating resource");\r
newRes = createResource(path,0,"image/gif", false);\r
+ logger.log(logger.EXTREME, "Renaming temporary file to " +newRes.getGuid()+".gif");\r
path = Global.getFileManager().getResDirPath(newRes.getGuid()+".gif");\r
tfile.rename(path);\r
} else {\r
tfile.open(new QIODevice.OpenMode(QIODevice.OpenModeFlag.WriteOnly));\r
tfile.write(image);\r
tfile.close();\r
+ newRes.getData().setBody(image.toByteArray());\r
+ conn.getNoteTable().noteResourceTable.updateNoteResource(newRes, true);\r
}\r
\r
-\r
- newRes.getAttributes().setSourceURL(reply.url().toString());\r
-// newRes.getData().setBody(image.toByteArray());\r
-// conn.getNoteTable().noteResourceTable.updateNoteResource(newRes, true);\r
- conn.getNoteTable().noteResourceTable.updateNoteSourceUrl(newRes.getGuid(), reply.url().toString(), true);\r
+ logger.log(logger.EXTREME, "Setting source: " +replyUrl.toString());\r
+ newRes.getAttributes().setSourceURL(replyUrl.toString());\r
+ conn.getNoteTable().noteResourceTable.updateNoteSourceUrl(newRes.getGuid(), replyUrl.toString(), true);\r
\r
for(int i=0; i<currentNote.getResourcesSize(); i++) {\r
if (currentNote.getResources().get(i).getGuid().equals(newRes.getGuid())) {\r
// just write out the file (which is aleady done) and reload.\r
if (latexGuid == null) {\r
StringBuffer buffer = new StringBuffer(100);\r
- String formula = reply.url().toString().toLowerCase().replace("http://latex.codecogs.com/gif.latex?", "");\r
- buffer.append("<a href=\"latex://"+path.replace("\\", "/")+"\" title=\""+formula+"\"><img src=\"");\r
+ String formula = replyUrl.toString().toLowerCase().replace("http://latex.codecogs.com/gif.latex?", "");\r
+ buffer.append("<a href=\"latex://"+path.replace("\\", "/")+"\" title=\""+formula+"\""\r
+ +"><img src=\"");\r
buffer.append(path.replace("\\", "/"));\r
- buffer.append("\" en-tag=en-media type=\"image/gif\""\r
+ buffer.append("\" en-tag=\"en-latex\" type=\"image/gif\""\r
+" hash=\""+Global.byteArrayToHexString(newRes.getData().getBodyHash()) +"\""\r
+" guid=\"" +newRes.getGuid() +"\""\r
+ " /></a>");\r
browser.page().mainFrame().evaluateJavaScript(\r
script_start + buffer + script_end);\r
}\r
+\r
+ logger.log(logger.EXTREME, "New HTML set\n" +browser.page().currentFrame().toHtml());\r
QWebSettings.setMaximumPagesInCache(0);\r
QWebSettings.setObjectCacheCapacities(0, 0, 0);\r
- browser.setHtml(browser.page().mainFrame().toHtml());\r
+ \r
+ browser.page().mainFrame().setHtml(browser.page().mainFrame().toHtml());\r
browser.reload();\r
contentChanged();\r
- resourceSignal.contentChanged.emit(path);\r
+// resourceSignal.contentChanged.emit(path);\r
+ unblockTime = -1;\r
unblockApplication.emit();\r
+\r
return;\r
\r
}\r
if (!urlTest.equals(""))\r
url = urlTest;\r
url = url.replace("/", File.separator);\r
+ logger.log(logger.EXTREME, "Reading from file to create resource");\r
resourceFile = new QFile(url); \r
resourceFile.open(new QIODevice.OpenMode(QIODevice.OpenModeFlag.ReadOnly));\r
+// logger.log(logger.EXTREME, "Error opening file "+url.toString() +": "+resourceFile.errorString());\r
byte[] fileData = resourceFile.readAll().toByteArray();\r
resourceFile.close();\r
if (fileData.length == 0)\r
return null;\r
MessageDigest md;\r
try {\r
+ logger.log(logger.EXTREME, "Generating MD5");\r
md = MessageDigest.getInstance("MD5");\r
md.update(fileData);\r
byte[] hash = md.digest();\r
r.setAttributes(a);\r
\r
conn.getNoteTable().noteResourceTable.saveNoteResource(r, true);\r
+ logger.log(logger.EXTREME, "Resource created");\r
return r;\r
} catch (NoSuchAlgorithmException e1) {\r
e1.printStackTrace();\r