import com.trolltech.qt.gui.QPixmap;
import com.trolltech.qt.gui.QPrintDialog;
import com.trolltech.qt.gui.QPrinter;
-import com.trolltech.qt.gui.QProgressBar;
import com.trolltech.qt.gui.QSizePolicy;
import com.trolltech.qt.gui.QSizePolicy.Policy;
import com.trolltech.qt.gui.QSpinBox;
import cx.fbn.nevernote.dialog.NotebookEdit;
import cx.fbn.nevernote.dialog.OnlineNoteHistory;
import cx.fbn.nevernote.dialog.SavedSearchEdit;
+import cx.fbn.nevernote.dialog.SetIcon;
+import cx.fbn.nevernote.dialog.StackNotebook;
import cx.fbn.nevernote.dialog.TagEdit;
import cx.fbn.nevernote.dialog.ThumbnailViewer;
import cx.fbn.nevernote.dialog.WatchFolder;
import cx.fbn.nevernote.gui.TagTreeWidget;
import cx.fbn.nevernote.gui.Thumbnailer;
import cx.fbn.nevernote.gui.TrashTreeWidget;
+import cx.fbn.nevernote.gui.controls.QuotaProgressBar;
import cx.fbn.nevernote.sql.DatabaseConnection;
import cx.fbn.nevernote.sql.WatchFolderRecord;
import cx.fbn.nevernote.threads.IndexRunner;
public QToolBar toolBar; // The tool bar under the menu
QComboBox searchField; // search filter bar on the toolbar;
boolean searchPerformed = false; // Search was done?
- QProgressBar quotaBar; // The current quota usage
+ QuotaProgressBar quotaBar; // The current quota usage
ApplicationLogger logger;
List<String> selectedNotebookGUIDs; // List of notebook GUIDs
List<String> selectedTagGUIDs; // List of selected tag GUIDs
+ String previousSelectedTag; // Tag that was selected last time
List<String> selectedNoteGUIDs; // List of selected notes
+ String previousSelectedNotebook; // Notebook selected last time
String selectedSavedSearchGUID; // Currently selected saved searches
private final HashMap<String, ExternalBrowse> externalWindows; // Notes being edited by an external window;
public NeverNote(DatabaseConnection dbConn) {
conn = dbConn;
if (conn.getConnection() == null) {
- String msg = "Unable to connect to the database.\n\nThe most probable reason is that some other process\n" +
+ String msg = new String(tr("Unable to connect to the database.\n\nThe most probable reason is that some other process\n" +
"is accessing the database or NeverNote is already running.\n\n" +
- "Please end any other process or shutdown the other NeverNote before starting.\n\nExiting program.";
+ "Please end any other process or shutdown the other NeverNote before starting.\n\nExiting program."));
- QMessageBox.critical(null, "Database Connection Error",msg);
+ QMessageBox.critical(null, tr("Database Connection Error") ,msg);
System.exit(16);
}
thumbnailTimer = new QTimer();
thumbnailTimer.timeout.connect(this, "thumbnailTimer()");
thumbnailTimer();
- thumbnailTimer.setInterval(5*1000); // Thumbnail every 2 min
+ thumbnailTimer.setInterval(60*1000); // Thumbnail every minute
thumbnailTimer.start();
logger.log(logger.EXTREME, "Starting authentication timer");
importFilesKeep = new ArrayList<String>();
externalFileSaveTimer.start();
- notebookTree = new NotebookTreeWidget();
+ notebookTree = new NotebookTreeWidget(conn);
attributeTree = new AttributeTreeWidget();
tagTree = new TagTreeWidget(conn);
savedSearchTree = new SavedSearchTreeWidget();
searchField.setDuplicatesEnabled(false);
searchField.editTextChanged.connect(this,"searchFieldTextChanged(String)");
- quotaBar = new QProgressBar();
+ quotaBar = new QuotaProgressBar();
// Setup the thumbnail viewer
thumbnailViewer = new ThumbnailViewer();
tagTree.setDeleteAction(menuBar.tagDeleteAction);
tagTree.setEditAction(menuBar.tagEditAction);
tagTree.setAddAction(menuBar.tagAddAction);
+ tagTree.setIconAction(menuBar.tagIconAction);
tagTree.setVisible(Global.isWindowVisible("tagTree"));
tagTree.noteSignal.tagsAdded.connect(this, "tagsAdded(String, String)");
menuBar.hideTags.setChecked(Global.isWindowVisible("tagTree"));
notebookTree.setDeleteAction(menuBar.notebookDeleteAction);
notebookTree.setEditAction(menuBar.notebookEditAction);
notebookTree.setAddAction(menuBar.notebookAddAction);
+ notebookTree.setIconAction(menuBar.notebookIconAction);
+ notebookTree.setStackAction(menuBar.notebookStackAction);
notebookTree.setVisible(Global.isWindowVisible("notebookTree"));
notebookTree.noteSignal.notebookChanged.connect(this, "updateNoteNotebook(String, String)");
menuBar.hideNotebooks.setChecked(Global.isWindowVisible("notebookTree"));
savedSearchTree.setAddAction(menuBar.savedSearchAddAction);
savedSearchTree.setEditAction(menuBar.savedSearchEditAction);
savedSearchTree.setDeleteAction(menuBar.savedSearchDeleteAction);
+ savedSearchTree.setIconAction(menuBar.savedSearchIconAction);
savedSearchTree.itemSelectionChanged.connect(this, "updateSavedSearchSelection()");
savedSearchTree.setVisible(Global.isWindowVisible("savedSearchTree"));
menuBar.hideSavedSearches.setChecked(Global.isWindowVisible("savedSearchTree"));
noteTableView.resetViewport.connect(this, "scrollToCurrentGuid()");
noteTableView.doubleClicked.connect(this, "listDoubleClick()");
listManager.trashSignal.countChanged.connect(trashTree, "updateCounts(Integer)");
+
+ quotaBar.setMouseClickAction(menuBar.accountAction);
+
trashTree.load();
trashTree.itemSelectionChanged.connect(this, "trashTreeSelection()");
trashTree.setEmptyAction(menuBar.emptyTrashAction);
// Setup the tree containing the user's notebooks.
private void initializeNotebookTree() {
logger.log(logger.HIGH, "Entering NeverNote.initializeNotebookTree");
- notebookTree.itemSelectionChanged.connect(this, "notebookTreeSelection()");
+ notebookTree.itemClicked.connect(this, "notebookTreeSelection()");
listManager.notebookSignal.refreshNotebookTreeCounts.connect(notebookTree, "updateCounts(List, List)");
- // notebookTree.resize(Global.getSize("notebookTree"));
logger.log(logger.HIGH, "Leaving NeverNote.initializeNotebookTree");
}
// Listener when a notebook is selected
menuBar.noteRestoreAction.setVisible(false);
menuBar.notebookEditAction.setEnabled(true);
menuBar.notebookDeleteAction.setEnabled(true);
+ menuBar.notebookIconAction.setEnabled(true);
+ menuBar.notebookStackAction.setEnabled(true);
List<QTreeWidgetItem> selections = notebookTree.selectedItems();
QTreeWidgetItem currentSelection;
selectedNotebookGUIDs.clear();
if (!Global.mimicEvernoteInterface) {
for (int i=0; i<selections.size(); i++) {
currentSelection = selections.get(i);
- selectedNotebookGUIDs.add(currentSelection.text(2));
+ if (!currentSelection.text(2).equals("STACK"))
+ selectedNotebookGUIDs.add(currentSelection.text(2));
+ else {
+ String stackName = currentSelection.text(0);
+ for (int j=0; j<listManager.getNotebookIndex().size(); j++) {
+ Notebook book = listManager.getNotebookIndex().get(j);
+ if (book.getStack()!=null && book.getStack().equalsIgnoreCase(stackName))
+ selectedNotebookGUIDs.add(book.getGuid());
+ }
+ }
}
selectedNotebookGUIDs.clear();
menuBar.notebookEditAction.setEnabled(false);
menuBar.notebookDeleteAction.setEnabled(false);
+ menuBar.notebookIconAction.setEnabled(false);
+ menuBar.notebookStackAction.setEnabled(false);
}
+ if (selectedNotebookGUIDs.size() == 1 && selectedNotebookGUIDs.get(0).equals(previousSelectedNotebook)) {
+ previousSelectedNotebook = selectedNotebookGUIDs.get(0);
+ previousSelectedNotebook = "";
+ notebookTree.clearSelection();
+ notebookTreeSelection();
+ return;
+ }
+ if (selectedNotebookGUIDs.size() == 1)
+ previousSelectedNotebook = selectedNotebookGUIDs.get(0);
+ if (selectedNotebookGUIDs.size() > 1)
+ previousSelectedNotebook = "";
} else {
String guid = "";
- if (selections.size() > 0)
+ String stackName = "";
+ if (selections.size() > 0) {
guid = (selections.get(0).text(2));
- if (!guid.equals(""))
+ stackName = selections.get(0).text(0);
+ }
+ if (!guid.equals("") && !guid.equals("STACK")) {
selectedNotebookGUIDs.add(guid);
+ menuBar.notebookIconAction.setEnabled(true);
+ }
+ else {
+ menuBar.notebookIconAction.setEnabled(false);
+ for (int j=0; j<listManager.getNotebookIndex().size(); j++) {
+ Notebook book = listManager.getNotebookIndex().get(j);
+ if (book.getStack() != null && book.getStack().equalsIgnoreCase(stackName))
+ selectedNotebookGUIDs.add(book.getGuid());
+ }
+ }
}
listManager.setSelectedNotebooks(selectedNotebookGUIDs);
listManager.loadNotesIndex();
// Triggered when the notebook DB has been updated
private void notebookIndexUpdated() {
logger.log(logger.HIGH, "Entering NeverNote.notebookIndexUpdated");
- if (selectedNotebookGUIDs == null)
+
+ // Get the possible icons
+ HashMap<String, QIcon> icons = conn.getNotebookTable().getAllIcons();
+ notebookTree.setIcons(icons);
+
+ if (selectedNotebookGUIDs == null)
selectedNotebookGUIDs = new ArrayList<String>();
List<Notebook> books = conn.getNotebookTable().getAll();
for (int i=books.size()-1; i>=0; i--) {
}
// Edit an existing notebook
@SuppressWarnings("unused")
+ private void stackNotebook() {
+ logger.log(logger.HIGH, "Entering NeverNote.stackNotebook");
+ StackNotebook edit = new StackNotebook();
+
+ List<QTreeWidgetItem> selections = notebookTree.selectedItems();
+ QTreeWidgetItem currentSelection;
+ for (int i=0; i<selections.size(); i++) {
+ currentSelection = selections.get(0);
+ String guid = currentSelection.text(2);
+ if (guid.equalsIgnoreCase("")) {
+ QMessageBox.critical(this, tr("Unable To Stack") ,tr("You can't stack the \"All Notebooks\" item."));
+ return;
+ }
+ if (guid.equalsIgnoreCase("STACK")) {
+ QMessageBox.critical(this, tr("Unable To Stack") ,tr("You can't stack a stack."));
+ return;
+ }
+ }
+
+ edit.setStackNames(conn.getNotebookTable().getAllStackNames());
+
+
+ edit.exec();
+
+ if (!edit.okPressed())
+ return;
+
+ String stack = edit.getStackName();
+
+ for (int i=0; i<selections.size(); i++) {
+ currentSelection = selections.get(i);
+ String guid = currentSelection.text(2);
+ listManager.updateNotebookStack(guid, stack);
+ }
+ notebookIndexUpdated();
+ logger.log(logger.HIGH, "Leaving NeverNote.stackNotebook");
+ }
+ // Edit an existing notebook
+ @SuppressWarnings("unused")
private void editNotebook() {
logger.log(logger.HIGH, "Entering NeverNote.editNotebook");
NotebookEdit edit = new NotebookEdit();
- edit.setTitle(tr("Edit Notebook"));
- edit.setLocalCheckboxEnabled(false);
+
List<QTreeWidgetItem> selections = notebookTree.selectedItems();
QTreeWidgetItem currentSelection;
currentSelection = selections.get(0);
edit.setNotebook(currentSelection.text(0));
- edit.setNotebooks(listManager.getNotebookIndex());
-
+
String guid = currentSelection.text(2);
- for (int i=0; i<listManager.getNotebookIndex().size(); i++) {
- if (listManager.getNotebookIndex().get(i).getGuid().equals(guid)) {
- edit.setDefaultNotebook(listManager.getNotebookIndex().get(i).isDefaultNotebook());
- i=listManager.getNotebookIndex().size();
+ if (!guid.equalsIgnoreCase("STACK")) {
+ edit.setTitle(tr("Edit Notebook"));
+ edit.setNotebooks(listManager.getNotebookIndex());
+ edit.setLocalCheckboxEnabled(false);
+ for (int i=0; i<listManager.getNotebookIndex().size(); i++) {
+ if (listManager.getNotebookIndex().get(i).getGuid().equals(guid)) {
+ edit.setDefaultNotebook(listManager.getNotebookIndex().get(i).isDefaultNotebook());
+ i=listManager.getNotebookIndex().size();
+ }
}
+ } else {
+ edit.setTitle(tr("Edit Stack"));
+ edit.setStacks(conn.getNotebookTable().getAllStackNames());
+ edit.hideLocalCheckbox();
+ edit.hideDefaultCheckbox();
}
+
edit.exec();
if (!edit.okPressed())
return;
+
+ if (guid.equalsIgnoreCase("STACK")) {
+ conn.getNotebookTable().renameStacks(currentSelection.text(0), edit.getNotebook());
+ for (int j=0; j<listManager.getNotebookIndex().size(); j++) {
+ if (listManager.getNotebookIndex().get(j).getStack().equalsIgnoreCase(currentSelection.text(0)))
+ listManager.getNotebookIndex().get(j).setStack(edit.getNotebook());
+ }
+ conn.getNotebookTable().renameStacks(currentSelection.text(0), edit.getNotebook());
+ currentSelection.setText(0, edit.getNotebook());
+ return;
+ }
+
updateListNotebookName(currentSelection.text(0), edit.getNotebook());
currentSelection.setText(0, edit.getNotebook());
@SuppressWarnings("unused")
private void deleteNotebook() {
logger.log(logger.HIGH, "Entering NeverNote.deleteNotebook");
+ boolean stacksFound = false;
+ boolean notebooksFound = false;
boolean assigned = false;
// Check if any notes have this notebook
List<QTreeWidgetItem> selections = notebookTree.selectedItems();
QTreeWidgetItem currentSelection;
currentSelection = selections.get(i);
String guid = currentSelection.text(2);
- for (int j=0; j<listManager.getNoteIndex().size(); j++) {
- String noteGuid = listManager.getNoteIndex().get(j).getNotebookGuid();
- if (noteGuid.equals(guid)) {
- assigned = true;
- j=listManager.getNoteIndex().size();
- i=selections.size();
+ if (!guid.equalsIgnoreCase("STACK")) {
+ notebooksFound = true;
+ for (int j=0; j<listManager.getNoteIndex().size(); j++) {
+ String noteGuid = listManager.getNoteIndex().get(j).getNotebookGuid();
+ if (noteGuid.equals(guid)) {
+ assigned = true;
+ j=listManager.getNoteIndex().size();
+ i=selections.size();
+ }
}
+ } else {
+ stacksFound = true;
}
}
if (assigned) {
}
// If all notebooks are clear, verify the delete
- if (QMessageBox.question(this, tr("Confirmation"), tr("Delete the selected notebooks?"),
+ String msg1 = new String(tr("Delete selected notebooks?"));
+ String msg2 = new String(tr("Remove selected stacks (notebooks will not be deleted)?"));
+ String msg3 = new String(tr("Delete selected notebooks & remove stacks? Notebooks under the stacks are" +
+ " not deleted unless selected?"));
+ String msg = "";
+ if (stacksFound && notebooksFound)
+ msg = msg3;
+ if (!stacksFound && notebooksFound)
+ msg = msg1;
+ if (stacksFound && !notebooksFound)
+ msg = msg2;
+ if (QMessageBox.question(this, tr("Confirmation"), msg,
QMessageBox.StandardButton.Yes,
QMessageBox.StandardButton.No)==StandardButton.No.value()) {
return;
QTreeWidgetItem currentSelection;
currentSelection = selections.get(i);
String guid = currentSelection.text(2);
- conn.getNotebookTable().expungeNotebook(guid, true);
- listManager.deleteNotebook(guid);
+ if (currentSelection.text(2).equalsIgnoreCase("STACK")) {
+ conn.getNotebookTable().renameStacks(currentSelection.text(0), "");
+ listManager.renameStack(currentSelection.text(0), "");
+ } else {
+ conn.getNotebookTable().expungeNotebook(guid, true);
+ listManager.deleteNotebook(guid);
+ }
}
-// for (int i=<dbRunner.getLocalNotebooks().size()-1; i>=0; i--) {
- // if (dbRunner.getLocalNotebooks().get(i).equals(arg0))
- // }
+
notebookTreeSelection();
notebookTree.load(listManager.getNotebookIndex(), listManager.getLocalNotebooks());
listManager.countNotebookResults(listManager.getNoteIndex());
-// notebookTree.updateCounts(listManager.getNotebookIndex(), listManager.getNotebookCounter());
logger.log(logger.HIGH, "Entering NeverNote.deleteNotebook");
}
// A note's notebook has been updated
waitCursor(false);
browserWindow.setNotebookList(nbooks);
}
+ // Change the notebook's icon
+ private void setNotebookIcon() {
+ QTreeWidgetItem currentSelection;
+ List<QTreeWidgetItem> selections = notebookTree.selectedItems();
+ if (selections.size() == 0)
+ return;
+
+ currentSelection = selections.get(0);
+ String guid = currentSelection.text(2);
+ if (guid.equalsIgnoreCase(""))
+ return;
+ QIcon currentIcon = currentSelection.icon(0);
+ QIcon icon = conn.getNotebookTable().getIcon(guid);
+ SetIcon dialog;
+ if (icon == null) {
+ dialog = new SetIcon(currentIcon);
+ dialog.setUseDefaultIcon(true);
+ } else {
+ dialog = new SetIcon(icon);
+ dialog.setUseDefaultIcon(false);
+ }
+ dialog.exec();
+ if (dialog.okPressed()) {
+ QIcon newIcon = dialog.getIcon();
+ conn.getNotebookTable().setIcon(guid, newIcon, dialog.getFileType());
+ if (newIcon == null) {
+ boolean isPublished = false;;
+ boolean found = false;
+ for (int i=0; i<listManager.getNotebookIndex().size() && !found; i++) {
+ if (listManager.getNotebookIndex().get(i).getGuid().equals(guid)) {
+ isPublished = listManager.getNotebookIndex().get(i).isPublished();
+ found = true;
+ }
+ }
+ newIcon = notebookTree.findDefaultIcon(guid, currentSelection.text(1), listManager.getLocalNotebooks(), isPublished);
+ }
+ currentSelection.setIcon(0, newIcon);
+ }
-
+ }
//***************************************************************
// Setup the tree containing the user's tags
private void initializeTagTree() {
logger.log(logger.HIGH, "Entering NeverNote.initializeTagTree");
- tagTree.itemSelectionChanged.connect(this, "tagTreeSelection()");
+// tagTree.itemSelectionChanged.connect(this, "tagTreeSelection()");
+ tagTree.itemClicked.connect(this, "tagTreeSelection()");
listManager.tagSignal.refreshTagTreeCounts.connect(tagTree, "updateCounts(List)");
logger.log(logger.HIGH, "Leaving NeverNote.initializeTagTree");
}
if (selections.size() > 0) {
menuBar.tagEditAction.setEnabled(true);
menuBar.tagDeleteAction.setEnabled(true);
+ menuBar.tagIconAction.setEnabled(true);
}
else {
menuBar.tagEditAction.setEnabled(false);
menuBar.tagDeleteAction.setEnabled(false);
+ menuBar.tagIconAction.setEnabled(true);
}
+ if (selectedTagGUIDs.size() == 1 && selectedTagGUIDs.get(0).equals(previousSelectedTag)) {
+ previousSelectedTag = selectedTagGUIDs.get(0);
+ previousSelectedTag = "";
+ tagTree.clearSelection();
+ tagTreeSelection();
+ return;
+ }
+ if (selectedTagGUIDs.size() == 1)
+ previousSelectedTag = selectedTagGUIDs.get(0);
+ if (selectedTagGUIDs.size() > 1)
+ previousSelectedTag = "";
listManager.setSelectedTags(selectedTagGUIDs);
listManager.loadNotesIndex();
noteIndexUpdated(false);
// selectedTagGUIDs.clear(); // clear out old entries
tagTree.blockSignals(true);
- if (reload)
+ if (reload) {
+ tagTree.setIcons(conn.getTagTable().getAllIcons());
tagTree.load(listManager.getTagIndex());
+ }
for (int i=selectedTagGUIDs.size()-1; i>=0; i--) {
boolean found = tagTree.selectGuid(selectedTagGUIDs.get(i));
if (!found)
menuBar.noteRestoreAction.setVisible(false);
menuBar.tagEditAction.setEnabled(false);
menuBar.tagDeleteAction.setEnabled(false);
+ menuBar.tagIconAction.setEnabled(false);
selectedTagGUIDs.clear();
listManager.setSelectedTags(selectedTagGUIDs);
tagTree.blockSignals(false);
}
+ // Change the icon for a tag
+ private void setTagIcon() {
+ QTreeWidgetItem currentSelection;
+ List<QTreeWidgetItem> selections = tagTree.selectedItems();
+ if (selections.size() == 0)
+ return;
+
+ currentSelection = selections.get(0);
+ String guid = currentSelection.text(2);
+
+ QIcon currentIcon = currentSelection.icon(0);
+ QIcon icon = conn.getTagTable().getIcon(guid);
+ SetIcon dialog;
+ if (icon == null) {
+ dialog = new SetIcon(currentIcon);
+ dialog.setUseDefaultIcon(true);
+ } else {
+ dialog = new SetIcon(icon);
+ dialog.setUseDefaultIcon(false);
+ }
+ dialog.exec();
+ if (dialog.okPressed()) {
+ QIcon newIcon = dialog.getIcon();
+ conn.getTagTable().setIcon(guid, newIcon, dialog.getFileType());
+ if (newIcon == null)
+ newIcon = new QIcon(iconPath+"tag.png");
+ currentSelection.setIcon(0, newIcon);
+ }
+ }
+
//***************************************************************
//***************************************************************
String currentGuid = selectedSavedSearchGUID;
menuBar.savedSearchEditAction.setEnabled(true);
menuBar.savedSearchDeleteAction.setEnabled(true);
+ menuBar.savedSearchIconAction.setEnabled(true);
List<QTreeWidgetItem> selections = savedSearchTree.selectedItems();
QTreeWidgetItem currentSelection;
selectedSavedSearchGUID = "";
private void clearSavedSearchFilter() {
menuBar.savedSearchEditAction.setEnabled(false);
menuBar.savedSearchDeleteAction.setEnabled(false);
+ menuBar.savedSearchIconAction.setEnabled(false);
savedSearchTree.blockSignals(true);
savedSearchTree.clearSelection();
savedSearchTree.blockSignals(false);
if (selectedSavedSearchGUID == null)
selectedSavedSearchGUID = new String();
savedSearchTree.blockSignals(true);
+ savedSearchTree.setIcons(conn.getSavedSearchTable().getAllIcons());
savedSearchTree.load(listManager.getSavedSearchIndex());
savedSearchTree.selectGuid(selectedSavedSearchGUID);
savedSearchTree.blockSignals(false);
menuBar.savedSearchEditAction.setEnabled(true);
menuBar.savedSearchDeleteAction.setEnabled(true);
+ menuBar.savedSearchIconAction.setEnabled(true);
List<QTreeWidgetItem> selections = savedSearchTree.selectedItems();
if (selections.size() > 0) {
menuBar.savedSearchEditAction.setEnabled(true);
menuBar.savedSearchDeleteAction.setEnabled(true);
+ menuBar.savedSearchIconAction.setEnabled(true);
selectedSavedSearchGUID = selections.get(0).text(1);
SavedSearch s = conn.getSavedSearchTable().getSavedSearch(selectedSavedSearchGUID);
searchField.setEditText(s.getQuery());
} else {
menuBar.savedSearchEditAction.setEnabled(false);
menuBar.savedSearchDeleteAction.setEnabled(false);
+ menuBar.savedSearchIconAction.setEnabled(false);
selectedSavedSearchGUID = "";
searchField.setEditText("");
}
Global.saveWindowVisible("savedSearchTree", savedSearchTree.isVisible());
logger.log(logger.HIGH, "Leaving NeverNote.toggleSavedSearchWindow");
}
+ // Change the icon for a saved search
+ private void setSavedSearchIcon() {
+ QTreeWidgetItem currentSelection;
+ List<QTreeWidgetItem> selections = savedSearchTree.selectedItems();
+ if (selections.size() == 0)
+ return;
+
+ currentSelection = selections.get(0);
+ String guid = currentSelection.text(1);
+
+ QIcon currentIcon = currentSelection.icon(0);
+ QIcon icon = conn.getSavedSearchTable().getIcon(guid);
+ SetIcon dialog;
+ if (icon == null) {
+ dialog = new SetIcon(currentIcon);
+ dialog.setUseDefaultIcon(true);
+ } else {
+ dialog = new SetIcon(icon);
+ dialog.setUseDefaultIcon(false);
+ }
+ dialog.exec();
+ if (dialog.okPressed()) {
+ QIcon newIcon = dialog.getIcon();
+ conn.getSavedSearchTable().setIcon(guid, newIcon, dialog.getFileType());
+ if (newIcon == null)
+ newIcon = new QIcon(iconPath+"search.png");
+ currentSelection.setIcon(0, newIcon);
+ }
+
+ }
if (currentNoteGuid == null)
currentNoteGuid = new String();
+ //determine current note guid
for (Note note : listManager.getNoteIndex()) {
tempNoteGuid = note.getGuid();
if (currentNoteGuid.equals(tempNoteGuid)) {
- saveCurrentNoteGuid = new String(tempNoteGuid);
+ saveCurrentNoteGuid = tempNoteGuid;
}
}
browserWindow.setDisabled(true);
}
- if (saveCurrentNoteGuid.equals("") && listManager.getNoteIndex().size() >0) {
- currentNoteGuid = listManager.getNoteIndex().get(listManager.getNoteIndex().size()-1).getGuid();
+ if (saveCurrentNoteGuid.equals("") && listManager.getNoteIndex().size() > 0) {
currentNote = listManager.getNoteIndex().get(listManager.getNoteIndex().size()-1);
+ currentNoteGuid = currentNote.getGuid();
refreshEvernoteNote(true);
} else {
- refreshEvernoteNote(false);
+ //we can reload if note not dirty
+ refreshEvernoteNote(!noteDirty);
}
reloadTagTree(false);
externalWindows.get(currentNoteGuid).raise();
return;
}
-
// We have a new external editor to create
QIcon appIcon = new QIcon(iconPath+"nevernote.png");
ExternalBrowse newBrowser = new ExternalBrowse(conn);
browserWindow.getBrowser().setContent(unicode);
}
if (save) {
+ thumbnailRunner.addWork("GENERATE "+ guid);
saveNote(guid, browser);
}
private void saveNote() {
if (noteDirty) {
saveNote(currentNoteGuid, browserWindow);
+ thumbnailRunner.addWork("GENERATE "+ currentNoteGuid);
noteDirty = false;
}
}
browserWindow.setReadOnly(true);
return;
}
+
if (!reload)
return;
loadNoteBrowserInformation(browserWindow);
}
+
private void loadNoteBrowserInformation(BrowserWindow browser) {
NoteFormatter formatter = new NoteFormatter(logger, conn, tempFiles);
formatter.setNote(currentNote, Global.pdfPreview());
listManager.countNotebookResults(listManager.getNoteIndex());
browserWindow.titleLabel.setFocus();
browserWindow.titleLabel.selectAll();
-// notebookTree.updateCounts(listManager.getNotebookIndex(), listManager.getNotebookCounter());
+// notebookTree.updateCounts(listManager.getNotebookIndex(), listManager.getNotebookCounter());
+
+ // If the window is hidden, then we want to popup this in an external window &
+ if (!isVisible())
+ listDoubleClick();
logger.log(logger.HIGH, "Leaving NeverNote.addNote");
}
// Restore a note from the trash;
}
}
private void thumbnailHTMLReady(String guid, QByteArray html, Integer zoom) {
-
logger.log(logger.HIGH, "Entering thumnailHTMLReady()");
logger.log(logger.HIGH, "Thumbnail ready for " +guid);
// Find an idle preview object
}
private void thumbnailTimer() {
- if (Global.enableThumbnails())
+ if (Global.enableThumbnails() && conn.getNoteTable().getThumbnailNeededCount() > 1) {
+ thumbnailTimer.setInterval(10*1000);
thumbnailRunner.addWork("SCAN");
+ } else {
+ thumbnailTimer.setInterval(60*1000);
+ }
}
//**************************************************