OSDN Git Service

Cleanup compiler warning messages and alter backup & restore to handle new database...
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / BrowserWindow.java
index e9005dd..51ea0ea 100644 (file)
@@ -63,6 +63,7 @@ import com.trolltech.qt.core.QFile;
 import com.trolltech.qt.core.QFileSystemWatcher;\r
 import com.trolltech.qt.core.QIODevice;\r
 import com.trolltech.qt.core.QMimeData;\r
+import com.trolltech.qt.core.QTextCodec;\r
 import com.trolltech.qt.core.QUrl;\r
 import com.trolltech.qt.core.Qt.Key;\r
 import com.trolltech.qt.core.Qt.KeyboardModifier;\r
@@ -118,6 +119,7 @@ import cx.fbn.nevernote.signals.NoteSignal;
 import cx.fbn.nevernote.sql.DatabaseConnection;\r
 import cx.fbn.nevernote.utilities.ApplicationLogger;\r
 import cx.fbn.nevernote.utilities.FileUtils;\r
+import cx.fbn.nevernote.utilities.Pair;\r
 \r
 public class BrowserWindow extends QWidget {\r
 \r
@@ -244,11 +246,11 @@ public class BrowserWindow extends QWidget {
                        spellCheckDialog = new SpellCheck(checker);\r
                }\r
                public void spellingError(SpellCheckEvent event) {\r
-                       System.out.println("**" +event.getInvalidWord());\r
                        errorsFound = true;\r
                        spellCheckDialog.setWord(event.getInvalidWord());\r
 \r
-                   List<Word> suggestions = event.getSuggestions();\r
+                   @SuppressWarnings("unchecked")\r
+                       List<Word> suggestions = event.getSuggestions();\r
                    spellCheckDialog.clearSuggestions();\r
                    if (!suggestions.isEmpty()) {\r
 //                    spellCheckDialog.setCurrentSuggestion(suggestions.get(0).getWord());\r
@@ -664,7 +666,8 @@ public class BrowserWindow extends QWidget {
        // New Editor Button\r
        private QPushButton newEditorButton(String name, String toolTip) {\r
                QPushButton button = new QPushButton();\r
-               QIcon icon = new QIcon(iconPath + name + ".gif");\r
+//             QIcon icon = new QIcon(iconPath + name + ".gif");\r
+               QIcon icon = new QIcon(iconPath + name + ".png");\r
                button.setIcon(icon);\r
                button.setToolTip(toolTip);\r
                button.clicked.connect(this, name + "Clicked()");\r
@@ -673,7 +676,8 @@ public class BrowserWindow extends QWidget {
        // New Editor Button\r
        private QToolButton newToolButton(String name, String toolTip) {\r
                QToolButton button = new QToolButton();\r
-               QIcon icon = new QIcon(iconPath + name + ".gif");\r
+//             QIcon icon = new QIcon(iconPath + name + ".gif");\r
+               QIcon icon = new QIcon(iconPath + name + ".png");\r
                button.setIcon(icon);\r
                button.setToolTip(toolTip);\r
                button.clicked.connect(this, name + "Clicked()");\r
@@ -984,6 +988,7 @@ public class BrowserWindow extends QWidget {
 \r
                if (mime.hasImage()) {\r
                        logger.log(logger.EXTREME, "Image paste found");\r
+                       browser.setFocus();\r
                        insertImage(mime);\r
                        browser.setFocus();\r
                        return;\r
@@ -1208,6 +1213,7 @@ public class BrowserWindow extends QWidget {
                String text = browser.selectedText();\r
                if (text.trim().equalsIgnoreCase(""))\r
                        return;\r
+               text = new String(text.replaceAll("\n", "<br/>"));\r
 \r
                EnCryptDialog dialog = new EnCryptDialog();\r
                dialog.exec();\r
@@ -1217,6 +1223,7 @@ public class BrowserWindow extends QWidget {
 \r
                EnCrypt crypt = new EnCrypt();\r
                String encrypted = crypt.encrypt(text, dialog.getPassword().trim(), 64);\r
+               String decrypted = crypt.decrypt(encrypted, dialog.getPassword().trim(), 64);\r
 \r
                if (encrypted.trim().equals("")) {\r
                        QMessageBox.information(this, tr("Error"), tr("Error Encrypting String"));\r
@@ -1227,7 +1234,6 @@ public class BrowserWindow extends QWidget {
                                + dialog.getHint().replace("'","\\'") + "\" length=\"64\" ");\r
                buffer.append("contentEditable=\"false\" alt=\"");\r
                buffer.append(encrypted);\r
-               // NFC FIXME: should this be a file URL like in handleLocalAttachment and importAttachment?\r
                buffer.append("\" src=\"").append(FileUtils.toForwardSlashedPath(Global.getFileManager().getImageDirPath("encrypt.png") +"\""));\r
                Global.cryptCounter++;\r
                buffer.append(" id=\"crypt"+Global.cryptCounter.toString() +"\"");\r
@@ -1369,7 +1375,7 @@ public class BrowserWindow extends QWidget {
                \r
                // First, try to decrypt with any keys we already have\r
                for (int i=0; i<Global.passwordRemember.size(); i++) {\r
-                       plainText = crypt.decrypt(text, Global.passwordRemember.get(i), 64);\r
+                       plainText = crypt.decrypt(text, Global.passwordRemember.get(i).getFirst(), 64);\r
                        if (plainText != null) {\r
                                slot = new String(Long.toString(l));\r
                                Global.passwordSafe.put(slot, Global.passwordRemember.get(i));\r
@@ -1391,10 +1397,18 @@ public class BrowserWindow extends QWidget {
                                QMessageBox.warning(this, "Incorrect Password", "The password entered is not correct");\r
                        }\r
                }\r
-               Global.passwordSafe.put(slot, dialog.getPassword());\r
+               Pair<String,String> passwordPair = new Pair<String,String>();\r
+               passwordPair.setFirst(dialog.getPassword());\r
+               passwordPair.setSecond(dialog.getHint());\r
+               Global.passwordSafe.put(slot, passwordPair);\r
+//             removeEncryption(id, plainText.replaceAll("\n", "<br/>"), dialog.permanentlyDecrypt(), slot);\r
                removeEncryption(id, plainText, dialog.permanentlyDecrypt(), slot);\r
-               if (dialog.rememberPassword())\r
-                       Global.passwordRemember.add(dialog.getPassword());\r
+               if (dialog.rememberPassword()) {\r
+                       Pair<String, String> pair = new Pair<String,String>();\r
+                       pair.setFirst(dialog.getPassword());\r
+                       pair.setSecond(dialog.getHint());\r
+                       Global.passwordRemember.add(pair);\r
+               }\r
 \r
        }\r
 \r
@@ -1443,7 +1457,11 @@ public class BrowserWindow extends QWidget {
                String newTagArray[];\r
                if (!completionText.equals("")) {\r
                        String before = tagEdit.text().substring(0,tagEdit.cursorPosition());\r
-                       before = before.substring(0,before.lastIndexOf(Global.tagDelimeter));\r
+                       int lastDelimiter = before.lastIndexOf(Global.tagDelimeter);\r
+                       if (lastDelimiter > 0)\r
+                               before = before.substring(0,before.lastIndexOf(Global.tagDelimeter));\r
+                       else \r
+                               before = "";\r
                        String after = tagEdit.text().substring(tagEdit.cursorPosition());\r
                        newTagArray = (before+Global.tagDelimeter+completionText+Global.tagDelimeter+after).split(Global.tagDelimeter);\r
                }\r
@@ -1586,6 +1604,13 @@ public class BrowserWindow extends QWidget {
                        }\r
                }\r
        }\r
+       \r
+       \r
+       // Set the notebook for a note\r
+       public void setNotebook(String notebook) {\r
+               currentNote.setNotebookGuid(notebook);\r
+               loadNotebookList();\r
+       }\r
 \r
        // Get the contents of the editor\r
        public String getContent() {\r
@@ -1681,7 +1706,10 @@ public class BrowserWindow extends QWidget {
                // Open the file & write the data\r
                QFile tfile = new QFile(path);\r
                tfile.open(new QIODevice.OpenMode(QIODevice.OpenModeFlag.WriteOnly));\r
-               img.save(tfile);\r
+               if (!img.save(tfile)) {\r
+                       tfile.close();\r
+                       return;\r
+               }\r
                tfile.close();\r
                \r
                Resource newRes = createResource(QUrl.fromLocalFile(path).toString(), 0, "image/jpeg", false);\r
@@ -1844,7 +1872,6 @@ public class BrowserWindow extends QWidget {
 \r
                                PDFPreview pdfPreview = new PDFPreview();\r
                                if (pdfPreview.setupPreview(Global.getFileManager().getResDirPath(fileName), "pdf",0)) {\r
-                               // NFC TODO: should this be a 'file://' url like the ones above?\r
                                imageURL = file.fileName() + ".png";\r
                                }\r
                        }\r
@@ -2102,6 +2129,8 @@ public class BrowserWindow extends QWidget {
                // Strip URL prefix and base dir\r
                guid = guid.replace("nnres://", "")\r
                        .replace(FileUtils.toForwardSlashedPath(Global.getFileManager().getResDirPath()), "");\r
+               guid = guid.replace("file://", "").replace("/", "")\r
+               .replace(FileUtils.toForwardSlashedPath(Global.getFileManager().getResDirPath()), "");\r
 \r
                pos = guid.lastIndexOf('.');\r
                if (pos > 0)\r
@@ -2126,7 +2155,6 @@ public class BrowserWindow extends QWidget {
        // * User chose to save an attachment. Pares out the request *\r
        // * into a guid & file. Save the result. --- DONE FROM downloadAttachment now!!!!!   \r
        // ************************************************************\r
-       // NFC TODO: unused? remove\r
        public void downloadImage(QNetworkRequest request) {\r
                QFileDialog fd = new QFileDialog(this);\r
                fd.setFileMode(FileMode.AnyFile);\r
@@ -2173,7 +2201,11 @@ public class BrowserWindow extends QWidget {
        // *************************************************************\r
        private void removeEncryption(String id, String plainText, boolean permanent, String slot) {\r
                if (!permanent) {\r
-                       plainText = " <en-crypt-temp slot=\""+slot  +"\">" +plainText+"</en-crypt-temp> ";\r
+                       plainText = " <table class=\"en-crypt-temp\" slot=\""\r
+                                       +slot \r
+                                       +"\""\r
+                                       +"border=1 width=100%><tbody><tr><td>"\r
+                                       +plainText+"</td></tr></tbody></table>";\r
                }\r
                \r
                String html = browser.page().mainFrame().toHtml();\r
@@ -2185,10 +2217,12 @@ public class BrowserWindow extends QWidget {
                        endPos = text.indexOf(">", imagePos);\r
                        String tag = text.substring(imagePos-1,endPos);\r
                        if (tag.indexOf("id=\""+id+"\"") > -1) {\r
-                                       text = text.substring(0,imagePos) +plainText+text.substring(endPos+1);\r
-                                                                               \r
-                                       browser.setContent(new QByteArray(text));\r
-                                       contentChanged();\r
+                                       text = text.substring(0,imagePos) +plainText+text.substring(endPos+1);  \r
+                                       QTextCodec codec = QTextCodec.codecForName("UTF-8");\r
+                               QByteArray unicode =  codec.fromUnicode(text);\r
+                                       browser.setContent(unicode);\r
+                                       if (permanent)\r
+                                               contentChanged();\r
                        }\r
                        imagePos = text.indexOf("<img", imagePos+1);\r
                }\r
@@ -2261,7 +2295,7 @@ public class BrowserWindow extends QWidget {
                        +"   var workingNode = window.getSelection().anchorNode.parentNode;"\r
                        +"   while(workingNode != null) { " \r
 //                     +"      window.jambi.printNode(workingNode.nodeName);"\r
-                       +"      if (workingNode.nodeName=='EN-CRYPT-TEMP') window.jambi.forceTextPaste();"\r
+                       +"      if (workingNode.nodeName=='TABLE') { if (workingNode.getAttribute('class').toLowerCase() == 'en-crypt-temp') window.jambi.forceTextPaste(); }"\r
                        +"      if (workingNode.nodeName=='B') window.jambi.boldActive();"\r
                        +"      if (workingNode.nodeName=='I') window.jambi.italicActive();"\r
                        +"      if (workingNode.nodeName=='U') window.jambi.underlineActive();"\r
@@ -2583,94 +2617,117 @@ public class BrowserWindow extends QWidget {
        }\r
 */\r
        \r
+       @SuppressWarnings("unused")\r
        private void toggleUndoVisible(Boolean toggle) {\r
                undoAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("undo", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleRedoVisible(Boolean toggle) {\r
                redoAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("redo", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleCutVisible(Boolean toggle) {\r
                cutAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("cut", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleCopyVisible(Boolean toggle) {\r
                copyAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("copy", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void togglePasteVisible(Boolean toggle) {\r
                pasteAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("paste", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleBoldVisible(Boolean toggle) {\r
                boldAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("bold", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleItalicVisible(Boolean toggle) {\r
                italicAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("italic", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleUnderlineVisible(Boolean toggle) {\r
                underlineAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("underline", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleStrikethroughVisible(Boolean toggle) {\r
                strikethroughAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("strikethrough", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleLeftAlignVisible(Boolean toggle) {\r
                leftAlignAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("alignLeft", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleRightAlignVisible(Boolean toggle) {\r
                rightAlignAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("alignRight", toggle);\r
        }       \r
+       @SuppressWarnings("unused")\r
        private void toggleCenterAlignVisible(Boolean toggle) {\r
                centerAlignAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("alignCenter", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleHLineVisible(Boolean toggle) {\r
                hlineAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("hline", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleIndentVisible(Boolean toggle) {\r
                indentAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("indent", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleTodoVisible(Boolean toggle) {\r
                todoAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("todo", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleOutdentVisible(Boolean toggle) {\r
                outdentAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("outdent", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleBulletListVisible(Boolean toggle) {\r
                bulletListAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("bulletList", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleNumberListVisible(Boolean toggle) {\r
                numberListAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("numberList", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleFontListVisible(Boolean toggle) {\r
                fontListAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("font", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleFontColorVisible(Boolean toggle) {\r
                fontColorAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("fontColor", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleFontSizeVisible(Boolean toggle) {\r
                fontSizeAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("fontSize", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleFontHilightVisible(Boolean toggle) {\r
                fontHilightAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("fontHilight", toggle);\r
        }\r
+       @SuppressWarnings("unused")\r
        private void toggleSpellCheckVisible(Boolean toggle) {\r
                spellCheckAction.setVisible(toggle);\r
                Global.saveEditorButtonsVisible("spellCheck", toggle);\r
@@ -2716,6 +2773,7 @@ public class BrowserWindow extends QWidget {
        }\r
        \r
        // Invoke spell checker dialog\r
+       @SuppressWarnings("unused")\r
        private void spellCheckClicked() {\r
 \r
                if (spellChecker == null) {\r