-/*\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);
+ }
+ }
+}