QThreadPool.globalInstance().setMaxThreadCount(indexRunnerCount+5); // increase max thread count
logger.log(logger.EXTREME, "Building list manager");
- listManager = new ListManager(conn, logger, Global.mainThreadId);
+ listManager = new ListManager(conn, logger);
logger.log(logger.EXTREME, "Building index runners & timers");
indexRunner = new IndexRunner("indexRunner.log", Global.getDatabaseUrl(), Global.getDatabaseUserid(), Global.getDatabaseUserPassword(), Global.cipherPassword);
tagTree = new TagTreeWidget(conn);
savedSearchTree = new SavedSearchTreeWidget();
trashTree = new TrashTreeWidget();
- noteTableView = new TableView(logger);
+ noteTableView = new TableView(logger, listManager);
QGridLayout leftGrid = new QGridLayout();
leftSplitter1.setLayout(leftGrid);
browserWindow.noteSignal.noteChanged.connect(this, "invalidateNoteCache(String, String)");
browserWindow.noteSignal.noteChanged.connect(this, "setNoteDirty()");
browserWindow.noteSignal.titleChanged.connect(listManager, "updateNoteTitle(String, String)");
- browserWindow.noteSignal.titleChanged.connect(this, "updateListTitle(String, String)");
- browserWindow.noteSignal.notebookChanged.connect(this, "updateNoteNotebook(String, String)");
+// browserWindow.noteSignal.notebookChanged.connect(this, "updateNoteNotebook(String, String)");
browserWindow.noteSignal.createdDateChanged.connect(listManager, "updateNoteCreatedDate(String, QDateTime)");
- browserWindow.noteSignal.createdDateChanged.connect(this, "updateListDateCreated(String, QDateTime)");
browserWindow.noteSignal.alteredDateChanged.connect(listManager, "updateNoteAlteredDate(String, QDateTime)");
- browserWindow.noteSignal.alteredDateChanged.connect(this, "updateListDateChanged(String, QDateTime)");
browserWindow.noteSignal.subjectDateChanged.connect(listManager, "updateNoteSubjectDate(String, QDateTime)");
- browserWindow.noteSignal.subjectDateChanged.connect(this, "updateListDateSubject(String, QDateTime)");
browserWindow.noteSignal.authorChanged.connect(listManager, "updateNoteAuthor(String, String)");
browserWindow.noteSignal.geoChanged.connect(listManager, "updateNoteGeoTag(String, Double,Double,Double)");
- browserWindow.noteSignal.authorChanged.connect(this, "updateListAuthor(String, String)");
browserWindow.noteSignal.geoChanged.connect(this, "setNoteDirty()");
browserWindow.noteSignal.sourceUrlChanged.connect(listManager, "updateNoteSourceUrl(String, String)");
- browserWindow.noteSignal.sourceUrlChanged.connect(this, "updateListSourceUrl(String, String)");
browserWindow.focusLost.connect(this, "saveNote()");
browserWindow.resourceSignal.contentChanged.connect(this, "externalFileEdited(String)");
-// browserWindow.resourceSignal.externalFileEdit.connect(this, "saveResourceLater(String, String)");
}
if (tagName == null)
return;
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String titleGuid = (String)ix.values().toArray()[0];
if (titleGuid.equals(noteGuid)) {
- String text = (String)noteTableView.model.data(i, Global.noteTableTagPosition);
+ String text = (String)listManager.getNoteTableModel().data(i, Global.noteTableTagPosition);
if (!text.trim().equals(""))
text = text + Global.tagDelimeter + " " +tagName;
else
text = tagName;
- noteTableView.model.setData(i, Global.noteTableTagPosition, text);
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableTagPosition, text);
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
if (noteGuid.equals(currentNoteGuid))
browserWindow.setTag(text);
- i=noteTableView.model.rowCount();
+ i=listManager.getNoteTableModel().rowCount();
}
}
}
upButton.setEnabled(false);
else
upButton.setEnabled(true);
- if (row < noteTableView.model.rowCount()-1)
+ if (row < listManager.getNoteTableModel().rowCount()-1)
downButton.setEnabled(true);
else
downButton.setEnabled(false);
// Trigger a refresh when the note db has been updated
private void noteIndexUpdated(boolean reload) {
logger.log(logger.HIGH, "Entering NeverNote.noteIndexUpdated");
- Global.traceReset();
saveNote();
refreshEvernoteNoteList();
logger.log(logger.HIGH, "Calling note table reload in NeverNote.noteIndexUpdated() - "+reload);
- noteTableView.load(listManager, reload);
+ noteTableView.load(reload);
scrollToGuid(currentNoteGuid);
logger.log(logger.HIGH, "Leaving NeverNote.noteIndexUpdated");
}
private void downAction() {
List<QModelIndex> selections = noteTableView.selectionModel().selectedRows();
int row = selections.get(0).row();
- int max = noteTableView.model.rowCount();
+ int max = listManager.getNoteTableModel().rowCount();
if (row < max-1) {
noteTableView.selectRow(row+1);
}
tagBuffer.append(", ");
}
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(guid)) {
- noteTableView.model.setData(i, Global.noteTableTagPosition,tagBuffer.toString());
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableTagPosition,tagBuffer.toString());
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
return;
}
}
}
// Update a title for a specific note in the list
@SuppressWarnings("unused")
- private void updateListTitle(String guid, String title) {
- logger.log(logger.HIGH, "Entering NeverNote.updateListTitle");
-
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- //QModelIndex modelIndex = noteTableView.proxyModel.index(i, Global.noteTableGuidPosition);
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
- if (modelIndex != null) {
-// SortedMap<Integer, Object> ix = noteTableView.proxyModel.itemData(modelIndex);
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
- String tableGuid = (String)ix.values().toArray()[0];
- if (tableGuid.equals(guid)) {
- noteTableView.model.setData(i, Global.noteTableTitlePosition,title);
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
- return;
- }
- }
- }
- logger.log(logger.HIGH, "Leaving NeverNote.updateListTitle");
- }
- // Update a title for a specific note in the list
- @SuppressWarnings("unused")
private void updateListAuthor(String guid, String author) {
logger.log(logger.HIGH, "Entering NeverNote.updateListAuthor");
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
//QModelIndex modelIndex = noteTableView.proxyModel.index(i, Global.noteTableGuidPosition);
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
// SortedMap<Integer, Object> ix = noteTableView.proxyModel.itemData(modelIndex);
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(guid)) {
- noteTableView.model.setData(i, Global.noteTableAuthorPosition,author);
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableAuthorPosition,author);
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
return;
}
}
private void updateListNoteNotebook(String guid, String notebook) {
logger.log(logger.HIGH, "Entering NeverNote.updateListNoteNotebook");
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
//QModelIndex modelIndex = noteTableView.proxyModel.index(i, Global.noteTableGuidPosition);
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
// SortedMap<Integer, Object> ix = noteTableView.proxyModel.itemData(modelIndex);
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(guid)) {
- noteTableView.model.setData(i, Global.noteTableNotebookPosition,notebook);
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableNotebookPosition,notebook);
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
return;
}
}
private void updateListSourceUrl(String guid, String url) {
logger.log(logger.HIGH, "Entering NeverNote.updateListAuthor");
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
//QModelIndex modelIndex = noteTableView.proxyModel.index(i, Global.noteTableGuidPosition);
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
// SortedMap<Integer, Object> ix = noteTableView.proxyModel.itemData(modelIndex);
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(guid)) {
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
- noteTableView.model.setData(i, Global.noteTableSourceUrlPosition,url);
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableSourceUrlPosition,url);
return;
}
}
private void updateListGuid(String oldGuid, String newGuid) {
logger.log(logger.HIGH, "Entering NeverNote.updateListTitle");
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(oldGuid)) {
- noteTableView.model.setData(i, Global.noteTableGuidPosition,newGuid);
- //noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableGuidPosition,newGuid);
+ //listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
return;
}
}
if (listManager.getNoteIndex().get(j).getTagGuids().contains(guid)) {
String newName = listManager.getTagNamesForNote(listManager.getNoteIndex().get(j));
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String noteGuid = (String)ix.values().toArray()[0];
if (noteGuid.equalsIgnoreCase(listManager.getNoteIndex().get(j).getGuid())) {
- noteTableView.model.setData(i, Global.noteTableTagPosition, newName);
- //noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
- i=noteTableView.model.rowCount();
+ listManager.getNoteTableModel().setData(i, Global.noteTableTagPosition, newName);
+ //listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
+ i=listManager.getNoteTableModel().rowCount();
}
}
}
}
String newName = listManager.getTagNamesForNote(listManager.getNoteIndex().get(j));
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String noteGuid = (String)ix.values().toArray()[0];
if (noteGuid.equalsIgnoreCase(listManager.getNoteIndex().get(j).getGuid())) {
- noteTableView.model.setData(i, Global.noteTableTagPosition, newName);
-// noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
- i=noteTableView.model.rowCount();
+ listManager.getNoteTableModel().setData(i, Global.noteTableTagPosition, newName);
+// listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
+ i=listManager.getNoteTableModel().rowCount();
}
}
}
private void updateListNotebookName(String oldName, String newName) {
logger.log(logger.HIGH, "Entering NeverNote.updateListNotebookName");
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableNotebookPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableNotebookPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableName = (String)ix.values().toArray()[0];
if (tableName.equalsIgnoreCase(oldName)) {
-// noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
- noteTableView.model.setData(i, Global.noteTableNotebookPosition, newName);
+// listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableNotebookPosition, newName);
}
}
}
private void updateListDateCreated(String guid, QDateTime date) {
logger.log(logger.HIGH, "Entering NeverNote.updateListDateCreated");
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(guid)) {
- noteTableView.model.setData(i, Global.noteTableCreationPosition, date.toString(Global.getDateFormat()+" " +Global.getTimeFormat()));
+ listManager.getNoteTableModel().setData(i, Global.noteTableCreationPosition, date.toString(Global.getDateFormat()+" " +Global.getTimeFormat()));
return;
}
}
private void updateListDateSubject(String guid, QDateTime date) {
logger.log(logger.HIGH, "Entering NeverNote.updateListDateSubject");
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(guid)) {
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
- noteTableView.model.setData(i, Global.noteTableSubjectDatePosition, date.toString(Global.getDateFormat()+" " +Global.getTimeFormat()));
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableSubjectDatePosition, date.toString(Global.getDateFormat()+" " +Global.getTimeFormat()));
return;
}
}
private void updateListDateChanged(String guid, QDateTime date) {
logger.log(logger.HIGH, "Entering NeverNote.updateListDateChanged");
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(guid)) {
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
- noteTableView.model.setData(i, Global.noteTableChangedPosition, date.toString(Global.getDateFormat()+" " +Global.getTimeFormat()));
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableChangedPosition, date.toString(Global.getDateFormat()+" " +Global.getTimeFormat()));
return;
}
}
private void updateListDateChanged() {
logger.log(logger.HIGH, "Entering NeverNote.updateListDateChanged");
QDateTime date = new QDateTime(QDateTime.currentDateTime());
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(currentNoteGuid)) {
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
- noteTableView.model.setData(i, Global.noteTableChangedPosition, date.toString(Global.getDateFormat()+" " +Global.getTimeFormat()));
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableChangedPosition, date.toString(Global.getDateFormat()+" " +Global.getTimeFormat()));
return;
}
}
// noteTableView.setCurrentIndex(index);
noteTableView.selectRow(i);
noteTableView.scrollTo(index, ScrollHint.EnsureVisible); // This should work, but it doesn't
- i=noteTableView.model.rowCount();
+ i=listManager.getNoteTableModel().rowCount();
}
}
}
selectedNoteGUIDs.add(currentNoteGuid);
for (int j=0; j<selectedNoteGUIDs.size(); j++) {
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(selectedNoteGUIDs.get(j))) {
for (int k=0; k<Global.noteTableColumnCount; k++) {
- noteTableView.model.setData(i, k, backgroundColor, Qt.ItemDataRole.BackgroundRole);
- noteTableView.model.setData(i, k, foregroundColor, Qt.ItemDataRole.ForegroundRole);
+ listManager.getNoteTableModel().setData(i, k, backgroundColor, Qt.ItemDataRole.BackgroundRole);
+ listManager.getNoteTableModel().setData(i, k, foregroundColor, Qt.ItemDataRole.ForegroundRole);
listManager.updateNoteTitleColor(selectedNoteGUIDs.get(j), backgroundColor.rgb());
}
- i=noteTableView.model.rowCount();
+ i=listManager.getNoteTableModel().rowCount();
}
}
}
noteDirty = true;
listManager.getUnsynchronizedNotes().add(currentNoteGuid);
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
+ for (int i=0; i<listManager.getNoteTableModel().rowCount(); i++) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(i, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(currentNoteGuid)) {
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, "false");
+ listManager.getNoteTableModel().setData(i, Global.noteTableSynchronizedPosition, "false");
return;
}
}
if (selectedNoteGUIDs.size() == 0 && !currentNoteGuid.equals(""))
selectedNoteGUIDs.add(currentNoteGuid);
for (int i=selectedNoteGUIDs.size()-1; i>=0; i--) {
- for (int j=noteTableView.model.rowCount()-1; j>=0; j--) {
- QModelIndex modelIndex = noteTableView.model.index(j, Global.noteTableGuidPosition);
+ for (int j=listManager.getNoteTableModel().rowCount()-1; j>=0; j--) {
+ QModelIndex modelIndex = listManager.getNoteTableModel().index(j, Global.noteTableGuidPosition);
if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
+ SortedMap<Integer, Object> ix = listManager.getNoteTableModel().itemData(modelIndex);
String tableGuid = (String)ix.values().toArray()[0];
if (tableGuid.equals(selectedNoteGUIDs.get(i))) {
- noteTableView.model.removeRow(j);
+ listManager.getNoteTableModel().removeRow(j);
j=-1;
}
}
newNote.setAttributes(new NoteAttributes());
conn.getNoteTable().addNote(newNote, true);
listManager.getUnsynchronizedNotes().add(newNote.getGuid());
- noteTableView.insertRow(listManager, newNote, true, -1);
+ listManager.addNote(newNote);
+ noteTableView.insertRow(newNote, true, -1);
currentNote = newNote;
currentNoteGuid = currentNote.getGuid();
- listManager.addNote(newNote);
refreshEvernoteNote(true);
listManager.countNotebookResults(listManager.getNoteIndex());
browserWindow.titleLabel.setFocus();
listManager.addNote(newNote);
conn.getNoteTable().addNote(newNote, true);
listManager.getUnsynchronizedNotes().add(newNote.getGuid());
- noteTableView.insertRow(listManager, newNote, true, -1);
+ noteTableView.insertRow(newNote, true, -1);
listManager.countNotebookResults(listManager.getNoteIndex());
waitCursor(false);
}
syncRunning = false;
syncRunner.syncNeeded = false;
synchronizeAnimationTimer.stop();
- noteIndexUpdated(true);
synchronizeButton.setIcon(synchronizeAnimation.get(0));
saveNote();
-// noteTableView.selectionModel().selectionChanged.disconnect(this, "noteTableSelection()");
+ listManager.setUnsynchronizedNotes(conn.getNoteTable().getUnsynchronizedGUIDs());
+ listManager.reloadIndexes();
+ noteIndexUpdated(true);
noteTableView.selectionModel().blockSignals(true);
scrollToGuid(currentNoteGuid);
noteTableView.selectionModel().blockSignals(false);
-// noteTableView.selectionModel().selectionChanged.connect(this, "noteTableSelection()");
-// indexRunner.setKeepRunning(Global.keepRunning);
-
- listManager.setUnsynchronizedNotes(conn.getNoteTable().getUnsynchronizedGUIDs());
- for (int i=0; i<noteTableView.model.rowCount(); i++) {
- QModelIndex modelIndex = noteTableView.model.index(i, Global.noteTableGuidPosition);
- if (modelIndex != null) {
- SortedMap<Integer, Object> ix = noteTableView.model.itemData(modelIndex);
- String tableGuid = (String)ix.values().toArray()[0];
- String synch = "true";
- for (int j=0; j<listManager.getUnsynchronizedNotes().size(); j++) {
- if (listManager.getUnsynchronizedNotes().get(j).equalsIgnoreCase(tableGuid)) {
- synch = "false";
- j = listManager.getUnsynchronizedNotes().size();
- }
- }
- noteTableView.model.setData(i, Global.noteTableSynchronizedPosition, synch);
- }
- }
refreshEvernoteNote(false);
scrollToGuid(currentNoteGuid);
setMessage(tr("Synchronization Complete"));
logger.log(logger.MEDIUM, "Sync complete.");
}
-// public void setSequenceDate(long t) {
-// Global.setSequenceDate(t);
-// }
public void saveUploadAmount(long t) {
Global.saveUploadAmount(t);
}
-// public void setUpdateSequenceNumber(int t) {
-// Global.setUpdateSequenceNumber(t);
-// }
public void saveUserInformation(User user) {
Global.saveUserInformation(user);
}
listManager.addNote(newNote);
conn.getNoteTable().addNote(newNote, true);
listManager.getUnsynchronizedNotes().add(newNote.getGuid());
- noteTableView.insertRow(listManager, newNote, true, -1);
+ noteTableView.insertRow(newNote, true, -1);
listManager.updateNoteContent(newNote.getGuid(), importer.getNoteContent());
listManager.countNotebookResults(listManager.getNoteIndex());
importedFiles.add(list.get(i).absoluteFilePath());
listManager.addNote(newNote);
conn.getNoteTable().addNote(newNote, true);
listManager.getUnsynchronizedNotes().add(newNote.getGuid());
- noteTableView.insertRow(listManager, newNote, true, -1);
+ noteTableView.insertRow(newNote, true, -1);
listManager.updateNoteContent(newNote.getGuid(), importer.getNoteContent());
listManager.countNotebookResults(listManager.getNoteIndex());
dir.remove(dir.at(i));
guids = new HashMap<String,String>();\r
dateFormat = Global.getDateFormat() + " " + Global.getTimeFormat();\r
setDynamicSortFilter(true);\r
-// logger = new ApplicationLogger("filter.log");\r
}\r
public void clear() {\r
guids.clear();\r
--- /dev/null
+package cx.fbn.nevernote.gui;\r
+\r
+import java.text.SimpleDateFormat;\r
+import java.util.ArrayList;\r
+import java.util.HashMap;\r
+import java.util.List;\r
+\r
+import com.evernote.edam.type.Note;\r
+import com.trolltech.qt.core.QDateTime;\r
+import com.trolltech.qt.core.QModelIndex;\r
+import com.trolltech.qt.core.Qt;\r
+import com.trolltech.qt.gui.QAbstractTableModel;\r
+import com.trolltech.qt.gui.QColor;\r
+\r
+import cx.fbn.nevernote.Global;\r
+import cx.fbn.nevernote.filters.NoteSortFilterProxyModel;\r
+import cx.fbn.nevernote.utilities.ListManager;\r
+\r
+public class NoteTableModel extends QAbstractTableModel {\r
+ private final ListManager listManager;\r
+ private final Object[] headers;\r
+ private List<Note> noteIndex;\r
+ private List<Note> masterNoteIndex;\r
+ private List<String> unsynchronizedNotes;\r
+ public HashMap<String,Integer> titleColors;\r
+ public NoteSortFilterProxyModel proxyModel; // note sort model\r
+ \r
+ public NoteTableModel(ListManager m) {\r
+ headers = new Object[Global.noteTableColumnCount];\r
+ listManager = m;\r
+ masterNoteIndex = null;\r
+ unsynchronizedNotes = new ArrayList<String>();\r
+ }\r
+ \r
+ public List<Note> getNoteIndex() {\r
+ return noteIndex;\r
+ }\r
+ public void setNoteIndex(List<Note> list) {\r
+ noteIndex = list;\r
+ }\r
+ public List<Note> getMasterNoteIndex() {\r
+ return masterNoteIndex;\r
+ }\r
+ public void setMasterNoteIndex(List<Note> list) {\r
+ masterNoteIndex = list;\r
+ }\r
+ public void setSortProxyModel(NoteSortFilterProxyModel m) {\r
+ proxyModel = m;\r
+ }\r
+ \r
+ public List<String> getUnsynchronizedNotes() {\r
+ return unsynchronizedNotes;\r
+ }\r
+ public void setUnsynchronizedNotes(List<String> list) {\r
+ unsynchronizedNotes = list;\r
+ }\r
+ \r
+ public HashMap<String, Integer> getTitleColors() {\r
+ return titleColors;\r
+ }\r
+ public void setTitleColors(HashMap<String, Integer> map) {\r
+ titleColors = map;\r
+ }\r
+ \r
+ @Override\r
+ public int columnCount(QModelIndex arg0) {\r
+ return Global.noteTableColumnCount;\r
+ }\r
+\r
+ @Override\r
+ public Object data(QModelIndex index, int role) {\r
+ if (index == null)\r
+ return null;\r
+ switch (role) {\r
+ case Qt.ItemDataRole.DisplayRole: {\r
+ return valueAt(index.row(), index.column());\r
+ }\r
+ case Qt.ItemDataRole.BackgroundRole: {\r
+ String guid = valueAt(index.row(), Global.noteTableGuidPosition);\r
+ QColor backgroundColor = new QColor(QColor.white);\r
+ if (titleColors != null && titleColors.containsKey(guid)) {\r
+ int color = titleColors.get(guid);\r
+ backgroundColor.setRgb(color);\r
+ }\r
+ return backgroundColor;\r
+ }\r
+ case Qt.ItemDataRole.ForegroundRole: {\r
+ String guid = valueAt(index.row(), Global.noteTableGuidPosition);\r
+ QColor backgroundColor = new QColor(QColor.white);\r
+ QColor foregroundColor = new QColor(QColor.black);\r
+ if (titleColors != null && titleColors.containsKey(guid)) {\r
+ int color = titleColors.get(guid);\r
+ backgroundColor.setRgb(color);\r
+ if (backgroundColor.rgb() == QColor.black.rgb() || backgroundColor.rgb() == QColor.blue.rgb()) \r
+ foregroundColor.setRgb(QColor.white.rgb());\r
+ } \r
+ return foregroundColor;\r
+ }\r
+ default:\r
+ break;\r
+ }\r
+ return null;\r
+ }\r
+\r
+ @Override\r
+ public int rowCount(QModelIndex arg0) {\r
+ if (listManager != null && listManager.getMasterNoteIndex() != null) \r
+ return listManager.getMasterNoteIndex().size();\r
+ else\r
+ return 0;\r
+ }\r
+\r
+ \r
+ private String valueAt(int row, int col) {\r
+ Note note = listManager.getMasterNoteIndex().get(row);\r
+ \r
+ if (col == Global.noteTableGuidPosition)\r
+ return note.getGuid();\r
+ if (col == Global.noteTableCreationPosition) \r
+ return formattedDate(note.getCreated());\r
+ if (col == Global.noteTableChangedPosition) \r
+ return formattedDate(note.getUpdated());\r
+ if (col == Global.noteTableSubjectDatePosition) {\r
+ if (note.getAttributes().getSubjectDate() > 0)\r
+ return formattedDate(note.getAttributes().getSubjectDate());\r
+ else\r
+ return formattedDate(note.getCreated()); \r
+ }\r
+ if (col == Global.noteTableTitlePosition)\r
+ return note.getTitle();\r
+ if (col == Global.noteTableAuthorPosition)\r
+ return note.getAttributes().getAuthor();\r
+ if (col == Global.noteTableSourceUrlPosition)\r
+ return note.getAttributes().getSourceURL();\r
+ if (col == Global.noteTableSynchronizedPosition) {\r
+ String guid = note.getGuid();\r
+ for (int i=0; i<unsynchronizedNotes.size(); i++) {\r
+ if (unsynchronizedNotes.get(i).equalsIgnoreCase(guid)) \r
+ return "false";\r
+ }\r
+ return "true";\r
+ }\r
+ if (col == Global.noteTableTagPosition) {\r
+ String tags = new String();\r
+ for (int i=0; i<note.getTagNamesSize(); i++) {\r
+ tags = tags + note.getTagNames().get(i);\r
+ if (i!=note.getTagNamesSize()-1)\r
+ tags = tags + ", ";\r
+ }\r
+ return tags;\r
+ }\r
+ if (col == Global.noteTableNotebookPosition) {\r
+ for (int i=0; i<listManager.getNotebookIndex().size(); i++) {\r
+ if (listManager.getNotebookIndex().get(i).getGuid().equals(note.getNotebookGuid()))\r
+ return listManager.getNotebookIndex().get(i).getName();\r
+ }\r
+ }\r
+ return "";\r
+ }\r
+ \r
+ private String formattedDate(long d) {\r
+ String fmt = Global.getDateFormat() + " " + Global.getTimeFormat();\r
+ String dateTimeFormat = new String(fmt);\r
+ SimpleDateFormat simple = new SimpleDateFormat(dateTimeFormat);\r
+ \r
+ StringBuilder date = new StringBuilder(simple.format(d));\r
+ QDateTime created = QDateTime.fromString(date.toString(), fmt);\r
+ return created.toString(fmt);\r
+\r
+ }\r
+\r
+ /*\r
+ @Override\r
+ public void sort(int column, Qt.SortOrder order) {\r
+ layoutAboutToBeChanged.emit();\r
+ boolean finished = false;\r
+ while (!finished) {\r
+ finished = true;\r
+ for (int i=1; i<rowCount(); i++) {\r
+ String val1 = valueAt(i-1,column-1);\r
+ Note n1 = getMasterNoteIndex().get(i-1);\r
+ String val2 = valueAt(i,column);\r
+ Note n2 = getMasterNoteIndex().get(i);\r
+ \r
+ if (val1.compareTo(val2) > 0) {\r
+ finished = false;\r
+ getMasterNoteIndex().set(i-1, n2);\r
+ getMasterNoteIndex().set(i, n1);\r
+ }\r
+ }\r
+ }\r
+ layoutChanged.emit();\r
+ }\r
+ */\r
+ \r
+ @Override\r
+ public java.lang.Object headerData(int section, Qt.Orientation orientation, int role) {\r
+ if (role != Qt.ItemDataRole.DisplayRole)\r
+ return null;\r
+ \r
+ if (orientation == Qt.Orientation.Horizontal && section < headers.length) { \r
+ return headers[section];\r
+ }\r
+ return null;\r
+ \r
+ }\r
+ \r
+ \r
+ @Override\r
+ public boolean setHeaderData(int section, Qt.Orientation orientation, Object value, int role) {\r
+ if (orientation == Qt.Orientation.Horizontal && section < headers.length && role == Qt.ItemDataRole.DisplayRole) {\r
+ headers[section] = value;\r
+ headerDataChanged.emit(orientation, section, section);\r
+ return true;\r
+ }\r
+ return false;\r
+ }\r
+\r
+ \r
+ // Update a note title\r
+ public void updateNoteTitle(String guid, String title) {\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).setTitle(title);\r
+ QModelIndex idx = createIndex(i, Global.noteTableTitlePosition, nativePointer());\r
+ setData(idx, title, Qt.ItemDataRole.EditRole); \r
+ i = getMasterNoteIndex().size();\r
+ } \r
+ }\r
+ // Update the list tables \r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getNoteIndex().get(i).setTitle(title);\r
+ i = getNoteIndex().size();\r
+ }\r
+ }\r
+ }\r
+ \r
+ public void updateNoteCreatedDate(String guid, QDateTime date) {\r
+ \r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).setCreated((long)date.toTime_t()*1000);\r
+ QModelIndex idx = createIndex(i, Global.noteTableCreationPosition, nativePointer());\r
+ setData(idx, new Long(getMasterNoteIndex().get(i).getCreated()), Qt.ItemDataRole.EditRole); \r
+ i = getMasterNoteIndex().size();\r
+ } \r
+ }\r
+ \r
+ // Update the list tables \r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getNoteIndex().get(i).setCreated((long)date.toTime_t()*1000);\r
+ i = getNoteIndex().size();\r
+ }\r
+ }\r
+ }\r
+ \r
+ public void updateNoteSubjectDate(String guid, QDateTime date) {\r
+ \r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).getAttributes().setSubjectDate((long)date.toTime_t()*1000);\r
+ QModelIndex idx = createIndex(i, Global.noteTableSubjectDatePosition, nativePointer());\r
+ setData(idx, new Long(getMasterNoteIndex().get(i).getAttributes().getSubjectDate()), Qt.ItemDataRole.EditRole); \r
+ i = getMasterNoteIndex().size();\r
+ } \r
+ }\r
+ \r
+ // Update the list tables \r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getNoteIndex().get(i).getAttributes().setSubjectDate((long)date.toTime_t()*1000);\r
+ i = getNoteIndex().size();\r
+ }\r
+ }\r
+ }\r
+ \r
+ public void updateNoteChangedDate(String guid, QDateTime date) {\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).setUpdated((long)date.toTime_t()*1000);\r
+ QModelIndex idx = createIndex(i, Global.noteTableChangedPosition, nativePointer());\r
+ setData(idx, new Long(getMasterNoteIndex().get(i).getAttributes().getSubjectDate()), Qt.ItemDataRole.EditRole); \r
+ i = getMasterNoteIndex().size();\r
+ } \r
+ }\r
+ // Update the list tables \r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getNoteIndex().get(i).setUpdated((long)date.toTime_t()*1000);\r
+ i = getNoteIndex().size();\r
+ }\r
+ }\r
+ }\r
+\r
+ public void updateNoteGuid(String oldGuid, String newGuid) {\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid() != null && getMasterNoteIndex().get(i).getGuid().equals(oldGuid)) {\r
+ getMasterNoteIndex().get(i).setGuid(newGuid);\r
+ QModelIndex idx = createIndex(i, Global.noteTableGuidPosition, nativePointer());\r
+ setData(idx, new Long(getMasterNoteIndex().get(i).getGuid()), Qt.ItemDataRole.EditRole); \r
+ i=getMasterNoteIndex().size()+1;\r
+ }\r
+ }\r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid() != null && getNoteIndex().get(i).getGuid().equals(oldGuid)) {\r
+ getNoteIndex().get(i).setGuid(newGuid);; \r
+ i=getNoteIndex().size()+1;\r
+ }\r
+ }\r
+ }\r
+ \r
+ public void updateNoteNotebook(String guid, String notebookGuid) {\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).setNotebookGuid(notebookGuid);\r
+ for (int j=0; j<listManager.getNotebookIndex().size(); j++) {\r
+ if (listManager.getNotebookIndex().get(j).getGuid().equals(notebookGuid)) {\r
+ String name = listManager.getNotebookIndex().get(j).getName();\r
+ QModelIndex idx = createIndex(i, Global.noteTableNotebookPosition, nativePointer());\r
+ setData(idx, name, Qt.ItemDataRole.EditRole); \r
+ j=listManager.getNotebookIndex().size();\r
+ }\r
+ }\r
+ i=getMasterNoteIndex().size();\r
+ }\r
+ }\r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getNoteIndex().get(i).setNotebookGuid(notebookGuid);\r
+ i=getNoteIndex().size();\r
+ }\r
+ }\r
+ }\r
+\r
+ public void updateNoteAuthor(String guid, String author) {\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).getAttributes().setAuthor(author);\r
+ getMasterNoteIndex().get(i).getAttributes().setAltitudeIsSet(true);\r
+ QModelIndex idx = createIndex(i, Global.noteTableAuthorPosition, nativePointer());\r
+ setData(idx, author, Qt.ItemDataRole.EditRole); \r
+\r
+ i = getMasterNoteIndex().size();\r
+ } \r
+ }\r
+ // Update the list tables \r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getNoteIndex().get(i).getAttributes().setAuthor(author);\r
+ getNoteIndex().get(i).getAttributes().setAuthorIsSet(true);\r
+ i = getNoteIndex().size();\r
+ }\r
+ }\r
+ }\r
+ \r
+ public void updateNoteSourceUrl(String guid, String url) {\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).getAttributes().setSourceURL(url);\r
+ getMasterNoteIndex().get(i).getAttributes().setSourceURLIsSet(true);\r
+ QModelIndex idx = createIndex(i, Global.noteTableSourceUrlPosition, nativePointer());\r
+ setData(idx, url, Qt.ItemDataRole.EditRole); \r
+ i = getMasterNoteIndex().size();\r
+ } \r
+ }\r
+ // Update the list tables \r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getNoteIndex().get(i).getAttributes().setSourceURL(url);\r
+ getNoteIndex().get(i).getAttributes().setSourceURLIsSet(true);\r
+ i = getNoteIndex().size();\r
+ }\r
+ }\r
+ }\r
+\r
+ \r
+ public void addNote(Note n) {\r
+ beginInsertRows(null, 0, 1);\r
+ getNoteIndex().add(n);\r
+ getMasterNoteIndex().add(n);\r
+ proxyModel.addGuid(n.getGuid());\r
+ endInsertRows();\r
+ }\r
+ \r
+ \r
+ @Override\r
+ public boolean setData(QModelIndex index, Object value,int role) {\r
+ if (role == Qt.ItemDataRole.EditRole) {\r
+ dataChanged.emit(index, index);\r
+ return true;\r
+ } else {\r
+ return super.setData(index, value, role);\r
+ }\r
+ }\r
+ \r
+ public void updateNoteTitleColor(String guid, Integer color) {\r
+ getTitleColors().remove(guid);\r
+ getTitleColors().put(guid, color);\r
+ layoutChanged.emit();\r
+ }\r
+ \r
+}\r
*/\r
package cx.fbn.nevernote.gui;\r
\r
-import java.text.SimpleDateFormat;\r
import java.util.List;\r
import java.util.SortedMap;\r
\r
import com.evernote.edam.type.Note;\r
import com.trolltech.qt.core.QByteArray;\r
-import com.trolltech.qt.core.QDateTime;\r
import com.trolltech.qt.core.QModelIndex;\r
import com.trolltech.qt.core.Qt;\r
import com.trolltech.qt.core.Qt.SortOrder;\r
import com.trolltech.qt.gui.QFontMetrics;\r
import com.trolltech.qt.gui.QHeaderView;\r
import com.trolltech.qt.gui.QKeyEvent;\r
+import com.trolltech.qt.gui.QKeySequence.StandardKey;\r
import com.trolltech.qt.gui.QMenu;\r
-import com.trolltech.qt.gui.QStandardItemModel;\r
import com.trolltech.qt.gui.QTableView;\r
-import com.trolltech.qt.gui.QKeySequence.StandardKey;\r
\r
import cx.fbn.nevernote.Global;\r
import cx.fbn.nevernote.filters.NoteSortFilterProxyModel;\r
import cx.fbn.nevernote.utilities.ListManager;\r
\r
public class TableView extends QTableView {\r
-// private final ListManager runner;\r
+ private final ListManager runner;\r
private final ApplicationLogger logger;\r
- public QStandardItemModel model; // Standard item model\r
- public NoteSortFilterProxyModel proxyModel; // note sort model\r
+ public NoteSortFilterProxyModel proxyModel; // note sort model\r
private QAction deleteAction;\r
private QAction addAction;\r
private QAction restoreAction;\r
public Signal0 resetViewport;\r
public NoteSignal noteSignal;\r
\r
- public TableView(ApplicationLogger l) {\r
+ public TableView(ApplicationLogger l, ListManager m) {\r
logger = l;\r
header = horizontalHeader();\r
header.setMovable(true);\r
setDragDropMode(QAbstractItemView.DragDropMode.DragDrop);\r
setDropIndicatorShown(false);\r
\r
- model = new QStandardItemModel(0,Global.noteTableColumnCount, this);\r
+ runner = m; \r
\r
- model.setHeaderData(Global.noteTableCreationPosition, Qt.Orientation.Horizontal, tr("Date Created"));\r
- model.setHeaderData(Global.noteTableTagPosition, Qt.Orientation.Horizontal, tr("Tags"));\r
- model.setHeaderData(Global.noteTableGuidPosition, Qt.Orientation.Horizontal, tr("Guid"));\r
- model.setHeaderData(Global.noteTableNotebookPosition, Qt.Orientation.Horizontal, tr("Notebook"));\r
- model.setHeaderData(Global.noteTableTitlePosition, Qt.Orientation.Horizontal, tr("Title"));\r
- model.setHeaderData(Global.noteTableChangedPosition, Qt.Orientation.Horizontal, tr("Date Changed"));\r
- model.setHeaderData(Global.noteTableAuthorPosition, Qt.Orientation.Horizontal, tr("Author"));\r
- model.setHeaderData(Global.noteTableSourceUrlPosition, Qt.Orientation.Horizontal, tr("Source Url"));\r
- model.setHeaderData(Global.noteTableSubjectDatePosition, Qt.Orientation.Horizontal, tr("Subject Date"));\r
- model.setHeaderData(Global.noteTableSynchronizedPosition, Qt.Orientation.Horizontal, tr("Synchronized"));\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableCreationPosition, Qt.Orientation.Horizontal, tr("Date Created"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableTagPosition, Qt.Orientation.Horizontal, tr("Tags"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableGuidPosition, Qt.Orientation.Horizontal, tr("Guid"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableNotebookPosition, Qt.Orientation.Horizontal, tr("Notebook"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableTitlePosition, Qt.Orientation.Horizontal, tr("Title"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableChangedPosition, Qt.Orientation.Horizontal, tr("Date Changed"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableAuthorPosition, Qt.Orientation.Horizontal, tr("Author"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableSourceUrlPosition, Qt.Orientation.Horizontal, tr("Source Url"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableSubjectDatePosition, Qt.Orientation.Horizontal, tr("Subject Date"), Qt.ItemDataRole.DisplayRole);\r
+ runner.getNoteTableModel().setHeaderData(Global.noteTableSynchronizedPosition, Qt.Orientation.Horizontal, tr("Synchronized"), Qt.ItemDataRole.DisplayRole);\r
header.sortIndicatorChanged.connect(this, "resetViewport()");\r
\r
proxyModel = new NoteSortFilterProxyModel(this);\r
- proxyModel.setSourceModel(model);\r
- \r
+ proxyModel.setSourceModel(runner.getNoteTableModel());\r
setAlternatingRowColors(false);\r
setModel(proxyModel);\r
- \r
+// setModel(runner.getNoteTableModel());\r
+ runner.getNoteTableModel().setSortProxyModel(proxyModel);\r
+ \r
setSortingEnabled(true);\r
int sortCol = proxyModel.sortColumn();\r
SortOrder sortOrder = proxyModel.sortOrder();\r
}\r
\r
\r
- public void load(ListManager runner, boolean reload) {\r
-\r
+ public void load(boolean reload) {\r
proxyModel.clear();\r
- setSortingEnabled(true);\r
+ setSortingEnabled(false);\r
for (int i=0; i<runner.getNoteIndex().size(); i++) {\r
if (Global.showDeleted == true && !runner.getNoteIndex().get(i).isActive())\r
proxyModel.addGuid(runner.getNoteIndex().get(i).getGuid());\r
if (!Global.showDeleted == true && runner.getNoteIndex().get(i).isActive()) \r
proxyModel.addGuid(runner.getNoteIndex().get(i).getGuid());\r
}\r
+\r
if (!reload) {\r
logger.log(logger.EXTREME, "TableView.load() reload starting.");\r
proxyModel.filter();\r
logger.log(logger.EXTREME, "TableView.load() leaving reload.");\r
QFontMetrics f = QApplication.fontMetrics();\r
fontHeight = f.height();\r
- for (int i=0; i<model.rowCount(); i++)\r
+ for (int i=0; i<runner.getNoteTableModel().rowCount(); i++)\r
setRowHeight(i, fontHeight);\r
+ proxyModel.invalidate();\r
+ setSortingEnabled(true);\r
resetViewport.emit();\r
return;\r
}\r
logger.log(logger.EXTREME, "TableView.load() Filling table data from scratch");\r
- model.setRowCount(runner.getMasterNoteIndex().size());\r
- \r
+ \r
for (int i=0; i<runner.getMasterNoteIndex().size(); i++) {\r
if (runner.getMasterNoteIndex().get(i) != null) { \r
- insertRow(runner, runner.getMasterNoteIndex().get(i), false, i); \r
+ insertRow(runner.getMasterNoteIndex().get(i), false, i); \r
}\r
- }\r
- \r
-\r
+ } \r
+ proxyModel.invalidate();\r
\r
int width;\r
width = Global.getColumnWidth("noteTableCreationPosition");\r
\r
QFontMetrics f = QApplication.fontMetrics();\r
fontHeight = f.height();\r
- for (int i=0; i<model.rowCount(); i++)\r
+ for (int i=0; i<runner.getNoteTableModel().rowCount(); i++)\r
setRowHeight(i, fontHeight);\r
\r
+ setSortingEnabled(true);\r
resetViewport.emit();\r
}\r
\r
- public void insertRow(ListManager runner, Note tempNote, boolean newNote, int row) {\r
+ public void insertRow(Note tempNote, boolean newNote, int row) {\r
if (newNote)\r
proxyModel.addGuid(tempNote.getGuid());\r
- String fmt = Global.getDateFormat() + " " + Global.getTimeFormat();\r
- String dateTimeFormat = new String(fmt);\r
- SimpleDateFormat simple = new SimpleDateFormat(dateTimeFormat);\r
-\r
\r
- String tagNames = runner.getTagNamesForNote(tempNote);\r
- StringBuilder creationDate = new StringBuilder(simple.format(tempNote.getCreated())); \r
- StringBuilder changedDate = new StringBuilder(simple.format(tempNote.getUpdated()));\r
- StringBuilder subjectDate;\r
- if (tempNote.getAttributes().getSubjectDate() == 0) \r
- subjectDate = creationDate;\r
- else\r
- subjectDate = new StringBuilder(simple.format(tempNote.getAttributes().getSubjectDate()));\r
-\r
- String sync = "true";\r
- for (int i=0; i<runner.getUnsynchronizedNotes().size(); i++) {\r
- if (runner.getUnsynchronizedNotes().get(i).equalsIgnoreCase(tempNote.getGuid())) {\r
- sync = "false";\r
- i = runner.getUnsynchronizedNotes().size();\r
- }\r
- } \r
- \r
- if (row > model.rowCount())\r
- model.insertRow(0);\r
+ if (row > runner.getNoteTableModel().rowCount())\r
+ runner.getNoteTableModel().insertRow(0);\r
\r
if (row < 0) {\r
- row = model.rowCount();\r
- model.insertRow(row);\r
-// row = model.rowCount()-1;\r
+ row = runner.getNoteTableModel().rowCount();\r
+ runner.getNoteTableModel().insertRow(row);\r
}\r
-\r
- QColor backgroundColor = new QColor(QColor.white);\r
- QColor foregroundColor = new QColor(QColor.black);\r
- \r
- if (runner.titleColors != null && runner.titleColors.containsKey(tempNote.getGuid())) {\r
- int color = runner.titleColors.get(tempNote.getGuid());\r
- backgroundColor.setRgb(color);\r
- }\r
- if (backgroundColor.rgb() == QColor.black.rgb() || backgroundColor.rgb() == QColor.blue.rgb()) \r
- foregroundColor.setRgb(QColor.white.rgb());\r
- \r
- \r
- QDateTime created = QDateTime.fromString(creationDate.toString(), fmt);\r
- QDateTime changed = QDateTime.fromString(changedDate.toString(), fmt);\r
- QDateTime subjectDateFormat = QDateTime.fromString(subjectDate.toString(), fmt);\r
- model.setData(model.index(row, Global.noteTableCreationPosition), created.toString(fmt));\r
- model.setData(model.index(row, Global.noteTableChangedPosition), changed.toString(fmt));\r
- model.setData(model.index(row, Global.noteTableTitlePosition), tempNote.getTitle());\r
- model.setData(model.index(row, Global.noteTableTagPosition), tagNames);\r
- model.setData(model.index(row, Global.noteTableGuidPosition), tempNote.getGuid());\r
- model.setData(model.index(row, Global.noteTableSubjectDatePosition), subjectDateFormat.toString(fmt));\r
- model.setData(model.index(row, Global.noteTableAuthorPosition), tempNote.getAttributes().getAuthor());\r
- model.setData(model.index(row, Global.noteTableSourceUrlPosition), tempNote.getAttributes().getSourceURL());\r
- model.setData(model.index(row, Global.noteTableNotebookPosition), runner.getNotebookNameByGuid(tempNote.getNotebookGuid()));\r
- model.setData(model.index(row, Global.noteTableSynchronizedPosition), sync);\r
- \r
- for (int i=0; i<Global.noteTableColumnCount; i++) {\r
- model.setData(row, i, backgroundColor, Qt.ItemDataRole.BackgroundRole);\r
- model.setData(row, i, foregroundColor, Qt.ItemDataRole.ForegroundRole);\r
- } \r
\r
if (newNote) {\r
QFontMetrics f = QApplication.fontMetrics();\r
fontHeight = f.height();\r
- for (int i=0; i<model.rowCount(); i++)\r
+ for (int i=0; i<runner.getNoteTableModel().rowCount(); i++)\r
setRowHeight(i, fontHeight);\r
}\r
}\r
@Override\r
public void keyPressEvent(QKeyEvent e) {\r
if (e.matches(StandardKey.MoveToStartOfDocument)) {\r
- if (model.rowCount() > 0) {\r
+ if (runner.getNoteTableModel().rowCount() > 0) {\r
clearSelection();\r
selectRow(0);\r
}\r
}\r
if (e.matches(StandardKey.MoveToEndOfDocument)) {\r
- if (model.rowCount() > 0) {\r
+ if (runner.getNoteTableModel().rowCount() > 0) {\r
clearSelection();\r
selectRow(model().rowCount()-1);\r
}\r
import cx.fbn.nevernote.filters.EnSearch;\r
import cx.fbn.nevernote.filters.NotebookCounter;\r
import cx.fbn.nevernote.filters.TagCounter;\r
+import cx.fbn.nevernote.gui.NoteTableModel;\r
import cx.fbn.nevernote.signals.NotebookSignal;\r
import cx.fbn.nevernote.signals.StatusSignal;\r
import cx.fbn.nevernote.signals.TagSignal;\r
private List<Notebook> notebookIndex;\r
private List<Notebook> archiveNotebookIndex;\r
private List<String> localNotebookIndex;\r
- private List<Note> noteIndex;\r
+\r
private List<SavedSearch> searchIndex;\r
\r
private List<String> selectedNotebooks;\r
+ private final NoteTableModel noteModel;\r
+ \r
\r
- private List<Note> masterNoteIndex;\r
- private List<String> unsynchronizedNotes;\r
private List<String> selectedTags;\r
private String selectedSearch;\r
ThreadSignal signals;\r
private final QThread tagThread;\r
\r
private final CounterRunner trashCounterRunner;\r
- private final QThread trashThread;\r
+ private final QThread trashThread;\r
public TrashSignal trashSignal;\r
- public HashMap<String,Integer> titleColors;\r
\r
private List<NotebookCounter> notebookCounter; // count of displayed notes in each notebook\r
private List<TagCounter> tagCounter; // count of displayed notes for each tag\r
public TagSignal tagSignal;\r
public NotebookSignal notebookSignal;\r
private int trashCount;\r
- private final int id;\r
SaveRunner saveRunner; // Thread used to save content. Used because the xml conversion is slowwwww\r
QThread saveThread;\r
\r
// Constructor\r
- public ListManager(DatabaseConnection d, ApplicationLogger l, int instance_id) {\r
+ public ListManager(DatabaseConnection d, ApplicationLogger l) {\r
conn = d;\r
logger = l;\r
- id = instance_id;\r
\r
status = new StatusSignal();\r
signals = new ThreadSignal();\r
enSearchChanged = false;\r
\r
// Setup arrays\r
- masterNoteIndex = null;\r
+ noteModel = new NoteTableModel(this);\r
selectedTags = new ArrayList<String>();\r
\r
notebookCounter = new ArrayList<NotebookCounter>();\r
tagCounter = new ArrayList<TagCounter>();\r
selectedNotebooks = new ArrayList<String>();\r
- unsynchronizedNotes = new ArrayList<String>();\r
- \r
+ \r
reloadIndexes();\r
\r
notebookSignal = new NotebookSignal();\r
for (int i=0; i<local.size(); i++)\r
localNotebookIndex.add(local.get(i).getGuid());\r
\r
- masterNoteIndex = conn.getNoteTable().getAllNotes();\r
+ noteModel.setMasterNoteIndex(conn.getNoteTable().getAllNotes());\r
// For performance reasons, we didn't get the tags for every note individually. We now need to \r
// get them\r
List<cx.fbn.nevernote.sql.NoteTagsRecord> noteTags = conn.getNoteTable().noteTagsTable.getAllNoteTags();\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
List<String> tags = new ArrayList<String>();\r
List<String> names = new ArrayList<String>();\r
for (int j=0; j<noteTags.size(); j++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(noteTags.get(j).noteGuid)) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(noteTags.get(j).noteGuid)) {\r
tags.add(noteTags.get(j).tagGuid);\r
names.add(getTagNameByGuid(noteTags.get(j).tagGuid));\r
}\r
}\r
\r
- masterNoteIndex.get(i).setTagGuids(tags);\r
- masterNoteIndex.get(i).setTagNames(names);\r
+ getMasterNoteIndex().get(i).setTagGuids(tags);\r
+ getMasterNoteIndex().get(i).setTagNames(names);\r
}\r
\r
\r
enSearch = new EnSearch(conn, logger, "", getTagIndex(), Global.getMinimumWordLength(), Global.getRecognitionWeight());\r
logger.log(logger.HIGH, "Building note index");\r
\r
- if (masterNoteIndex == null) { \r
- masterNoteIndex = conn.getNoteTable().getAllNotes();\r
- }\r
+// if (getMasterNoteIndex() == null) { \r
+ noteModel.setMasterNoteIndex(conn.getNoteTable().getAllNotes());\r
+// }\r
// For performance reasons, we didn't get the tags for every note individually. We now need to \r
// get them\r
List<cx.fbn.nevernote.sql.NoteTagsRecord> noteTags = conn.getNoteTable().noteTagsTable.getAllNoteTags();\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
List<String> tags = new ArrayList<String>();\r
List<String> names = new ArrayList<String>();\r
for (int j=0; j<noteTags.size(); j++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(noteTags.get(j).noteGuid)) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(noteTags.get(j).noteGuid)) {\r
tags.add(noteTags.get(j).tagGuid);\r
names.add(getTagNameByGuid(noteTags.get(j).tagGuid));\r
}\r
}\r
\r
- masterNoteIndex.get(i).setTagGuids(tags);\r
- masterNoteIndex.get(i).setTagNames(names);\r
+ getMasterNoteIndex().get(i).setTagGuids(tags);\r
+ getMasterNoteIndex().get(i).setTagNames(names);\r
}\r
\r
- setNoteIndex(masterNoteIndex);\r
+ setNoteIndex(getMasterNoteIndex());\r
\r
}\r
\r
//** These functions deal with setting & retrieving the master lists\r
//***************************************************************\r
//***************************************************************\r
+ // Get the note table model\r
+ public NoteTableModel getNoteTableModel() {\r
+ return noteModel;\r
+ }\r
// save the saved search index\r
private void setSavedSearchIndex(List<SavedSearch> t) {\r
searchIndex = t;\r
}\r
// Save the current note list\r
private void setNoteIndex(List<Note> n) {\r
- noteIndex = n;\r
+ noteModel.setNoteIndex(n);\r
}\r
// Get the note index\r
public synchronized List<Note> getNoteIndex() {\r
- return noteIndex;\r
+ return noteModel.getNoteIndex();\r
}\r
// Save the count of notes per notebook\r
public void setNotebookCounter(List<NotebookCounter> n) {\r
}\r
// Unsynchronized Note List\r
public List<String> getUnsynchronizedNotes() {\r
- return unsynchronizedNotes;\r
+ return noteModel.getUnsynchronizedNotes();\r
}\r
public void setUnsynchronizedNotes(List<String> l) {\r
- unsynchronizedNotes = l;\r
+ noteModel.setUnsynchronizedNotes(l);\r
}\r
// Return a count of items in the trash\r
public int getTrashCount() {\r
return enSearch;\r
}\r
public List<Note> getMasterNoteIndex() {\r
- return masterNoteIndex;\r
+ return noteModel.getMasterNoteIndex();\r
}\r
\r
//***************************************************************\r
}\r
}\r
\r
- for (int i=0; i<noteIndex.size(); i++) {\r
- if (noteIndex.get(i).getGuid().equals(noteGuid)) {\r
- noteIndex.get(i).setTagNames(tags);\r
- noteIndex.get(i).setTagGuids(tagGuids);\r
- i=noteIndex.size()+1;\r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(noteGuid)) {\r
+ getNoteIndex().get(i).setTagNames(tags);\r
+ getNoteIndex().get(i).setTagGuids(tagGuids);\r
+ i=getNoteIndex().size()+1;\r
}\r
}\r
if (newTagCreated)\r
l=currentTime.getTimeInMillis();\r
}\r
\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).setActive(false);\r
- masterNoteIndex.get(i).setDeleted(l);\r
- i=masterNoteIndex.size();\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).setActive(false);\r
+ getMasterNoteIndex().get(i).setDeleted(l);\r
+ i=getMasterNoteIndex().size();\r
}\r
}\r
for (int i=0; i<getNoteIndex().size(); i++) {\r
// Delete a note\r
public void restoreNote(String guid) {\r
trashCounterRunner.abortCount = true;\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).setActive(true);\r
- masterNoteIndex.get(i).setDeleted(0);\r
- i=masterNoteIndex.size();\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).setActive(true);\r
+ getMasterNoteIndex().get(i).setDeleted(0);\r
+ i=getMasterNoteIndex().size();\r
}\r
}\r
for (int i=0; i<getNoteIndex().size(); i++) {\r
}\r
public void updateNote(Note n) {\r
\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(n.getGuid())) {\r
- masterNoteIndex.remove(i);\r
- masterNoteIndex.add(n);\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(n.getGuid())) {\r
+ getMasterNoteIndex().remove(i);\r
+ getMasterNoteIndex().add(n);\r
}\r
}\r
for (int i=0; i<getNoteIndex().size(); i++) {\r
}\r
// Add a note. \r
public void addNote(Note n) {\r
- getNoteIndex().add(n);\r
- masterNoteIndex.add(n);\r
+ noteModel.addNote(n);\r
}\r
// Expunge a note\r
public void expungeNote(String guid) {\r
trashCounterRunner.abortCount = true;\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.remove(i);\r
- i=masterNoteIndex.size();\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().remove(i);\r
+ i=getMasterNoteIndex().size();\r
}\r
}\r
for (int i=0; i<getNoteIndex().size(); i++) {\r
// Expunge a note\r
public void emptyTrash() {\r
trashCounterRunner.abortCount = true; \r
- for (int i=masterNoteIndex.size()-1; i>=0; i--) {\r
- if (!masterNoteIndex.get(i).isActive()) {\r
- masterNoteIndex.remove(i);\r
+ for (int i=getMasterNoteIndex().size()-1; i>=0; i--) {\r
+ if (!getMasterNoteIndex().get(i).isActive()) {\r
+ getMasterNoteIndex().remove(i);\r
}\r
}\r
\r
}\r
// Update a note creation date\r
public void updateNoteCreatedDate(String guid, QDateTime date) {\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).setCreated(date.toTime_t()*1000);\r
- i = masterNoteIndex.size();\r
- } \r
- }\r
- // Update the list tables \r
- for (int i=0; i<getNoteIndex().size(); i++) {\r
- if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
- getNoteIndex().get(i).setCreated(date.toTime_t()*1000);\r
- i = getNoteIndex().size();\r
- }\r
- }\r
+ noteModel.updateNoteCreatedDate(guid, date);\r
conn.getNoteTable().updateNoteCreatedDate(guid, date);\r
}\r
// Subject date has been changed\r
public void updateNoteSubjectDate(String guid, QDateTime date) {\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).getAttributes().setSubjectDate(date.toTime_t()*1000);\r
- i = masterNoteIndex.size();\r
- } \r
- }\r
- // Update the list tables \r
- for (int i=0; i<getNoteIndex().size(); i++) {\r
- if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
- getNoteIndex().get(i).setCreated(date.toTime_t()*1000);\r
- i = getNoteIndex().size();\r
- }\r
- }\r
+ noteModel.updateNoteSubjectDate(guid, date);\r
conn.getNoteTable().updateNoteSubjectDate(guid, date);\r
}\r
// Author has changed\r
public void updateNoteAuthor(String guid, String author) {\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).getAttributes().setAuthor(author);\r
- masterNoteIndex.get(i).getAttributes().setAltitudeIsSet(true);\r
- i = masterNoteIndex.size();\r
- } \r
- }\r
- // Update the list tables \r
- for (int i=0; i<getNoteIndex().size(); i++) {\r
- if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
- getNoteIndex().get(i).getAttributes().setAuthor(author);\r
- getNoteIndex().get(i).getAttributes().setAuthorIsSet(true);\r
- i = getNoteIndex().size();\r
- }\r
- }\r
+ noteModel.updateNoteAuthor(guid, author);\r
conn.getNoteTable().updateNoteAuthor(guid, author);\r
}\r
// Author has changed\r
public void updateNoteGeoTag(String guid, Double lon, Double lat, Double alt) {\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).getAttributes().setLongitude(lon);\r
- masterNoteIndex.get(i).getAttributes().setLongitudeIsSet(true);\r
- masterNoteIndex.get(i).getAttributes().setLatitude(lat);\r
- masterNoteIndex.get(i).getAttributes().setLatitudeIsSet(true);\r
- masterNoteIndex.get(i).getAttributes().setAltitude(alt);\r
- masterNoteIndex.get(i).getAttributes().setAltitudeIsSet(true);\r
- i = masterNoteIndex.size();\r
+ for (int i=0; i<getMasterNoteIndex().size(); i++) {\r
+ if (getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getMasterNoteIndex().get(i).getAttributes().setLongitude(lon);\r
+ getMasterNoteIndex().get(i).getAttributes().setLongitudeIsSet(true);\r
+ getMasterNoteIndex().get(i).getAttributes().setLatitude(lat);\r
+ getMasterNoteIndex().get(i).getAttributes().setLatitudeIsSet(true);\r
+ getMasterNoteIndex().get(i).getAttributes().setAltitude(alt);\r
+ getMasterNoteIndex().get(i).getAttributes().setAltitudeIsSet(true);\r
+ i = getMasterNoteIndex().size();\r
} \r
}\r
// Update the list tables \r
}\r
conn.getNoteTable().updateNoteGeoTags(guid, lon, lat, alt);\r
}\r
- // Author has changed\r
+ // Source URL changed\r
public void updateNoteSourceUrl(String guid, String url) {\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).getAttributes().setSourceURL(url);\r
- masterNoteIndex.get(i).getAttributes().setSourceURLIsSet(true);\r
- i = masterNoteIndex.size();\r
- } \r
- }\r
- // Update the list tables \r
- for (int i=0; i<getNoteIndex().size(); i++) {\r
- if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
- getNoteIndex().get(i).getAttributes().setSourceURL(url);\r
- getNoteIndex().get(i).getAttributes().setSourceURLIsSet(true);\r
- i = getNoteIndex().size();\r
- }\r
- }\r
+ noteModel.updateNoteSourceUrl(guid, url);\r
conn.getNoteTable().updateNoteSourceUrl(guid, url);\r
}\r
// Update a note last changed date\r
public void updateNoteAlteredDate(String guid, QDateTime date) {\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).setUpdated(date.toTime_t()*1000);\r
- i = masterNoteIndex.size();\r
- } \r
- }\r
- // Update the list tables \r
- for (int i=0; i<getNoteIndex().size(); i++) {\r
- if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
- getNoteIndex().get(i).setUpdated(date.toTime_t()*1000);\r
- i = getNoteIndex().size();\r
- }\r
- }\r
- \r
+ noteModel.updateNoteChangedDate(guid, date);\r
conn.getNoteTable().updateNoteAlteredDate(guid, date);\r
}\r
// Update a note title\r
public void updateNoteTitle(String guid, String title) {\r
logger.log(logger.HIGH, "Entering ListManager.updateNoteTitle");\r
conn.getNoteTable().updateNoteTitle(guid, title);\r
- \r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).setTitle(title);\r
- i = masterNoteIndex.size();\r
- } \r
- }\r
- // Update the list tables \r
- for (int i=0; i<getNoteIndex().size(); i++) {\r
- if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
- getNoteIndex().get(i).setTitle(title);\r
- i = getNoteIndex().size();\r
- }\r
- }\r
- \r
+ noteModel.updateNoteTitle(guid, title);\r
logger.log(logger.HIGH, "Leaving ListManager.updateNoteTitle");\r
}\r
// Update a note's notebook\r
public void updateNoteNotebook(String guid, String notebookGuid) {\r
logger.log(logger.HIGH, "Entering ListManager.updateNoteNotebook");\r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid().equals(guid)) {\r
- masterNoteIndex.get(i).setNotebookGuid(notebookGuid);\r
- i=masterNoteIndex.size();\r
- }\r
- }\r
- for (int i=0; i<getNoteIndex().size(); i++) {\r
- if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
- getNoteIndex().get(i).setNotebookGuid(notebookGuid);\r
- i=masterNoteIndex.size();\r
- }\r
- }\r
+ noteModel.updateNoteNotebook(guid, notebookGuid);\r
conn.getNoteTable().updateNoteNotebook(guid, notebookGuid, true);\r
logger.log(logger.HIGH, "Leaving ListManager.updateNoteNotebook");\r
}\r
\r
conn.getNoteTable().updateNoteSequence(guid, sequence);\r
\r
- for (int i=0; i<noteIndex.size(); i++) {\r
- if (noteIndex.get(i).getGuid().equals(guid)) {\r
- noteIndex.get(i).setUpdateSequenceNum(sequence);\r
- i=noteIndex.size()+1;\r
+ for (int i=0; i<noteModel.getMasterNoteIndex().size(); i++) {\r
+ if (noteModel.getMasterNoteIndex().get(i).getGuid().equals(guid)) {\r
+ noteModel.getMasterNoteIndex().get(i).setUpdateSequenceNum(sequence);\r
+ i=noteModel.getMasterNoteIndex().size()+1;\r
+ }\r
+ }\r
+ \r
+ for (int i=0; i<getNoteIndex().size(); i++) {\r
+ if (getNoteIndex().get(i).getGuid().equals(guid)) {\r
+ getNoteIndex().get(i).setUpdateSequenceNum(sequence);\r
+ i=getNoteIndex().size()+1;\r
}\r
}\r
logger.log(logger.HIGH, "Leaving ListManager.updateNoteSequence");\r
}\r
public void updateNoteGuid(String oldGuid, String newGuid, boolean updateDatabase) {\r
logger.log(logger.HIGH, "Entering ListManager.updateNoteGuid");\r
- \r
if (updateDatabase) \r
conn.getNoteTable().updateNoteGuid(oldGuid, newGuid);\r
- \r
- for (int i=0; i<masterNoteIndex.size(); i++) {\r
- if (masterNoteIndex.get(i).getGuid() != null && masterNoteIndex.get(i).getGuid().equals(oldGuid)) {\r
- masterNoteIndex.get(i).setGuid(newGuid);\r
- i=masterNoteIndex.size()+1;\r
- }\r
- }\r
- for (int i=0; i<noteIndex.size(); i++) {\r
- if (noteIndex.get(i).getGuid() != null && noteIndex.get(i).getGuid().equals(oldGuid)) {\r
- noteIndex.get(i).setGuid(newGuid);\r
- i=noteIndex.size()+1;\r
- }\r
- }\r
+ noteModel.updateNoteGuid(oldGuid, newGuid);\r
logger.log(logger.HIGH, "Leaving ListManager.updateNoteGuid");\r
\r
}\r
logger.log(logger.HIGH, "Leaving ListManager.updateTagGuid");\r
\r
}\r
- // Count tag results\r
-// @SuppressWarnings("unused")\r
-// private void reloadTagCount() {\r
-// tagCounterRunner.threadLock.lock(); \r
-// tagCounterRunner.setNoteIndex(getNoteIndex());\r
-// QThreadPool.globalInstance().tryStart(tagCounterRunner);\r
-// tagCounterRunner.threadLock.unlock();\r
-// }\r
+\r
\r
//************************************************************************************\r
//************************************************************************************\r
for (int i=0; i<getNotebookIndex().size(); i++) {\r
if (getNotebookIndex().get(i).getGuid().equals(guid)) {\r
getNotebookIndex().remove(i);\r
- i=masterNoteIndex.size();\r
+ i=getMasterNoteIndex().size();\r
}\r
}\r
conn.getNotebookTable().expungeNotebook(guid, true); \r
//** Load and filter the note index\r
//************************************************************************************\r
//************************************************************************************\r
-// public void clearNoteIndexSearch() {\r
-// setNoteIndex(masterNoteIndex);\r
-// }\r
// Load the note index based upon what the user wants.\r
public void loadNotesIndex() {\r
logger.log(logger.EXTREME, "Entering ListManager.loadNotesIndex()");\r
List<Note> index = new ArrayList<Note>();\r
\r
List<Note> matches;\r
- if (enSearchChanged || masterNoteIndex == null)\r
+ if (enSearchChanged || getMasterNoteIndex() == null)\r
matches = enSearch.matchWords();\r
else\r
- matches = masterNoteIndex;\r
+ matches = getMasterNoteIndex();\r
\r
if (matches == null)\r
- matches = masterNoteIndex;\r
+ matches = getMasterNoteIndex();\r
\r
for (int i=0; i<matches.size(); i++) {\r
Note n = matches.get(i);\r
notebookCounterRunner.setNoteIndex(index);\r
notebookCounterRunner.release(CounterRunner.NOTEBOOK);\r
} else {\r
- notebookCounterRunner.setNoteIndex(masterNoteIndex);\r
+ notebookCounterRunner.setNoteIndex(getMasterNoteIndex());\r
notebookCounterRunner.release(CounterRunner.NOTEBOOK_ALL);\r
}\r
logger.log(logger.EXTREME, "Leaving ListManager.countNotebookResults()");\r
\r
\r
public void updateNoteTitleColor(String guid, Integer color) {\r
- titleColors.remove(guid);\r
- titleColors.put(guid, color);\r
+ noteModel.updateNoteTitleColor(guid, color);\r
conn.getNoteTable().setNoteTitleColor(guid, color);\r
}\r
public void loadNoteTitleColors() {\r
List<Pair<String,Integer>> colors = conn.getNoteTable().getNoteTitleColors();\r
- if (titleColors == null)\r
- titleColors = new HashMap<String,Integer>();\r
+ if (noteModel.getTitleColors() == null)\r
+ noteModel.setTitleColors(new HashMap<String,Integer>());\r
else\r
- titleColors.clear();\r
+ noteModel.getTitleColors().clear();\r
for (int i=0; i<colors.size(); i++) {\r
- titleColors.put(colors.get(i).getFirst(), colors.get(i).getSecond());\r
+ noteModel.getTitleColors().put(colors.get(i).getFirst(), colors.get(i).getSecond());\r
}\r
}\r
\r
}\r
}\r
\r
- \r
- \r
public boolean threadCheck(int id) {\r
if (id == Global.notebookCounterThreadId) \r
return notebookThread.isAlive();\r