/* * This file is part of NeighborNote * Copyright 2013 Yuki Takahashi * * This file may be licensed under the terms of of the * GNU General Public License Version 2 (the ``GPL''). * * Software distributed under the License is distributed * on an ``AS IS'' basis, WITHOUT WARRANTY OF ANY KIND, either * express or implied. See the GPL for the specific language * governing rights and limitations. * * You should have received a copy of the GPL along with this * program. If not, go to http://www.gnu.org/licenses/gpl.html * or write to the Free Software Foundation, Inc., * 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA. * */ package cx.fbn.nevernote.dialog; import com.trolltech.qt.core.Qt; import com.trolltech.qt.gui.QCheckBox; 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; import com.trolltech.qt.gui.QWidget; import cx.fbn.nevernote.Global; public class ConfigRensoNoteListPage extends QWidget { private final QSlider browseSlider; private final QSlider copyPasteSlider; private final QSlider addNewNoteSlider; private final QSlider rensoItemClickSlider; private final QSlider sameTagSlider; private final QSlider sameNotebookSlider; private final QSlider enRelatedNotesSlider; private final QSpinBox browseSpinner; private final QSpinBox copyPasteSpinner; private final QSpinBox addNewNoteSpinner; private final QSpinBox rensoItemClickSpinner; private final QSpinBox sameTagSpinner; private final QSpinBox sameNotebookSpinner; private final QSpinBox rensoListItemMaximumSpinner; private final QSpinBox enRelatedNotesSpinner; private final QCheckBox mergeCheck; private final QCheckBox duplicateCheck; private final QCheckBox verifyExclude; public ConfigRensoNoteListPage(QWidget parent) { // 操作履歴への重み付け // browseHistory browseSlider = new QSlider(); browseSlider.setOrientation(Qt.Orientation.Horizontal); browseSlider.setRange(0, 10); browseSlider.setSingleStep(1); browseSlider.setTickPosition(QSlider.TickPosition.TicksAbove); browseSlider.setTickInterval(1); browseSlider.setFocusPolicy(Qt.FocusPolicy.StrongFocus); browseSpinner = new QSpinBox(); browseSpinner.setRange(0,10); browseSpinner.setSingleStep(1); browseSlider.valueChanged.connect(browseSpinner, "setValue(int)"); browseSpinner.valueChanged.connect(browseSlider, "setValue(int)"); browseSlider.setValue(Global.getBrowseWeight()); QHBoxLayout browseLayout = new QHBoxLayout(); browseLayout.addWidget(browseSlider); browseLayout.addWidget(browseSpinner); // copyPasteHistory copyPasteSlider = new QSlider(); copyPasteSlider.setOrientation(Qt.Orientation.Horizontal); copyPasteSlider.setRange(0, 10); copyPasteSlider.setSingleStep(1); copyPasteSlider.setTickPosition(QSlider.TickPosition.TicksAbove); copyPasteSlider.setTickInterval(1); copyPasteSlider.setFocusPolicy(Qt.FocusPolicy.StrongFocus); copyPasteSpinner = new QSpinBox(); copyPasteSpinner.setRange(0,10); copyPasteSpinner.setSingleStep(1); copyPasteSlider.valueChanged.connect(copyPasteSpinner, "setValue(int)"); copyPasteSpinner.valueChanged.connect(copyPasteSlider, "setValue(int)"); copyPasteSlider.setValue(Global.getCopyPasteWeight()); QHBoxLayout copyPasteLayout = new QHBoxLayout(); copyPasteLayout.addWidget(copyPasteSlider); copyPasteLayout.addWidget(copyPasteSpinner); // addNewNoteHistory addNewNoteSlider = new QSlider(); addNewNoteSlider.setOrientation(Qt.Orientation.Horizontal); addNewNoteSlider.setRange(0, 10); addNewNoteSlider.setSingleStep(1); addNewNoteSlider.setTickPosition(QSlider.TickPosition.TicksAbove); addNewNoteSlider.setTickInterval(1); addNewNoteSlider.setFocusPolicy(Qt.FocusPolicy.StrongFocus); addNewNoteSpinner = new QSpinBox(); addNewNoteSpinner.setRange(0,10); addNewNoteSpinner.setSingleStep(1); addNewNoteSlider.valueChanged.connect(addNewNoteSpinner, "setValue(int)"); addNewNoteSpinner.valueChanged.connect(addNewNoteSlider, "setValue(int)"); addNewNoteSlider.setValue(Global.getAddNewNoteWeight()); QHBoxLayout addNewNoteLayout = new QHBoxLayout(); addNewNoteLayout.addWidget(addNewNoteSlider); addNewNoteLayout.addWidget(addNewNoteSpinner); // rensoItemClickHistory rensoItemClickSlider = new QSlider(); rensoItemClickSlider.setOrientation(Qt.Orientation.Horizontal); rensoItemClickSlider.setRange(0, 10); rensoItemClickSlider.setSingleStep(1); rensoItemClickSlider.setTickPosition(QSlider.TickPosition.TicksAbove); rensoItemClickSlider.setTickInterval(1); rensoItemClickSlider.setFocusPolicy(Qt.FocusPolicy.StrongFocus); rensoItemClickSpinner = new QSpinBox(); rensoItemClickSpinner.setRange(0,10); rensoItemClickSpinner.setSingleStep(1); rensoItemClickSlider.valueChanged.connect(rensoItemClickSpinner, "setValue(int)"); rensoItemClickSpinner.valueChanged.connect(rensoItemClickSlider, "setValue(int)"); rensoItemClickSlider.setValue(Global.getRensoItemClickWeight()); QHBoxLayout rensoItemClickLayout = new QHBoxLayout(); rensoItemClickLayout.addWidget(rensoItemClickSlider); rensoItemClickLayout.addWidget(rensoItemClickSpinner); // sameTagHistory sameTagSlider = new QSlider(); sameTagSlider.setOrientation(Qt.Orientation.Horizontal); sameTagSlider.setRange(0, 10); sameTagSlider.setSingleStep(1); sameTagSlider.setTickPosition(QSlider.TickPosition.TicksAbove); sameTagSlider.setTickInterval(1); sameTagSlider.setFocusPolicy(Qt.FocusPolicy.StrongFocus); sameTagSpinner = new QSpinBox(); sameTagSpinner.setRange(0,10); sameTagSpinner.setSingleStep(1); sameTagSlider.valueChanged.connect(sameTagSpinner, "setValue(int)"); sameTagSpinner.valueChanged.connect(sameTagSlider, "setValue(int)"); sameTagSlider.setValue(Global.getSameTagWeight()); QHBoxLayout sameTagLayout = new QHBoxLayout(); sameTagLayout.addWidget(sameTagSlider); sameTagLayout.addWidget(sameTagSpinner); // sameNotebookHistory sameNotebookSlider = new QSlider(); sameNotebookSlider.setOrientation(Qt.Orientation.Horizontal); sameNotebookSlider.setRange(0, 10); sameNotebookSlider.setSingleStep(1); sameNotebookSlider.setTickPosition(QSlider.TickPosition.TicksAbove); sameNotebookSlider.setTickInterval(1); sameNotebookSlider.setFocusPolicy(Qt.FocusPolicy.StrongFocus); sameNotebookSpinner = new QSpinBox(); sameNotebookSpinner.setRange(0,10); sameNotebookSpinner.setSingleStep(1); sameNotebookSlider.valueChanged.connect(sameNotebookSpinner, "setValue(int)"); sameNotebookSpinner.valueChanged.connect(sameNotebookSlider, "setValue(int)"); sameNotebookSlider.setValue(Global.getSameNotebookWeight()); QHBoxLayout sameNotebookLayout = new QHBoxLayout(); sameNotebookLayout.addWidget(sameNotebookSlider); sameNotebookLayout.addWidget(sameNotebookSpinner); // enRelatedNotes enRelatedNotesSlider = new QSlider(); enRelatedNotesSlider.setOrientation(Qt.Orientation.Horizontal); enRelatedNotesSlider.setRange(0, 10); enRelatedNotesSlider.setSingleStep(1); enRelatedNotesSlider.setTickPosition(QSlider.TickPosition.TicksAbove); enRelatedNotesSlider.setTickInterval(1); enRelatedNotesSlider.setFocusPolicy(Qt.FocusPolicy.StrongFocus); enRelatedNotesSpinner = new QSpinBox(); enRelatedNotesSpinner.setRange(0, 10); enRelatedNotesSpinner.setSingleStep(1); enRelatedNotesSlider.valueChanged.connect(enRelatedNotesSpinner, "setValue(int)"); enRelatedNotesSpinner.valueChanged.connect(enRelatedNotesSlider, "setValue(int)"); enRelatedNotesSpinner.setValue(Global.getENRelatedNotesWeight()); QHBoxLayout enRelatedNotesLayout = new QHBoxLayout(); enRelatedNotesLayout.addWidget(enRelatedNotesSlider); enRelatedNotesLayout.addWidget(enRelatedNotesSpinner); // 重み付け設定部分のレイアウト QVBoxLayout vLayout = new QVBoxLayout(); QFormLayout styleLayout = new QFormLayout(); styleLayout.setHorizontalSpacing(10); styleLayout.setVerticalSpacing(30); 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 Weight"), enRelatedNotesLayout); vLayout.addLayout(styleLayout); QGroupBox weightingGroup = new QGroupBox(tr("Weighting")); 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")); mergeCheck.setChecked(Global.getMergeRensoNote()); duplicateCheck = new QCheckBox(tr("When you duplicate the notes, also duplicate RensoNoteList")); duplicateCheck.setChecked(Global.getDuplicateRensoNote()); verifyExclude = new QCheckBox(tr("Verify when you exclude the note")); verifyExclude.setChecked(Global.verifyExclude()); // 連想ノートリスト最大アイテム表示数 rensoListItemMaximumSpinner = new QSpinBox(); rensoListItemMaximumSpinner.setRange(1,100); rensoListItemMaximumSpinner.setSingleStep(1); rensoListItemMaximumSpinner.setValue(Global.getRensoListItemMaximum()); QFormLayout fLayout = new QFormLayout(); fLayout.setHorizontalSpacing(100); fLayout.addRow(tr("Renso Note List Item Maximum"), rensoListItemMaximumSpinner); // その他のレイアウト QVBoxLayout othersLayout = new QVBoxLayout(); othersLayout.addWidget(mergeCheck); othersLayout.addWidget(duplicateCheck); othersLayout.addWidget(verifyExclude); othersLayout.addLayout(fLayout); QGroupBox othersGroup = new QGroupBox(tr("Others")); othersGroup.setLayout(othersLayout); QVBoxLayout mainLayout = new QVBoxLayout(); mainLayout.addWidget(weightingGroup); mainLayout.addWidget(othersGroup); mainLayout.addStretch(1); setLayout(mainLayout); } //***************************************** //* Browse Weight //***************************************** public int getBrowseWeight() { return browseSpinner.value(); } //***************************************** //* Copy & Paste Weight //***************************************** public int getCopyPasteWeight() { return copyPasteSpinner.value(); } //***************************************** //* Add New Note Weight //***************************************** public int getAddNewNoteWeight() { return addNewNoteSpinner.value(); } //***************************************** //* Renso Item Click Weight //***************************************** public int getRensoItemClickWeight() { return rensoItemClickSpinner.value(); } //***************************************** //* Same Tag Weight //***************************************** public int getSameTagWeight() { return sameTagSpinner.value(); } //***************************************** //* Same Notebook Weight //***************************************** public int getSameNotebookWeight() { return sameNotebookSpinner.value(); } //***************************************** //* Evernote Related Notes Integration Weight //***************************************** public int getENRelatedNotesWeight() { return enRelatedNotesSpinner.value(); } //***************************************** //* Merge Check //***************************************** public boolean getMergeChecked() { return mergeCheck.isChecked(); } //***************************************** //* DuplicateCheck //***************************************** public boolean getDuplicateChecked() { return duplicateCheck.isChecked(); } //***************************************** //* VerifyExcludeCheck //***************************************** public boolean getVerifyExcludeChecked() { return verifyExclude.isChecked(); } //***************************************** //* RensoNoteListItemMaximum //***************************************** public int getRensoListItemMaximum() { return rensoListItemMaximumSpinner.value(); } }