OSDN Git Service

NeverNote 0.88.
[neighbornote/NeighborNote.git] / src / cx / fbn / nevernote / dialog / WatchFolderAdd.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.dialog;\r
21 \r
22 import java.util.List;\r
23 \r
24 import com.evernote.edam.type.Notebook;\r
25 import com.trolltech.qt.gui.QComboBox;\r
26 import com.trolltech.qt.gui.QDialog;\r
27 import com.trolltech.qt.gui.QFileDialog;\r
28 import com.trolltech.qt.gui.QGridLayout;\r
29 import com.trolltech.qt.gui.QHBoxLayout;\r
30 import com.trolltech.qt.gui.QLabel;\r
31 import com.trolltech.qt.gui.QPushButton;\r
32 import com.trolltech.qt.gui.QVBoxLayout;\r
33 import com.trolltech.qt.gui.QFileDialog.FileMode;\r
34 \r
35 import cx.fbn.nevernote.sql.runners.WatchFolderRecord;\r
36 \r
37 public class WatchFolderAdd extends QDialog {\r
38         private final QPushButton               okButton;\r
39         private final QPushButton               cancelButton;\r
40         private boolean                                 okClicked;\r
41         private final List<Notebook>    notebooks;\r
42         private final WatchFolderRecord record;\r
43         public final QLabel                     directory;\r
44         public final QComboBox          keep;\r
45         public final QComboBox          books;\r
46         \r
47         public WatchFolderAdd(WatchFolderRecord w, List<Notebook> n) {\r
48                 okClicked = false;\r
49                 notebooks = n;\r
50                 record = w;\r
51                 \r
52                 okButton = new QPushButton();\r
53                 okButton.setText("OK");\r
54                 okButton.pressed.connect(this, "onClicked()");\r
55                 \r
56                 cancelButton = new QPushButton();\r
57                 cancelButton.setText("Cancel");\r
58                 cancelButton.pressed.connect(this, "onCancel()");\r
59                 \r
60                 QPushButton folderButton = new QPushButton();\r
61                 folderButton.setText("Directory");\r
62                 folderButton.clicked.connect(this, "folderButtonClicked()");\r
63                 \r
64                 directory = new QLabel();\r
65                 if (record != null)\r
66                         directory.setText(record.folder);\r
67                 else \r
68                         directory.setText(System.getProperty("user.home"));\r
69                 \r
70                 keep = new QComboBox();\r
71                 keep.addItem("Keep");\r
72                 keep.addItem("Delete");\r
73                 if (record != null) {\r
74                         if (record.keep)\r
75                                 keep.setCurrentIndex(0);\r
76                         else\r
77                                 keep.setCurrentIndex(1);\r
78                 }\r
79                 \r
80                 books = new QComboBox();\r
81                 for (int i=0; i<notebooks.size(); i++) {\r
82                         books.addItem(notebooks.get(i).getName());\r
83                         if (record != null) {\r
84                                 if (record.notebook.equals(notebooks.get(i).getName()))\r
85                                         books.setCurrentIndex(i);\r
86                         }\r
87                 }\r
88                 \r
89                 QGridLayout grid = new QGridLayout();\r
90                 grid.addWidget(directory,0,1);\r
91                 grid.addWidget(folderButton,0,0);\r
92                 grid.addWidget(new QLabel("Notebook"),1,0);\r
93                 grid.addWidget(books,1,1);\r
94                 grid.addWidget(new QLabel("After Import"), 2,0);\r
95                 grid.addWidget(keep,2,1);\r
96                                 \r
97                 QHBoxLayout buttonLayout = new QHBoxLayout();\r
98                 buttonLayout.addStretch(1);\r
99                 buttonLayout.addWidget(okButton);\r
100                 buttonLayout.addWidget(cancelButton);\r
101                 setWindowTitle(tr("Add Import Folder"));        \r
102                                 \r
103                         \r
104                 QVBoxLayout mainLayout = new QVBoxLayout();\r
105                 mainLayout.addLayout(grid);\r
106                 mainLayout.addSpacing(1);\r
107                 mainLayout.addLayout(buttonLayout);\r
108                 setLayout(mainLayout);\r
109                                 \r
110         }\r
111         \r
112         @SuppressWarnings("unused")\r
113         private void onClicked() {\r
114                 okClicked = true;\r
115                 close();\r
116         }\r
117         \r
118         @SuppressWarnings("unused")\r
119         private void onCancel() {\r
120                 okClicked = false;\r
121                 close();\r
122         }\r
123         \r
124         public boolean okClicked() {\r
125                 return okClicked;\r
126         }\r
127         \r
128         @SuppressWarnings("unused")\r
129         private void itemSelected() {\r
130                 okButton.setEnabled(true);\r
131         }\r
132         \r
133         @SuppressWarnings("unused")\r
134         private void folderButtonClicked() {\r
135                 QFileDialog fileDialog = new QFileDialog();\r
136                 fileDialog.setFileMode(FileMode.DirectoryOnly);\r
137                 fileDialog.fileSelected.connect(this, "folderSelected(String)");\r
138                 fileDialog.exec();\r
139         }\r
140         \r
141         @SuppressWarnings("unused")\r
142         private void folderSelected(String f) {\r
143                  String whichOS = System.getProperty("os.name");\r
144                         if (whichOS.contains("Windows")) \r
145                                 f = f.replace('/','\\');\r
146                 directory.setText(f);\r
147         }\r
148         \r
149 }\r