OSDN Git Service

loggerを修正した
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / ExternalBrowse.java
index ff0f5e0..fea3461 100644 (file)
-/*\r
- * This file is part of NeverNote \r
- * Copyright 2009 Randy Baumgarte\r
- * \r
- * This file may be licensed under the terms of of the\r
- * GNU General Public License Version 2 (the ``GPL'').\r
- *\r
- * Software distributed under the License is distributed\r
- * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either\r
- * express or implied. See the GPL for the specific language\r
- * governing rights and limitations.\r
- *\r
- * You should have received a copy of the GPL along with this\r
- * program. If not, go to http://www.gnu.org/licenses/gpl.html\r
- * or write to the Free Software Foundation, Inc.,\r
- * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
- *\r
-*/\r
-\r
-package cx.fbn.nevernote.gui;\r
-\r
-import java.awt.Desktop;\r
-import java.util.List;\r
-\r
-import com.trolltech.qt.core.QUrl;\r
-import com.trolltech.qt.core.Qt.WidgetAttribute;\r
-import com.trolltech.qt.gui.QAction;\r
-import com.trolltech.qt.gui.QCloseEvent;\r
-import com.trolltech.qt.gui.QDesktopServices;\r
-import com.trolltech.qt.gui.QDialog;\r
-import com.trolltech.qt.gui.QMdiSubWindow;\r
-import com.trolltech.qt.gui.QPrintDialog;\r
-import com.trolltech.qt.gui.QPrinter;\r
-\r
-import cx.fbn.nevernote.Global;\r
-import cx.fbn.nevernote.dialog.FindDialog;\r
-import cx.fbn.nevernote.sql.DatabaseConnection;\r
-\r
-public class ExternalBrowse extends QMdiSubWindow {\r
-       private final DatabaseConnection  conn;\r
-       private final BrowserWindow     browser;\r
-       public Signal4<String, String, Boolean, BrowserWindow> contentsChanged;\r
-       public Signal1<String>  windowClosing;\r
-       boolean noteDirty;\r
-       private QAction editFind;\r
-       private final FindDialog        find;                                           // Text search in note dialog\r
-//     ExternalBrowserMenuBar          menu;\r
-       ExternalBrowserMenuBar  menu;\r
-       \r
-       // Constructor\r
-       public ExternalBrowse(DatabaseConnection c) {\r
-               setAttribute(WidgetAttribute.WA_QuitOnClose, false);\r
-               setWindowTitle(tr("NeverNote"));\r
-               conn = c;\r
-               contentsChanged = new Signal4<String, String, Boolean, BrowserWindow>();\r
-               windowClosing = new Signal1<String>();\r
-               browser = new BrowserWindow(conn);\r
-               menu = new ExternalBrowserMenuBar(this);\r
-               for (int i=0; i<menu.actions().size(); i++) {\r
-                       addAction(menu.actions().get(i));\r
-               }\r
-               \r
-               setWidget(browser);\r
-               noteDirty = false;\r
-               browser.titleLabel.textChanged.connect(this, "titleChanged(String)");\r
-               browser.getBrowser().page().contentsChanged.connect(this, "contentChanged()");\r
-               find = new FindDialog();\r
-               find.getOkButton().clicked.connect(this, "doFindText()");\r
-       }\r
-       \r
-       @SuppressWarnings("unused")\r
-       private void contentChanged() {\r
-               noteDirty = true;\r
-               contentsChanged.emit(getBrowserWindow().getNote().getGuid(), getBrowserWindow().getContent(), false, getBrowserWindow());\r
-       }\r
-\r
-       \r
-       @Override\r
-       public void closeEvent(QCloseEvent event) {\r
-               if (noteDirty) \r
-                       contentsChanged.emit(getBrowserWindow().getNote().getGuid(), getBrowserWindow().getContent(), true, getBrowserWindow());\r
-               windowClosing.emit(getBrowserWindow().getNote().getGuid());\r
-       }\r
-       \r
-    public BrowserWindow getBrowserWindow() {\r
-       return browser;\r
-    }\r
-    \r
-    @SuppressWarnings("unused")\r
-       private void titleChanged(String value) {\r
-       setWindowTitle(tr("NeverNote - ") +value);\r
-    }\r
-    \r
-       @SuppressWarnings("unused")\r
-       private void updateTitle(String guid, String title) {\r
-               if (guid.equals(getBrowserWindow().getNote().getGuid())) {\r
-                       getBrowserWindow().loadingData(true);\r
-                       getBrowserWindow().setTitle(title);\r
-                       getBrowserWindow().getNote().setTitle(title);\r
-                       getBrowserWindow().loadingData(false);\r
-               }\r
-       }\r
-       @SuppressWarnings("unused")\r
-       private void updateNotebook(String guid, String notebook) {\r
-               if (guid.equals(getBrowserWindow().getNote().getGuid())) {\r
-                       getBrowserWindow().loadingData(true);\r
-                       getBrowserWindow().setNotebook(notebook);\r
-                       getBrowserWindow().loadingData(false);\r
-               }\r
-       }\r
-       \r
-       @SuppressWarnings("unused")\r
-       private void updateTags(String guid, List<String> tags) {\r
-               if (guid.equals(getBrowserWindow().getNote().getGuid())) {\r
-                       StringBuffer tagLine = new StringBuffer(100);\r
-                       for (int i=0; i<tags.size(); i++) {\r
-                               if (i>0)\r
-                                       tagLine.append(Global.tagDelimeter+" ");\r
-                               tagLine.append(tags.get(i));\r
-                               \r
-                       }\r
-                       getBrowserWindow().loadingData(true);\r
-                       getBrowserWindow().getTagLine().setText(tagLine.toString());\r
-                       getBrowserWindow().loadingData(false);\r
-               }\r
-       }\r
-\r
-       \r
-    @SuppressWarnings("unused")\r
-       private void findText() {\r
-       find.show();\r
-       find.setFocusOnTextField();\r
-    }\r
-    @SuppressWarnings("unused")\r
-       private void doFindText() {\r
-       browser.getBrowser().page().findText(find.getText(), find.getFlags());\r
-       find.setFocus();\r
-    }\r
-\r
-       \r
-    @SuppressWarnings("unused")\r
-       private void printNote() {\r
-\r
-       QPrintDialog dialog = new QPrintDialog();\r
-       if (dialog.exec() == QDialog.DialogCode.Accepted.value()) {\r
-               QPrinter printer = dialog.printer();\r
-               browser.getBrowser().print(printer);\r
-       }\r
-    }\r
-    \r
-    // Listener triggered when the email button is pressed\r
-    @SuppressWarnings("unused")\r
-       private void emailNote() {\r
-        if (Desktop.isDesktopSupported()) {\r
-            Desktop desktop = Desktop.getDesktop();\r
-            \r
-            String text2 = browser.getContentsToEmail();\r
-            QUrl url = new QUrl("mailto:");\r
-            url.addQueryItem("subject", browser.getTitle());\r
-            url.addQueryItem("body", text2);\r
-            QDesktopServices.openUrl(url);\r
-        }\r
-    }\r
-}\r
+/*
+ * This file is part of NixNote/NeighborNote 
+ * Copyright 2009 Randy Baumgarte
+ * Copyright 2013 Yuki Takahashi
+ * 
+ * This file may be licensed under the terms of of the
+ * GNU General Public License Version 2 (the ``GPL'').
+ *
+ * Software distributed under the License is distributed
+ * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either
+ * express or implied. See the GPL for the specific language
+ * governing rights and limitations.
+ *
+ * You should have received a copy of the GPL along with this
+ * program. If not, go to http://www.gnu.org/licenses/gpl.html
+ * or write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+*/
+
+package cx.fbn.nevernote.gui;
+
+import java.awt.Desktop;
+import java.util.List;
+
+import com.trolltech.qt.core.QUrl;
+import com.trolltech.qt.core.Qt.WidgetAttribute;
+import com.trolltech.qt.gui.QCloseEvent;
+import com.trolltech.qt.gui.QDesktopServices;
+import com.trolltech.qt.gui.QDialog;
+import com.trolltech.qt.gui.QMdiSubWindow;
+import com.trolltech.qt.gui.QPrintDialog;
+import com.trolltech.qt.gui.QPrinter;
+
+import cx.fbn.nevernote.Global;
+import cx.fbn.nevernote.clipboard.ClipBoardObserver;
+import cx.fbn.nevernote.dialog.FindDialog;
+import cx.fbn.nevernote.sql.DatabaseConnection;
+
+public class ExternalBrowse extends QMdiSubWindow {
+       private final DatabaseConnection  conn;
+       private final BrowserWindow     browser;
+       public Signal4<String, String, Boolean, BrowserWindow> contentsChanged;
+       public Signal1<String>  windowClosing;
+       boolean noteDirty;
+       String saveTitle;
+       private final FindDialog        find;                                           // Text search in note dialog
+//     ExternalBrowserMenuBar          menu;
+       ExternalBrowserMenuBar  menu;
+       
+       private final ClipBoardObserver cbObserver;
+       
+       // Constructor
+       // cbObserver引数を追加
+       public ExternalBrowse(DatabaseConnection c, ClipBoardObserver cbObserver) {
+               setAttribute(WidgetAttribute.WA_QuitOnClose, false);
+               setWindowTitle(tr("NeighborNote"));
+               conn = c;
+               this.cbObserver = cbObserver;  
+               
+               contentsChanged = new Signal4<String, String, Boolean, BrowserWindow>();
+               windowClosing = new Signal1<String>();
+               browser = new BrowserWindow(conn, this.cbObserver);
+               
+               menu = new ExternalBrowserMenuBar(this);
+               for (int i=0; i<menu.actions().size(); i++) {
+                       addAction(menu.actions().get(i));
+               }
+               
+               setWidget(browser);
+               noteDirty = false;
+               browser.titleLabel.textChanged.connect(this, "titleChanged(String)");
+               browser.getBrowser().page().contentsChanged.connect(this, "contentChanged()");
+               find = new FindDialog();
+               find.getOkButton().clicked.connect(this, "doFindText()");
+       }
+       
+       @SuppressWarnings("unused")
+       private void contentChanged() {
+               noteDirty = true;
+               contentsChanged.emit(getBrowserWindow().getNote().getGuid(), getBrowserWindow().getContent(), false, getBrowserWindow());
+       }
+
+       
+       @Override
+       public void closeEvent(QCloseEvent event) {
+               if (noteDirty) 
+                       contentsChanged.emit(getBrowserWindow().getNote().getGuid(), getBrowserWindow().getContent(), true, getBrowserWindow());
+               windowClosing.emit(getBrowserWindow().getNote().getGuid());
+       }
+       
+    public BrowserWindow getBrowserWindow() {
+       return browser;
+    }
+    
+    @SuppressWarnings("unused")
+       private void titleChanged(String value) {
+       setWindowTitle(tr("NeighborNote - ") +value);
+    }
+    
+       @SuppressWarnings("unused")
+       private void updateTitle(String guid, String title) {
+               if (guid.equals(getBrowserWindow().getNote().getGuid()) &&
+                               (saveTitle != null && !title.equals(saveTitle) || saveTitle == null) ) {
+                       saveTitle = title;
+                       getBrowserWindow().loadingData(true);
+                       getBrowserWindow().setTitle(title);
+                       getBrowserWindow().getNote().setTitle(title);
+                       getBrowserWindow().loadingData(false);
+               }
+       }
+       @SuppressWarnings("unused")
+       private void updateNotebook(String guid, String notebook) {
+               if (guid.equals(getBrowserWindow().getNote().getGuid())) {
+                       getBrowserWindow().loadingData(true);
+                       getBrowserWindow().setNotebook(notebook);
+                       getBrowserWindow().loadingData(false);
+               }
+       }
+       
+       @SuppressWarnings("unused")
+       private void updateTags(String guid, List<String> tags) {
+               if (guid.equals(getBrowserWindow().getNote().getGuid())) {
+                       StringBuffer tagLine = new StringBuffer(100);
+                       for (int i=0; i<tags.size(); i++) {
+                               if (i>0)
+                                       tagLine.append(Global.tagDelimeter+" ");
+                               tagLine.append(tags.get(i));
+                               
+                       }
+                       getBrowserWindow().loadingData(true);
+                       getBrowserWindow().getTagLine().setText(tagLine.toString());
+                       getBrowserWindow().loadingData(false);
+               }
+       }
+
+       
+    @SuppressWarnings("unused")
+       private void findText() {
+       find.show();
+       find.setFocusOnTextField();
+    }
+    @SuppressWarnings("unused")
+       private void doFindText() {
+       browser.getBrowser().page().findText(find.getText(), find.getFlags());
+       find.setFocus();
+    }
+
+       
+    @SuppressWarnings("unused")
+       private void printNote() {
+
+       QPrintDialog dialog = new QPrintDialog();
+       if (dialog.exec() == QDialog.DialogCode.Accepted.value()) {
+               QPrinter printer = dialog.printer();
+               browser.getBrowser().print(printer);
+       }
+    }
+    
+    // Listener triggered when the email button is pressed
+    @SuppressWarnings("unused")
+       private void emailNote() {
+        if (Desktop.isDesktopSupported()) {
+            Desktop desktop = Desktop.getDesktop();
+            
+            String text2 = browser.getContentsToEmail();
+            QUrl url = new QUrl("mailto:");
+            url.addQueryItem("subject", browser.getTitle());
+            url.addQueryItem("body", text2);
+            QDesktopServices.openUrl(url);
+        }
+    }
+}