From: yuki Date: Thu, 2 May 2013 05:56:39 +0000 (+0900) Subject: 最後に開いていたタブのインデックスを正しく復元できるように修正。 X-Git-Tag: version0.1.2~2^2~5^2~1^2 X-Git-Url: http://git.sourceforge.jp/view?a=commitdiff_plain;h=refs%2Fheads%2FrestoreTabs;p=neighbornote%2FNeighborNote.git 最後に開いていたタブのインデックスを正しく復元できるように修正。 --- diff --git a/src/cx/fbn/nevernote/Global.java b/src/cx/fbn/nevernote/Global.java index ef276f2..331d5b0 100644 --- a/src/cx/fbn/nevernote/Global.java +++ b/src/cx/fbn/nevernote/Global.java @@ -2315,8 +2315,8 @@ public class Global { return tabWindows; } - // 最後に開いていたノート群をセット - public static void setLastViewedTabs(HashMap tabs) { + // 最後に開いていたノート群を保存 + public static void saveLastViewedTabs(HashMap tabs) { settings.beginGroup("General"); if (tabs != null) { settings.setValue("lastViewedTabs", tabs); @@ -2325,5 +2325,34 @@ public class Global { } settings.endGroup(); } + + // 最後に開いていたタブのインデックスを取得 + public static int getLastViewedTabIndex() { + settings.beginGroup("General"); + Integer index; + try { + String val = (String) settings.value("lastViewedTabIndex", 0); + index = new Integer(val.trim()); + } catch (Exception e) { + try { + index = (Integer) settings.value("lastViewedTabIndex", 0); + } catch (Exception e1) { + index = 0; + } + } + settings.endGroup(); + return index; + } + + // 最後に開いていたタブのインデックスを保存 + public static void saveLastViewedTabIndex(Integer index) { + settings.beginGroup("General"); + if (index != null) { + settings.setValue("lastViewedTabIndex", index); + } else { + settings.setValue("lastViewedTabIndex", 0); + } + settings.endGroup(); + } } diff --git a/src/cx/fbn/nevernote/NeverNote.java b/src/cx/fbn/nevernote/NeverNote.java index 820e7eb..ccbf058 100644 --- a/src/cx/fbn/nevernote/NeverNote.java +++ b/src/cx/fbn/nevernote/NeverNote.java @@ -830,22 +830,9 @@ public class NeverNote extends QMainWindow{ currentNote = conn.getNoteTable().getNote(currentNoteGuid, true,true,false,false,true); } - // タブのフォーカスをcurrentNoteGuidのノートに移す + // タブのフォーカスをlastViewedTabIndexに移す if (tabBrowser.count() >= 2) { - Collection tabBrowsers = tabWindows.values(); - Iterator tabBrowserIterator = tabBrowsers.iterator(); - Collection tabIndexes = tabWindows.keySet(); - Iterator tabIndexIterator = tabIndexes.iterator(); - - while (tabBrowserIterator.hasNext()) { - TabBrowse tab = tabBrowserIterator.next(); - int i = tabIndexIterator.next(); - String guid = tab.getBrowserWindow().getNote().getGuid(); - if (currentNoteGuid.equals(guid)) { - tabBrowser.setCurrentIndex(i); - break; - } - } + tabBrowser.setCurrentIndex(Global.getLastViewedTabIndex()); } noteIndexUpdated(true); @@ -1317,6 +1304,7 @@ public class NeverNote extends QMainWindow{ Global.saveWindowMaximized(isMaximized()); Global.saveCurrentNoteGuid(currentNoteGuid); + Global.saveLastViewedTabIndex(tabBrowser.currentIndex()); // 開いていたタブ群をsettingsに保存しておく Collection tabBrowsers = tabWindows.values(); @@ -1327,10 +1315,12 @@ public class NeverNote extends QMainWindow{ while (tabIterator.hasNext()) { TabBrowse tab = tabIterator.next(); int index = indexIterator.next(); - String guid = tab.getBrowserWindow().getNote().getGuid(); - tabs.put(index, guid); + if (tab.getBrowserWindow() != null && tab.getBrowserWindow().getNote() != null) { + String guid = tab.getBrowserWindow().getNote().getGuid(); + tabs.put(index, guid); + } } - Global.setLastViewedTabs(tabs); + Global.saveLastViewedTabs(tabs); int sortCol = noteTableView.proxyModel.sortColumn(); int sortOrder = noteTableView.proxyModel.sortOrder().value();