OSDN Git Service

GitHub最初のコミット(SourceForge.jp 128fa38 2013-02-28 15:28:57 と同じ内容)
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / TabBrowse.java
1 // ICHANGED
2 package cx.fbn.nevernote.gui;
3
4 import java.awt.Desktop;
5
6 import com.trolltech.qt.core.QUrl;
7 import com.trolltech.qt.gui.QDesktopServices;
8 import com.trolltech.qt.gui.QDialog;
9 import com.trolltech.qt.gui.QPrintDialog;
10 import com.trolltech.qt.gui.QPrinter;
11 import com.trolltech.qt.gui.QVBoxLayout;
12 import com.trolltech.qt.gui.QWidget;
13
14 import cx.fbn.nevernote.dialog.FindDialog;
15 import cx.fbn.nevernote.neighbornote.ClipBoardObserver;
16 import cx.fbn.nevernote.sql.DatabaseConnection;
17
18 public class TabBrowse extends QWidget {
19         private final DatabaseConnection conn;
20         private final BrowserWindow browser;
21         public Signal4<String, String, Boolean, BrowserWindow> contentsChanged;
22         private boolean noteDirty;
23         String saveTitle;
24         private final FindDialog find; // Text search in note dialog
25         private final TabBrowserWidget parent;
26         private final ClipBoardObserver cbObserver;
27
28         // コンストラクタ
29         public TabBrowse(DatabaseConnection c, TabBrowserWidget p, ClipBoardObserver cbObserver) {
30                 conn = c;
31                 parent = p;
32                 this.cbObserver = cbObserver;
33                 contentsChanged = new Signal4<String, String, Boolean, BrowserWindow>();
34                 browser = new BrowserWindow(conn, this.cbObserver);
35                 QVBoxLayout v = new QVBoxLayout();
36                 v.addWidget(browser);
37                 setLayout(v);
38                 noteDirty = false;
39                 browser.titleLabel.textChanged.connect(this, "titleChanged(String)");
40                 browser.getBrowser().page().contentsChanged.connect(this,
41                                 "contentChanged()");
42                 find = new FindDialog();
43                 find.getOkButton().clicked.connect(this, "doFindText()");
44         }
45
46         @SuppressWarnings("unused")
47         private void contentChanged() {
48                 noteDirty = true;
49                 contentsChanged.emit(getBrowserWindow().getNote().getGuid(),
50                                 getBrowserWindow().getContent(), false, getBrowserWindow());
51         }
52
53         public BrowserWindow getBrowserWindow() {
54                 return browser;
55         }
56
57         
58         @SuppressWarnings("unused")
59         private void titleChanged(String value) {
60                 int index = parent.indexOf(this);
61                 if(index >= 0){
62                         parent.setTabTitle(index, value);
63                 }
64         }
65         
66         /*
67         @SuppressWarnings("unused")
68         private void updateTitle(String guid, String title) {
69                 if (guid.equals(getBrowserWindow().getNote().getGuid())
70                                 && (saveTitle != null && !title.equals(saveTitle) || saveTitle == null)) {
71                         saveTitle = title;
72                         getBrowserWindow().loadingData(true);
73                         getBrowserWindow().setTitle(title);
74                         getBrowserWindow().getNote().setTitle(title);
75                         getBrowserWindow().loadingData(false);
76                 }
77         }
78         */
79
80         /*
81         @SuppressWarnings("unused")
82         private void updateNotebook(String guid, String notebook) {
83                 if (guid.equals(getBrowserWindow().getNote().getGuid())) {
84                         getBrowserWindow().loadingData(true);
85                         getBrowserWindow().setNotebook(notebook);
86                         getBrowserWindow().loadingData(false);
87                 }
88         }
89         */
90
91         /*
92         @SuppressWarnings("unused")
93         private void updateTags(String guid, List<String> tags) {
94                 if (guid.equals(getBrowserWindow().getNote().getGuid())) {
95                         StringBuffer tagLine = new StringBuffer(100);
96                         for (int i = 0; i < tags.size(); i++) {
97                                 if (i > 0)
98                                         tagLine.append(Global.tagDelimeter + " ");
99                                 tagLine.append(tags.get(i));
100
101                         }
102                         getBrowserWindow().loadingData(true);
103                         getBrowserWindow().getTagLine().setText(tagLine.toString());
104                         getBrowserWindow().loadingData(false);
105                 }
106         }
107         */
108
109         @SuppressWarnings("unused")
110         private void findText() {
111                 find.show();
112                 find.setFocusOnTextField();
113         }
114
115         @SuppressWarnings("unused")
116         private void doFindText() {
117                 browser.getBrowser().page().findText(find.getText(), find.getFlags());
118                 find.setFocus();
119         }
120
121         @SuppressWarnings("unused")
122         private void printNote() {
123
124                 QPrintDialog dialog = new QPrintDialog();
125                 if (dialog.exec() == QDialog.DialogCode.Accepted.value()) {
126                         QPrinter printer = dialog.printer();
127                         browser.getBrowser().print(printer);
128                 }
129         }
130
131         // Listener triggered when the email button is pressed
132         @SuppressWarnings("unused")
133         private void emailNote() {
134                 if (Desktop.isDesktopSupported()) {
135                         Desktop desktop = Desktop.getDesktop();
136
137                         String text2 = browser.getContentsToEmail();
138                         QUrl url = new QUrl("mailto:");
139                         url.addQueryItem("subject", browser.getTitle());
140                         url.addQueryItem("body", text2);
141                         QDesktopServices.openUrl(url);
142                 }
143         }
144
145         // noteDirtyの値を返す
146         public boolean getNoteDirty() {
147                 return noteDirty;
148         }
149 }