import com.trolltech.qt.gui.QClipboard;
import com.trolltech.qt.gui.QCloseEvent;
import com.trolltech.qt.gui.QColor;
-import com.trolltech.qt.gui.QComboBox;
import com.trolltech.qt.gui.QCursor;
import com.trolltech.qt.gui.QDesktopServices;
import com.trolltech.qt.gui.QDialog;
import com.trolltech.qt.gui.QIcon;
import com.trolltech.qt.gui.QImage;
import com.trolltech.qt.gui.QKeySequence;
-import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QListWidgetItem;
import com.trolltech.qt.gui.QMainWindow;
import com.trolltech.qt.gui.QMenu;
import com.trolltech.qt.gui.QPrinter;
import com.trolltech.qt.gui.QShortcut;
import com.trolltech.qt.gui.QSizePolicy;
-import com.trolltech.qt.gui.QSizePolicy.Policy;
import com.trolltech.qt.gui.QSpinBox;
import com.trolltech.qt.gui.QSplashScreen;
import com.trolltech.qt.gui.QSplitter;
import com.trolltech.qt.gui.QTextEdit;
import com.trolltech.qt.gui.QToolBar;
import com.trolltech.qt.gui.QTreeWidgetItem;
+import com.trolltech.qt.gui.QWidget;
import com.trolltech.qt.network.QNetworkAccessManager;
import com.trolltech.qt.network.QNetworkProxy;
import com.trolltech.qt.network.QNetworkProxy.ProxyType;
import cx.fbn.nevernote.gui.RensoNoteList;
import cx.fbn.nevernote.gui.RensoNoteListDock;
import cx.fbn.nevernote.gui.SavedSearchTreeWidget;
-import cx.fbn.nevernote.gui.SearchPanel;
+import cx.fbn.nevernote.gui.SearchEdit;
import cx.fbn.nevernote.gui.TabBrowse;
import cx.fbn.nevernote.gui.TabBrowserWidget;
import cx.fbn.nevernote.gui.TableView;
import cx.fbn.nevernote.gui.TagTreeWidget;
import cx.fbn.nevernote.gui.Thumbnailer;
import cx.fbn.nevernote.gui.TrashTreeWidget;
+import cx.fbn.nevernote.gui.ZoomPanel;
import cx.fbn.nevernote.gui.controls.QuotaProgressBar;
import cx.fbn.nevernote.oauth.OAuthTokenizer;
import cx.fbn.nevernote.oauth.OAuthWindow;
public BrowserWindow browserWindow; // Window containing browser & labels
public QToolBar toolBar; // The tool bar under the menu
- QComboBox searchField; // search filter bar on the toolbar;
+ SearchEdit searchField; // search filter bar on the toolbar;
QShortcut searchShortcut; // Shortcut to search bar
boolean searchPerformed = false; // Search was done?
QuotaProgressBar quotaBar; // The current quota usage
QSpinBox zoomSpinner; // Zoom zoom
QAction searchClearButton; // Clear the search field
- SearchPanel searchLayout; // Widget to hold search field, zoom, & quota
+ ZoomPanel zoomLayout; // Widget to hold search field, zoom, & quota
QSplitter mainLeftRightSplitter; // main splitter for left/right side
QSplitter leftSplitter1; // first left hand splitter
trashTree = new TrashTreeWidget();
noteTableView = new TableView(logger, listManager, this);
- searchField = new QComboBox();
- searchField.setObjectName("searchField");
- //setStyleSheet("QComboBox#searchField { background-color: yellow }");
- searchField.setEditable(true);
- searchField.activatedIndex.connect(this, "searchFieldChanged()");
- searchField.setDuplicatesEnabled(false);
- searchField.editTextChanged.connect(this,"searchFieldTextChanged(String)");
- searchShortcut = new QShortcut(this);
- setupShortcut(searchShortcut, "Focus_Search");
- searchShortcut.activated.connect(this, "focusSearch()");
-
quotaBar = new QuotaProgressBar();
// Setup the zoom
zoomSpinner = new QSpinBox();
zoomSpinner.setValue(100);
zoomSpinner.valueChanged.connect(this, "zoomChanged()");
- searchLayout = new SearchPanel(searchField, quotaBar, notebookTree, zoomSpinner);
+ zoomLayout = new ZoomPanel(quotaBar, notebookTree, zoomSpinner);
QGridLayout leftGrid = new QGridLayout();
leftSplitter1.setContentsMargins(5, 0, 0, 7);
leftSplitter1.setLayout(leftGrid);
- leftGrid.addWidget(searchLayout,1,1);
+ leftGrid.addWidget(zoomLayout,1,1);
leftGrid.addWidget(tagTree,2,1);
leftGrid.addWidget(attributeTree,3,1);
leftGrid.addWidget(savedSearchTree,4,1);
listManager.tagSignal.listChanged.connect(this, "reloadTagTree()");
if (!Global.isWindowVisible("zoom")) {
- searchLayout.hideZoom();
+ zoomLayout.hideZoom();
menuBar.hideZoom.setChecked(false);
}
if (!Global.isWindowVisible("quota"))
menuBar.hideQuota.setChecked(false);
- searchField.setVisible(Global.isWindowVisible("searchField"));
- // IFIXED !searchField.isVisible() → !Global.isWindowVisible("searchField")
- // なぜかsearchField.isVisible()が常にfalseを返すようなので修正
- if (!Global.isWindowVisible("searchField"))
- menuBar.hideSearch.setChecked(false);
-
- if (searchField.isHidden() && quotaBar.isHidden() && zoomSpinner.isHidden() && notebookTree.isHidden())
- searchLayout.hide();
+ if (quotaBar.isHidden() && zoomSpinner.isHidden() && notebookTree.isHidden())
+ zoomLayout.hide();
setMenuBar(menuBar);
setupToolBar();
@SuppressWarnings("unused")
private void toggleSearchWindow() {
logger.log(logger.HIGH, "Entering NeverNote.toggleSearchWindow");
- searchLayout.toggleSearchField();
+ toggleSearchField();
menuBar.hideSearch.setChecked(searchField.isVisible());
Global.saveWindowVisible("searchField", searchField.isVisible());
logger.log(logger.HIGH, "Leaving NeverNote.toggleSearchWindow");
- }
+ }
+ private void toggleSearchField() {
+ if (searchField.isVisible())
+ searchField.hide();
+ else
+ searchField.show();
+ }
+
@SuppressWarnings("unused")
private void toggleQuotaWindow() {
logger.log(logger.HIGH, "Entering NeverNote.toggleQuotaWindow");
- searchLayout.toggleQuotaBar();
+ zoomLayout.toggleQuotaBar();
menuBar.hideQuota.setChecked(quotaBar.isVisible());
Global.saveWindowVisible("quota", quotaBar.isVisible());
logger.log(logger.HIGH, "Leaving NeverNote.toggleQuotaWindow");
@SuppressWarnings("unused")
private void toggleZoomWindow() {
logger.log(logger.HIGH, "Entering NeverNote.toggleZoomWindow");
- searchLayout.toggleZoom();
+ zoomLayout.toggleZoom();
menuBar.hideZoom.setChecked(zoomSpinner.isVisible());
Global.saveWindowVisible("zoom", zoomSpinner.isVisible());
logger.log(logger.HIGH, "Leaving NeverNote.toggleZoomWindow");
clearSavedSearchFilter();
if (Global.mimicEvernoteInterface) {
clearTagFilter();
- //searchField.clear();
- searchField.clearEditText();
+ searchField.clear();
}
menuBar.noteRestoreAction.setVisible(false);
menuBar.notebookEditAction.setEnabled(true);
@SuppressWarnings("unused")
private void toggleNotebookWindow() {
logger.log(logger.HIGH, "Entering NeverNote.toggleNotebookWindow");
- searchLayout.toggleNotebook();
+ zoomLayout.toggleNotebook();
menuBar.hideNotebooks.setChecked(notebookTree.isVisible());
Global.saveWindowVisible("notebookTree", notebookTree.isVisible());
logger.log(logger.HIGH, "Leaving NeverNote.toggleNotebookWindow");
savedSearchTree.clearSelection();
savedSearchTree.blockSignals(false);
selectedSavedSearchGUID = "";
- searchField.setEditText("");
+ searchField.setText("");
searchPerformed = false;
listManager.setSelectedSavedSearch(selectedSavedSearchGUID);
}
menuBar.savedSearchIconAction.setEnabled(true);
selectedSavedSearchGUID = selections.get(0).text(1);
SavedSearch s = conn.getSavedSearchTable().getSavedSearch(selectedSavedSearchGUID);
- searchField.setEditText(s.getQuery());
+ searchField.setText(s.getQuery());
} else {
menuBar.savedSearchEditAction.setEnabled(false);
menuBar.savedSearchDeleteAction.setEnabled(false);
menuBar.savedSearchIconAction.setEnabled(false);
selectedSavedSearchGUID = "";
- searchField.setEditText("");
+ searchField.setText("");
}
searchFieldChanged();
QWebSettings.setMaximumPagesInCache(0);
QWebSettings.setObjectCacheCapacities(0, 0, 0);
- searchField.setEditText("");
+ searchField.setdefaultText();
saveNoteColumnPositions();
saveNoteIndexWidth();
noteIndexUpdated(true);
QWebSettings.setMaximumPagesInCache(0);
QWebSettings.setObjectCacheCapacities(0, 0, 0);
- if (text.trim().equals("")) {
+ if (text.trim().equals("") && !searchField.hasFocus()) {
searchFieldCleared();
if (searchPerformed) {
inkNoteCache.clear();
saveNoteColumnPositions();
saveNoteIndexWidth();
- String text = searchField.currentText();
+ String text = searchField.text();
listManager.setEnSearch(text.trim());
listManager.loadNotesIndex();
noteIndexUpdated(false);
//toolBar.addWidget(new QLabel(" "));
//toolBar.addSeparator();
- //toolBar.addWidget(new QLabel(tr(" Search:")));
- //toolBar.addWidget(searchField);
- QSizePolicy sizePolicy = new QSizePolicy();
- sizePolicy.setHorizontalPolicy(Policy.MinimumExpanding);
- QLabel spacer = new QLabel("");
- spacer.setSizePolicy(sizePolicy);
- toolBar.addWidget(spacer);
+
+ // 検索ボックスを右寄せするためのスペーサ
+ QWidget spacerWidget = new QWidget();
+ spacerWidget.setSizePolicy(QSizePolicy.Policy.Expanding, QSizePolicy.Policy.Preferred);
+ toolBar.addWidget(spacerWidget);
+ spacerWidget.setVisible(true);
+
+ searchField = new SearchEdit(iconPath);
+ searchField.setObjectName("searchField");
+ searchField.returnPressed.connect(this, "searchFieldChanged()");
+ searchField.textChanged.connect(this,"searchFieldTextChanged(String)");
+ searchField.setFixedWidth(300);
+ searchShortcut = new QShortcut(this);
+ setupShortcut(searchShortcut, "Focus_Search");
+ searchShortcut.activated.connect(this, "focusSearch()");
+ toolBar.addWidget(searchField);
+
+ searchField.setVisible(Global.isWindowVisible("searchField"));
+ // IFIXED !searchField.isVisible() → !Global.isWindowVisible("searchField")
+ // なぜかsearchField.isVisible()が常にfalseを返すようなので修正
+ if (!Global.isWindowVisible("searchField"))
+ menuBar.hideSearch.setChecked(false);
+
+// QSizePolicy sizePolicy = new QSizePolicy();
+// sizePolicy.setHorizontalPolicy(Policy.MinimumExpanding);
+// QLabel spacer = new QLabel("");
+// spacer.setSizePolicy(sizePolicy);
+// toolBar.addWidget(spacer);
+
//searchField.setInsertPolicy(InsertPolicy.InsertAtTop);
//searchClearButton = toolBar.addAction("Search Clear");
}
int index = tabBrowser.indexOf(tab);
- String guid = tab.getBrowserWindow().getNote().getGuid();
- String content = tab.getBrowserWindow().getContent();
+// String guid = tab.getBrowserWindow().getNote().getGuid();
+// String content = tab.getBrowserWindow().getContent();
BrowserWindow browser = tab.getBrowserWindow();
- // ノートが変更されていたら保存
- if (tab.getNoteDirty()) {
- saveNoteTabBrowser(guid, content, true, browser);
- }
+// // ノートが変更されていたら保存
+// if (tab.getNoteDirty()) {
+// saveNoteTabBrowser(guid, content, true, browser);
+// }
// シグナル切断
browser.noteSignal.tagsChanged.disconnect();
}
- private void saveNoteTabBrowser(String guid, String content, Boolean save,
- BrowserWindow browser) {
- QTextCodec codec = QTextCodec.codecForName("UTF-8");
- QByteArray unicode = codec.fromUnicode(content);
- noteCache.remove(guid);
- noteCache.put(guid, unicode.toString());
- if (save) {
- thumbnailRunner.addWork("GENERATE " + guid);
- saveNote(guid, browser);
- }
- }
+// private void saveNoteTabBrowser(String guid, String content, Boolean save,
+// BrowserWindow browser) {
+// QTextCodec codec = QTextCodec.codecForName("UTF-8");
+// QByteArray unicode = codec.fromUnicode(content);
+// noteCache.remove(guid);
+// noteCache.put(guid, unicode.toString());
+// if (save) {
+// thumbnailRunner.addWork("GENERATE " + guid);
+// saveNote(guid, browser);
+// }
+// }
private void saveNote() {
// すべてのタブに対して、Dirtyを確認し、trueならセーブする
return;
} catch (EDAMSystemException e) {
if (e.getErrorCode() == EDAMErrorCode.RATE_LIMIT_REACHED) {
- QMessageBox.warning(this, tr("Rate limit reached"), tr("Rate limit reached.\nRetry your request in " + e.getRateLimitDuration() + " seconds."));
+ QMessageBox.warning(this, tr("Rate limit reached"), tr("Evernote usage has been temporarily exceeded. Please try again in ") + + e.getRateLimitDuration() + tr(" seconds."));
}
setMessage("EDAMSystemException: " +e.getMessage());
return;
return null;
} catch (EDAMSystemException e) {
if (e.getErrorCode() == EDAMErrorCode.RATE_LIMIT_REACHED) {
- QMessageBox.warning(this, tr("Rate limit reached"), tr("Rate limit reached.\nRetry your request in " + e.getRateLimitDuration() + " seconds."));
+ QMessageBox.warning(this, tr("Rate limit reached"), tr("Evernote usage has been temporarily exceeded. Please try again in ") + + e.getRateLimitDuration() + tr(" seconds."));
}
setMessage("EDAMSystemException: " +e.getMessage());
waitCursor(false);
return;
} catch (EDAMSystemException e) {
if (e.getErrorCode() == EDAMErrorCode.RATE_LIMIT_REACHED) {
- QMessageBox.warning(this, tr("Rate limit reached"), tr("Rate limit reached.\nRetry your request in " + e.getRateLimitDuration() + " seconds."));
+ QMessageBox.warning(this, tr("Rate limit reached"), tr("Evernote usage has been temporarily exceeded. Please try again in ") + + e.getRateLimitDuration() + tr(" seconds."));
}
setMessage("EDAMSystemException: " +e.getMessage());
return;
// 帯域制限の超過をユーザに通知
@SuppressWarnings("unused")
private void informRateLimit(Integer rateLimitDuration) {
- QMessageBox.warning(this, tr("Rate limit reached"), tr("Rate limit reached.\nRetry your request in " + rateLimitDuration + " seconds."));
+ QMessageBox.warning(this, tr("Rate limit reached"), tr("Evernote usage has been temporarily exceeded. Please try again in ") + + rateLimitDuration + tr(" seconds."));
}
// ツールバーの「新規」ボタンの接続スロットを設定