settings.beginGroup("RensoNoteList");
Integer value;
try {
- String val = (String)settings.value("addNewNoteWeight", 1);
+ String val = (String)settings.value("addNewNoteWeight", 3);
value = new Integer(val.trim());
} catch (Exception e) {
try {
- value = (Integer)settings.value("addNewNoteWeight", 1);
+ value = (Integer)settings.value("addNewNoteWeight", 3);
} catch (Exception e1) {
value = 1;
}
settings.beginGroup("RensoNoteList");
Integer value;
try {
- String val = (String)settings.value("enRelatedNotesWeight", 10);
+ String val = (String)settings.value("enRelatedNotesWeight", 5);
value = new Integer(val.trim());
} catch (Exception e) {
try {
- value = (Integer)settings.value("enRelatedNotesWeight", 10);
+ value = (Integer)settings.value("enRelatedNotesWeight", 5);
} catch (Exception e1) {
value = 10;
}
settings.setValue("haltOperationLog", "false");
settings.endGroup();
}
+
+ // 連想ノートリストの重み付けモードの状態
+ public static String rensoWeightingSelect() {
+ settings.beginGroup("RensoNoteList");
+ String text = (String)settings.value("rensoWeightingSelect", "Standard");
+ settings.endGroup();
+ return text;
+ }
+ public static void saveRensoWeightingSelect(String val) {
+ settings.beginGroup("RensoNoteList");
+ settings.setValue("rensoWeightingSelect", val);
+ settings.endGroup();
+ }
+
+ //ordinal から指定した Enum の要素に変換する汎用関数
+ public static <E extends Enum<E>> E fromOrdinal(Class<E> enumClass, int ordinal) {
+ E[] enumArray = enumClass.getEnumConstants();
+ return enumArray[ordinal];
+ }
+
+ // 連想ノートリスト重み付けモード:カスタムの設定値(同時閲覧)
+ public static int customBrowseWeight() {
+ settings.beginGroup("RensoNoteList");
+ Integer value;
+ try {
+ String val = (String)settings.value("customBrowseWeight", 1);
+ value = new Integer(val.trim());
+ } catch (Exception e) {
+ try {
+ value = (Integer)settings.value("customBrowseWeight", 1);
+ } catch (Exception e1) {
+ value = 1;
+ }
+ }
+ settings.endGroup();
+ return value;
+ }
+ public static void saveCustomBrowseWeight(int weight) {
+ settings.beginGroup("RensoNoteList");
+ settings.setValue("customBrowseWeight", weight);
+ settings.endGroup();
+ }
+ // 連想ノートリスト重み付けモード:カスタムの設定値(コピー&ペースト)
+ public static int customCopyPasteWeight() {
+ settings.beginGroup("RensoNoteList");
+ Integer value;
+ try {
+ String val = (String)settings.value("customCopyPasteWeight", 3);
+ value = new Integer(val.trim());
+ } catch (Exception e) {
+ try {
+ value = (Integer)settings.value("customCopyPasteWeight", 3);
+ } catch (Exception e1) {
+ value = 3;
+ }
+ }
+ settings.endGroup();
+ return value;
+ }
+ public static void saveCustomCopyPasteWeight(int weight) {
+ settings.beginGroup("RensoNoteList");
+ settings.setValue("customCopyPasteWeight", weight);
+ settings.endGroup();
+ }
+ // 連想ノートリスト重み付けモード:カスタムの設定値(新規ノート追加)
+ public static int customAddNewNoteWeight() {
+ settings.beginGroup("RensoNoteList");
+ Integer value;
+ try {
+ String val = (String)settings.value("customAddNewNoteWeight", 3);
+ value = new Integer(val.trim());
+ } catch (Exception e) {
+ try {
+ value = (Integer)settings.value("customAddNewNoteWeight", 3);
+ } catch (Exception e1) {
+ value = 3;
+ }
+ }
+ settings.endGroup();
+ return value;
+ }
+ public static void saveCustomAddNewNoteWeight(int weight) {
+ settings.beginGroup("RensoNoteList");
+ settings.setValue("customAddNewNoteWeight", weight);
+ settings.endGroup();
+ }
+ // 連想ノートリスト重み付けモード:カスタムの設定値(連想ノートクリック)
+ public static int customRensoItemClickWeight() {
+ settings.beginGroup("RensoNoteList");
+ Integer value;
+ try {
+ String val = (String)settings.value("customRensoItemClickWeight", 10);
+ value = new Integer(val.trim());
+ } catch (Exception e) {
+ try {
+ value = (Integer)settings.value("customRensoItemClickWeight", 10);
+ } catch (Exception e1) {
+ value = 10;
+ }
+ }
+ settings.endGroup();
+ return value;
+ }
+ public static void saveCustomRensoItemClickWeight(int weight) {
+ settings.beginGroup("RensoNoteList");
+ settings.setValue("customRensoItemClickWeight", weight);
+ settings.endGroup();
+ }
+ // 連想ノートリスト重み付けモード:カスタムの設定値(同じタグ)
+ public static int customSameTagWeight() {
+ settings.beginGroup("RensoNoteList");
+ Integer value;
+ try {
+ String val = (String)settings.value("customSameTagWeight", 2);
+ value = new Integer(val.trim());
+ } catch (Exception e) {
+ try {
+ value = (Integer)settings.value("customSameTagWeight", 2);
+ } catch (Exception e1) {
+ value = 2;
+ }
+ }
+ settings.endGroup();
+ return value;
+ }
+ public static void saveCustomSameTagWeight(int weight) {
+ settings.beginGroup("RensoNoteList");
+ settings.setValue("customSameTagWeight", weight);
+ settings.endGroup();
+ }
+ // 連想ノートリスト重み付けモード:カスタムの設定値(同じノートブック)
+ public static int customSameNotebookWeight() {
+ settings.beginGroup("RensoNoteList");
+ Integer value;
+ try {
+ String val = (String)settings.value("customSameNotebookWeight", 2);
+ value = new Integer(val.trim());
+ } catch (Exception e) {
+ try {
+ value = (Integer)settings.value("customSameNotebookWeight", 2);
+ } catch (Exception e1) {
+ value = 2;
+ }
+ }
+ settings.endGroup();
+ return value;
+ }
+ public static void saveCustomSameNotebookWeight(int weight) {
+ settings.beginGroup("RensoNoteList");
+ settings.setValue("customSameNotebookWeight", weight);
+ settings.endGroup();
+ }
+ // 連想ノートリスト重み付けモード:カスタムの設定値(Evernote関連ノート)
+ public static int customENRelatedNotesWeight() {
+ settings.beginGroup("RensoNoteList");
+ Integer value;
+ try {
+ String val = (String)settings.value("customENRelatedNotesWeight", 5);
+ value = new Integer(val.trim());
+ } catch (Exception e) {
+ try {
+ value = (Integer)settings.value("customENRelatedNotesWeight", 5);
+ } catch (Exception e1) {
+ value = 5;
+ }
+ }
+ settings.endGroup();
+ return value;
+ }
+ public static void saveCustomENRelatedNotesWeight(int weight) {
+ settings.beginGroup("RensoNoteList");
+ settings.setValue("customENRelatedNotesWeight", weight);
+ settings.endGroup();
+ }
}
Global.setDefaultFontSize(fontPage.getFontSize());\r
Global.setDatabaseCache(debugPage.getDatabaseCacheSize());\r
\r
- // ICHANGED\r
Global.setBrowseWeight(rensoNoteListPage.getBrowseWeight());\r
Global.setCopyPasteWeight(rensoNoteListPage.getCopyPasteWeight());\r
Global.setAddNewNoteWeight(rensoNoteListPage.getAddNewNoteWeight());\r
Global.setSameNotebookWeight(rensoNoteListPage.getSameNotebookWeight());\r
Global.setENRelatedNotesWeight(rensoNoteListPage.getENRelatedNotesWeight());\r
\r
- // ICHANGED\r
+ // 現在カスタムモードなら、カスタムモードの設定値として保存\r
+ String mode = new String(Global.rensoWeightingSelect());\r
+ if (mode.equals("Custom")) {\r
+ Global.saveCustomBrowseWeight(rensoNoteListPage.getBrowseWeight());\r
+ Global.saveCustomCopyPasteWeight(rensoNoteListPage.getCopyPasteWeight());\r
+ Global.saveCustomAddNewNoteWeight(rensoNoteListPage.getAddNewNoteWeight());\r
+ Global.saveCustomRensoItemClickWeight(rensoNoteListPage.getRensoItemClickWeight());\r
+ Global.saveCustomSameTagWeight(rensoNoteListPage.getSameTagWeight());\r
+ Global.saveCustomSameNotebookWeight(rensoNoteListPage.getSameNotebookWeight());\r
+ Global.saveCustomENRelatedNotesWeight(rensoNoteListPage.getENRelatedNotesWeight());\r
+ }\r
+ \r
Global.setMergeRensoNote(rensoNoteListPage.getMergeChecked());\r
Global.setDuplicateRensoNote(rensoNoteListPage.getDuplicateChecked());\r
Global.setVerifyExclude(rensoNoteListPage.getVerifyExcludeChecked());\r
import com.trolltech.qt.gui.QFormLayout;
import com.trolltech.qt.gui.QGroupBox;
import com.trolltech.qt.gui.QHBoxLayout;
+import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QSlider;
import com.trolltech.qt.gui.QSpinBox;
import com.trolltech.qt.gui.QVBoxLayout;
enRelatedNotesLayout.addWidget(enRelatedNotesSpinner);
// 重み付け設定部分のレイアウト
+ QVBoxLayout vLayout = new QVBoxLayout();
QFormLayout styleLayout = new QFormLayout();
styleLayout.setHorizontalSpacing(10);
styleLayout.setVerticalSpacing(30);
- styleLayout.addRow(tr("Browse Weight"), browseLayout);
+ styleLayout.addRow(tr("Concurrent Browse Weight"), browseLayout);
styleLayout.addRow(tr("Copy&Paste Weight"), copyPasteLayout);
styleLayout.addRow(tr("Add New Note Weight"), addNewNoteLayout);
styleLayout.addRow(tr("Renso Item Click Weight"), rensoItemClickLayout);
styleLayout.addRow(tr("Same Tag Weight"), sameTagLayout);
styleLayout.addRow(tr("Same Notebook Weight"), sameNotebookLayout);
- styleLayout.addRow(tr("Evernote Related Notes Integration"), enRelatedNotesLayout);
+ styleLayout.addRow(tr("Evernote Related Notes Weight"), enRelatedNotesLayout);
+ vLayout.addLayout(styleLayout);
QGroupBox weightingGroup = new QGroupBox(tr("Weighting"));
- weightingGroup.setLayout(styleLayout);
+ weightingGroup.setLayout(vLayout);
+
+ // プリセットモードがカスタム以外ならば設定不可能にする
+ String mode = new String(Global.rensoWeightingSelect());
+ if (!mode.equals("Custom")) {
+ QLabel attention = new QLabel(tr("You can change these settings if you select \"Custom\" Mode."));
+ attention.setStyleSheet("color : red");
+ vLayout.insertWidget(0, attention);
+ vLayout.insertSpacing(1, 20);
+
+ browseSlider.setEnabled(false);
+ browseSpinner.setEnabled(false);
+ copyPasteSlider.setEnabled(false);
+ copyPasteSpinner.setEnabled(false);
+ addNewNoteSlider.setEnabled(false);
+ addNewNoteSpinner.setEnabled(false);
+ rensoItemClickSlider.setEnabled(false);
+ rensoItemClickSpinner.setEnabled(false);
+ sameTagSlider.setEnabled(false);
+ sameTagSpinner.setEnabled(false);
+ sameNotebookSlider.setEnabled(false);
+ sameNotebookSpinner.setEnabled(false);
+ enRelatedNotesSlider.setEnabled(false);
+ enRelatedNotesSpinner.setEnabled(false);
+ }
// ノートのマージ・複製の関連ノートリストへの適用
mergeCheck = new QCheckBox(tr("When you merge the notes, also merge RensoNoteList"));
public QThread getEnRelatedNotesThread() {
return enRelatedNotesThread;
}
+
+ public String getGuid() {
+ return guid;
+ }
}
package cx.fbn.nevernote.gui;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.EnumMap;
+import java.util.List;
+import java.util.Map;
+
import com.trolltech.qt.core.QSize;
+import com.trolltech.qt.gui.QComboBox;
import com.trolltech.qt.gui.QDockWidget;
import com.trolltech.qt.gui.QIcon;
+import com.trolltech.qt.gui.QLabel;
import com.trolltech.qt.gui.QMessageBox;
import com.trolltech.qt.gui.QPushButton;
import com.trolltech.qt.gui.QSizePolicy;
private final SyncRunner syncRunner;
private final ApplicationLogger logger;
private final QPushButton haltLogButton; // 操作ログの取得を停止ボタン
+ private final QComboBox weightingModeSelect; // 連想ノートリストの重み付けプリセットモード
private final RensoNoteList rensoNoteList; // 連想ノートリスト
private final QToolBar rensoToolBar; // 連想ノートリストドックのツールバー
+ private enum PresetMode {Standard, ConcurrentBrowse, OperationToOrganize, ContentSimilarity, Custom}; // プリセットモード一覧
private final String iconPath;
rensoToolBar = new QToolBar();
vLayout.addWidget(rensoToolBar);
+ QLabel modeLabel = new QLabel(tr("Mode: "));
+ modeLabel.setToolTip(tr("Preset Weighting Mode"));
+ rensoToolBar.addWidget(modeLabel);
+
+ weightingModeSelect = new QComboBox();
+ weightingModeSelect.setMaximumWidth(150);
+ weightingModeSelect.setToolTip(tr("Preset Weighting Mode"));
+ weightingModeSelect.insertItem(PresetMode.Standard.ordinal(), tr("Standard"));
+ weightingModeSelect.insertItem(PresetMode.ConcurrentBrowse.ordinal(), tr("Concurrent Browse"));
+ weightingModeSelect.insertItem(PresetMode.OperationToOrganize.ordinal(), ("Operation to Organize"));
+ weightingModeSelect.insertItem(PresetMode.ContentSimilarity.ordinal(), tr("Content Similarity"));
+ weightingModeSelect.insertItem(PresetMode.Custom.ordinal(), tr("Custom"));
+ int savedModeIndex = 0;
+ try {
+ savedModeIndex = PresetMode.valueOf(Global.rensoWeightingSelect()).ordinal();
+ } catch (Exception e) {
+ this.logger.log(this.logger.EXTREME, "Exception in weightingModeSelect = " + e);
+ }
+ if (savedModeIndex >= 0) {
+ weightingModeSelect.setCurrentIndex(savedModeIndex);
+ } else {
+ weightingModeSelect.setCurrentIndex(0);
+ }
+ weightingModeSelect.currentIndexChanged.connect(this, "weightingModeChanged(int)");
+ rensoToolBar.addWidget(weightingModeSelect);
+
haltLogButton = new QPushButton();
QIcon haltLogIcon = new QIcon(this.iconPath + "haltLog.png");
haltLogButton.setIcon(haltLogIcon);
}
@SuppressWarnings("unused")
+ private void weightingModeChanged(int modeIndex) {
+ logger.log(logger.EXTREME, "RensoNoteListDock.weightingModeChanged modeIndex = " + modeIndex);
+
+ PresetMode mode = Global.fromOrdinal(PresetMode.class, modeIndex);
+
+ // プリセットの重み付けマップを用意
+ // 値は同時閲覧、コピペ、新規ノート追加、連想ノートクリック、同じタグ、同じノートブック、Evernote関連ノートの順
+ Map<PresetMode, List<Integer>> presetMap = new EnumMap<PresetMode, List<Integer>>(PresetMode.class);
+ presetMap.put(PresetMode.Standard, Arrays.asList(1, 3, 3, 10, 2, 2, 5));
+ presetMap.put(PresetMode.ConcurrentBrowse, Arrays.asList(5, 2, 3, 10, 1, 1, 2));
+ presetMap.put(PresetMode.OperationToOrganize, Arrays.asList(1, 2, 3, 10, 5, 5, 2));
+ presetMap.put(PresetMode.ContentSimilarity, Arrays.asList(1, 2, 2, 10, 1, 1, 10));
+ presetMap.put(PresetMode.Custom, Arrays.asList(Global.customBrowseWeight(), Global.customCopyPasteWeight(),
+ Global.customAddNewNoteWeight(), Global.customRensoItemClickWeight(), Global.customSameTagWeight(),
+ Global.customSameNotebookWeight(), Global.customENRelatedNotesWeight()));
+
+ List<Integer> weightList = new ArrayList<Integer>(presetMap.get(mode));
+ Global.setBrowseWeight(weightList.get(0));
+ Global.setCopyPasteWeight(weightList.get(1));
+ Global.setAddNewNoteWeight(weightList.get(2));
+ Global.setRensoItemClickWeight(weightList.get(3));
+ Global.setSameTagWeight(weightList.get(4));
+ Global.setSameNotebookWeight(weightList.get(5));
+ Global.setENRelatedNotesWeight(weightList.get(6));
+
+ Global.saveRensoWeightingSelect(mode.name());
+
+ // 連想ノートリストをリフレッシュ
+ if (rensoNoteList != null && rensoNoteList.getGuid() != null ) {
+ rensoNoteList.refreshRensoNoteList();
+
+ // カスタムモードかつアプリ起動時以外なら、メッセージ表示
+ if (mode == PresetMode.Custom) {
+ QMessageBox.information(this, tr("Custom Mode was Selected"), tr("Custom mode was selected.\nYou can customize weighting manually in the Edit/Preferences/Renso Note List."));
+ }
+ }
+ }
+
+ @SuppressWarnings("unused")
private void haltLogToggled(boolean checked) {
logger.log(logger.EXTREME, "RensoNoteListDock.haltLogToggled");
public RensoNoteList getRensoNoteList() {
return rensoNoteList;
}
+
}