OSDN Git Service

Update merge with local branch. Changes:
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / gui / ExternalBrowse.java
1 /*\r
2  * This file is part of NeverNote \r
3  * Copyright 2009 Randy Baumgarte\r
4  * \r
5  * This file may be licensed under the terms of of the\r
6  * GNU General Public License Version 2 (the ``GPL'').\r
7  *\r
8  * Software distributed under the License is distributed\r
9  * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either\r
10  * express or implied. See the GPL for the specific language\r
11  * governing rights and limitations.\r
12  *\r
13  * You should have received a copy of the GPL along with this\r
14  * program. If not, go to http://www.gnu.org/licenses/gpl.html\r
15  * or write to the Free Software Foundation, Inc.,\r
16  * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.\r
17  *\r
18 */\r
19 \r
20 package cx.fbn.nevernote.gui;\r
21 \r
22 import java.util.List;\r
23 \r
24 import com.trolltech.qt.gui.QCloseEvent;\r
25 import com.trolltech.qt.gui.QMdiSubWindow;\r
26 \r
27 import cx.fbn.nevernote.Global;\r
28 import cx.fbn.nevernote.sql.DatabaseConnection;\r
29 \r
30 public class ExternalBrowse extends QMdiSubWindow {\r
31         private final DatabaseConnection  conn;\r
32         private final BrowserWindow     browser;\r
33         public Signal4<String, String, Boolean, BrowserWindow> contentsChanged;\r
34         public Signal1<String>  windowClosing;\r
35         boolean noteDirty;\r
36         \r
37         // Constructor\r
38         public ExternalBrowse(DatabaseConnection c) {\r
39                 setWindowTitle(tr("NeverNote"));\r
40                 conn = c;\r
41                 contentsChanged = new Signal4<String, String, Boolean, BrowserWindow>();\r
42                 windowClosing = new Signal1<String>();\r
43                 browser = new BrowserWindow(conn);\r
44                 setWidget(browser);\r
45                 noteDirty = false;\r
46                 browser.titleLabel.textChanged.connect(this, "titleChanged(String)");\r
47                 browser.getBrowser().page().contentsChanged.connect(this, "contentChanged()");\r
48         }\r
49         \r
50         private void contentChanged() {\r
51                 noteDirty = true;\r
52                 contentsChanged.emit(getBrowserWindow().getNote().getGuid(), getBrowserWindow().getContent(), false, getBrowserWindow());\r
53         }\r
54 \r
55         \r
56         @Override\r
57         public void closeEvent(QCloseEvent event) {\r
58                 if (noteDirty) \r
59                         contentsChanged.emit(getBrowserWindow().getNote().getGuid(), getBrowserWindow().getContent(), true, getBrowserWindow());\r
60                 windowClosing.emit(getBrowserWindow().getNote().getGuid());\r
61         }\r
62         \r
63     public BrowserWindow getBrowserWindow() {\r
64         return browser;\r
65     }\r
66     \r
67     private void titleChanged(String value) {\r
68         setWindowTitle(tr("NeverNote - ") +value);\r
69     }\r
70     \r
71         private void updateTitle(String guid, String title) {\r
72                 if (guid.equals(getBrowserWindow().getNote().getGuid())) {\r
73                         getBrowserWindow().loadingData(true);\r
74                         getBrowserWindow().setTitle(title);\r
75                         getBrowserWindow().getNote().setTitle(title);\r
76                         getBrowserWindow().loadingData(false);\r
77                 }\r
78         }\r
79         private void updateNotebook(String guid, String notebook) {\r
80                 if (guid.equals(getBrowserWindow().getNote().getGuid())) {\r
81                         getBrowserWindow().loadingData(true);\r
82                         getBrowserWindow().setNotebook(notebook);\r
83                         getBrowserWindow().loadingData(false);\r
84                 }\r
85         }\r
86         \r
87         private void updateTags(String guid, List<String> tags) {\r
88                 if (guid.equals(getBrowserWindow().getNote().getGuid())) {\r
89                         StringBuffer tagLine = new StringBuffer(100);\r
90                         for (int i=0; i<tags.size(); i++) {\r
91                                 if (i>0)\r
92                                         tagLine.append(Global.tagDelimeter+" ");\r
93                                 tagLine.append(tags.get(i));\r
94                                 \r
95                         }\r
96                         getBrowserWindow().loadingData(true);\r
97                         getBrowserWindow().getTagLine().setText(tagLine.toString());\r
98                         getBrowserWindow().loadingData(false);\r
99                 }\r
100         }\r
101 \r
102 }\r