OSDN Git Service

Add some of the context menu options to the main menu bar.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / BrowserWindow.java
index 052bad6..879f899 100644 (file)
@@ -167,7 +167,7 @@ public class BrowserWindow extends QWidget {
        private boolean extendedOn;\r
        public boolean buttonsVisible;\r
        private final String iconPath;\r
-       private final ContentView browser;\r
+       public final ContentView browser;\r
        private final QTextEdit sourceEdit;\r
        private String sourceEditHeader;\r
        Highlighter syntaxHighlighter;\r
@@ -711,6 +711,7 @@ public class BrowserWindow extends QWidget {
                alteredTime.setEnabled(!v);\r
                subjectTime.setEnabled(!v);\r
                getBrowser().setEnabled(true);\r
+               getBrowser().page().setContentEditable(!v);\r
 //             getBrowser().setEnabled(!v);\r
        }\r
        \r
@@ -1099,8 +1100,6 @@ public class BrowserWindow extends QWidget {
                }\r
                QClipboard clipboard = QApplication.clipboard();\r
                QMimeData mime = clipboard.mimeData();\r
-               \r
-//              String x = mime.html();\r
 \r
                if (mime.hasImage()) {\r
                        logger.log(logger.EXTREME, "Image paste found");\r
@@ -1112,7 +1111,7 @@ public class BrowserWindow extends QWidget {
 \r
                if (mime.hasUrls()) {\r
                        logger.log(logger.EXTREME, "URL paste found");\r
-                       if (!mime.text().startsWith("evernote:")) {\r
+                       if (mime.text().startsWith("evernote:")) {\r
                                handleNoteLink(mime);\r
                        } else {\r
                                handleUrls(mime);\r
@@ -1520,7 +1519,7 @@ public class BrowserWindow extends QWidget {
        public void editLatex(String guid) {\r
                logger.log(logger.EXTREME, "Inserting latex");\r
                String text = browser.selectedText();\r
-               if (text.trim().equalsIgnoreCase(" ") || text.trim().equalsIgnoreCase("")) {\r
+               if (text.trim().equalsIgnoreCase("\n") || 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
@@ -2039,9 +2038,12 @@ public class BrowserWindow extends QWidget {
                        return;\r
                \r
                // If we have a real change, we need to save it.\r
-               noteSignal.titleChanged.emit(currentNote.getGuid(), titleLabel.text().trim());\r
-               currentNote.setTitle(titleLabel.text().trim());\r
-               saveNoteTitle = titleLabel.text().trim();\r
+               String text = titleLabel.text().trim();\r
+               if (text.equals("")) \r
+                       text = tr("Untitled Note");\r
+               noteSignal.titleChanged.emit(currentNote.getGuid(), text);\r
+               currentNote.setTitle(text);\r
+               saveNoteTitle = text;\r
                checkNoteTitle();\r
        }\r
 \r
@@ -2146,28 +2148,30 @@ public class BrowserWindow extends QWidget {
                String text = browser.page().currentFrame().toPlainText();\r
                if (saveNoteTitle == null)\r
                        saveNoteTitle = new String();\r
+               text = text.trim();\r
+               if (!saveNoteTitle.trim().equals("") && !saveNoteTitle.trim().equals("Untitled Note"))\r
+                       text = saveNoteTitle.trim();\r
+               int newLine = text.indexOf("\n");\r
+               if (newLine > 0)\r
+                       text = text.substring(0,newLine);\r
                if (saveNoteTitle.trim().equals("") || saveNoteTitle.trim().equals("Untitled Note")) {\r
-                       int newLine = text.indexOf("\n");\r
-                       if (newLine > 0) {\r
-                               text = text.substring(0, newLine);\r
-                               if (text.trim().equals(""))\r
-                                       text = tr("Untitled Note");\r
+                       if (text.trim().equals(""))\r
+                               text = tr("Untitled Note");\r
                                titleLabel.setText(text);\r
-                       } else {\r
-                               if (text.length() > Constants.EDAM_NOTE_TITLE_LEN_MAX)\r
-                                       titleLabel.setText(text.substring(0, Constants.EDAM_NOTE_TITLE_LEN_MAX));\r
-                               else {\r
-                                       titleLabel.blockSignals(true);\r
-                                       if (text.trim().equals(""))\r
-                                               titleLabel.setText(tr("Untitled Note"));\r
-                                       else\r
-                                               titleLabel.setText(text);\r
-                                       titleLabel.blockSignals(false);\r
-                               }\r
+               } else {\r
+                       if (text.length() > Constants.EDAM_NOTE_TITLE_LEN_MAX)\r
+                               titleLabel.setText(text.substring(0, Constants.EDAM_NOTE_TITLE_LEN_MAX));\r
+                       else {\r
+                               titleLabel.blockSignals(true);\r
+                               if (text.trim().equals(""))\r
+                                       titleLabel.setText(tr("Untitled Note"));\r
+                               else\r
+                                       titleLabel.setText(text);\r
+                               titleLabel.blockSignals(false);\r
                        }\r
-                       if (currentNote != null && titleLabel != null)\r
-                               noteSignal.titleChanged.emit(currentNote.getGuid(), titleLabel.text());\r
                }\r
+               if (currentNote != null && titleLabel != null && !currentNote.getTitle().equals(text))\r
+                       noteSignal.titleChanged.emit(currentNote.getGuid(), text);\r
        }\r
 \r
        // Return the note contents so we can email them\r
@@ -2406,13 +2410,14 @@ public class BrowserWindow extends QWidget {
                                imageURL = file.fileName() + ".png";\r
                                }\r
                        }\r
-                                               \r
+                       \r
                        logger.log(logger.EXTREME, "Generating link tags");\r
                        buffer.delete(0, buffer.length());\r
                        buffer.append("<a en-tag=\"en-media\" guid=\"" +newRes.getGuid()+"\" ");\r
                        buffer.append(" onContextMenu=\"window.jambi.imageContextMenu(&apos;")\r
                      .append(Global.getFileManager().getResDirPath(fileName))\r
-                     .append("&apos;);\" ");                   buffer.append("type=\"" + mimeType + "\" href=\"nnres://" + fileName +"\" hash=\""+Global.byteArrayToHexString(newRes.getData().getBodyHash()) +"\" >");\r
+                     .append("&apos;);\" ");                   \r
+                       buffer.append("type=\"" + mimeType + "\" href=\"nnres://" + fileName +"\" hash=\""+Global.byteArrayToHexString(newRes.getData().getBodyHash()) +"\" >");\r
                        buffer.append("<img src=\"" + imageURL + "\" title=\"" +newRes.getAttributes().getFileName());\r
                        buffer.append("\"></img>");\r
                        buffer.append("</a>");\r
@@ -2424,17 +2429,28 @@ public class BrowserWindow extends QWidget {
 \r
        private Resource createResource(String url, int sequence, String mime, boolean attachment) {\r
                logger.log(logger.EXTREME, "Inside create resource");\r
-               QFile resourceFile;\r
+               QFile resourceFile; \r
+               //These two lines are added to handle odd characters in the name like #.  Without it\r
+               // toLocalFile() chokes and returns the wrong name.\r
+               logger.log(logger.EXTREME, "File URL:" +url);\r
+               String whichOS = System.getProperty("os.name");\r
+               if (whichOS.contains("Windows")) \r
+                       url = url.replace("file:///", "");\r
+               else\r
+                       url = url.replace("file://", "");\r
                String urlTest = new QUrl(url).toLocalFile();\r
+               logger.log(logger.EXTREME, "File URL toLocalFile():" +urlTest);\r
+               urlTest = url;\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
+//             url = url.replace("/", File.separator);\r
+               logger.log(logger.EXTREME, "Reading from file to create resource:" +url);\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
+       logger.log(logger.EXTREME, "Error opening file "+url.toString()  +": "+resourceFile.errorString());\r
        byte[] fileData = resourceFile.readAll().toByteArray();\r
        resourceFile.close();\r
+       logger.log(logger.EXTREME, "File Length: " +fileData.length);\r
        if (fileData.length == 0)\r
                return null;\r
        MessageDigest md;\r