/* * This file is part of NixNote * Copyright 2009 Randy Baumgarte * * 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. * */ //********************************************** //********************************************** //* Index settings in Edit/Preferences //********************************************** //********************************************** package cx.fbn.nevernote.dialog; import com.trolltech.qt.gui.QCheckBox; import com.trolltech.qt.gui.QGroupBox; import com.trolltech.qt.gui.QHBoxLayout; import com.trolltech.qt.gui.QLabel; import com.trolltech.qt.gui.QLineEdit; 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 ConfigIndexPage extends QWidget { private final QSpinBox weightSpinner; private final QSpinBox sleepSpinner; private final QCheckBox indexAttachmentsLocally; private final QCheckBox indexImageRecognition; private final QCheckBox indexTitle; private final QCheckBox automaticWildcard; private final QLineEdit specialStrip; private final QCheckBox indexBody; private final QLineEdit regexEdit; public ConfigIndexPage(QWidget parent) { // super(parent); // Recognition weight QGroupBox weightGroup = new QGroupBox(tr("Recognition")); QLabel weightLabel = new QLabel(tr("Minimum Recognition Weight")); weightSpinner = new QSpinBox(); weightSpinner.setRange(1,100); weightSpinner.setSingleStep(1); weightSpinner.setValue(Global.getRecognitionWeight()); QHBoxLayout weightLayout = new QHBoxLayout(); weightLayout.addWidget(weightLabel); weightLayout.addWidget(weightSpinner); weightGroup.setLayout(weightLayout); // Local attachment indexing QGroupBox attachmentGroup = new QGroupBox(tr("Content")); indexBody = new QCheckBox(tr("Index Note Body")); indexBody.setChecked(Global.indexNoteBody()); indexTitle = new QCheckBox(tr("Index Note Title")); indexTitle.setChecked(Global.indexNoteTitle()); indexAttachmentsLocally = new QCheckBox(tr("Index Attachments Locally")); indexAttachmentsLocally.setChecked(Global.indexAttachmentsLocally()); indexImageRecognition = new QCheckBox(tr("Index Image Recognition")); indexImageRecognition.setChecked(Global.indexImageRecognition()); automaticWildcard = new QCheckBox(tr("Automatically Wildcard All Searches")); automaticWildcard.setChecked(Global.automaticWildcardSearches()); specialStrip = new QLineEdit(); specialStrip.setText(Global.getSpecialIndexCharacters()); QVBoxLayout attachmentLayout = new QVBoxLayout(); attachmentLayout.addWidget(indexBody); attachmentLayout.addWidget(indexTitle); attachmentLayout.addWidget(indexAttachmentsLocally); attachmentLayout.addWidget(indexImageRecognition); attachmentLayout.addWidget(automaticWildcard); QHBoxLayout specialCharLayout = new QHBoxLayout(); specialCharLayout.addWidget(new QLabel(tr("Special Word Characters"))); specialCharLayout.addWidget(specialStrip); attachmentLayout.addLayout(specialCharLayout); attachmentGroup.setLayout(attachmentLayout); // Index sleep interval QGroupBox sleepGroup = new QGroupBox(tr("Index Interval")); QLabel sleepLabel = new QLabel(tr("Seconds between looking for unindexed notes")); sleepSpinner = new QSpinBox(); sleepSpinner.setRange(30,600); sleepSpinner.setSingleStep(1); sleepSpinner.setValue(Global.getIndexThreadSleepInterval()); QHBoxLayout sleepLayout = new QHBoxLayout(); sleepLayout.addWidget(sleepLabel); sleepLayout.addWidget(sleepSpinner); sleepGroup.setLayout(sleepLayout); // Regular Expressions for word parsing QGroupBox regexGroup = new QGroupBox(tr("Word Parse")); QLabel regexLabel = new QLabel(tr("Regular Expression")); regexEdit = new QLineEdit(); regexEdit.setText(Global.getWordRegex()); QHBoxLayout regexLayout = new QHBoxLayout(); regexLayout.addWidget(regexLabel); regexLayout.addWidget(regexEdit); regexGroup.setLayout(regexLayout); QVBoxLayout mainLayout = new QVBoxLayout(); mainLayout.addWidget(sleepGroup); mainLayout.addWidget(weightGroup); mainLayout.addWidget(attachmentGroup); mainLayout.addWidget(regexGroup); mainLayout.addStretch(1); setLayout(mainLayout); } //***************************************** //* Get for flag to index attachments //***************************************** public boolean getIndexAttachmentsLocally() { return indexAttachmentsLocally.isChecked(); } public boolean getIndexNoteBody() { return indexBody.isChecked(); } public boolean getIndexNoteTitle() { return indexTitle.isChecked(); } public String getSpecialCharacters() { return specialStrip.text(); } public boolean getIndexImageRecognition() { return indexImageRecognition.isChecked(); } public boolean getAutomaticWildcardSearches() { return automaticWildcard.isChecked(); } //***************************************** //* Word length get/set methods //***************************************** public void setSleepInterval(int len) { sleepSpinner.setValue(len); } public int getSleepInterval() { return sleepSpinner.value(); } //***************************************** //* Recognition Weight //***************************************** public void setRecognitionWeight(int len) { weightSpinner.setValue(len); } public int getRecognitionWeight() { return weightSpinner.value(); } //***************************************** //* Regex get/set methods //***************************************** public void setRegex(String s) { regexEdit.setText(s); } public String getRegex() { return regexEdit.text(); } }