/************************************************************************** ** ** This file is part of Qt Creator ** ** Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies). ** ** Contact: Nokia Corporation (qt-info@nokia.com) ** ** Commercial Usage ** ** Licensees holding valid Qt Commercial licenses may use this file in ** accordance with the Qt Commercial License Agreement provided with the ** Software or, alternatively, in accordance with the terms contained in ** a written agreement between you and Nokia. ** ** GNU Lesser General Public License Usage ** ** Alternatively, this file may be used under the terms of the GNU Lesser ** General Public License version 2.1 as published by the Free Software ** Foundation and appearing in the file LICENSE.LGPL included in the ** packaging of this file. Please review the following information to ** ensure the GNU Lesser General Public License version 2.1 requirements ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. ** ** If you are unsure which license is appropriate for your use, please ** contact the sales department at http://www.qtsoftware.com/contact. ** **************************************************************************/ #include "iquickopenfilter.h" #include #include #include #include #include #include using namespace QuickOpen; IQuickOpenFilter::IQuickOpenFilter(QObject *parent): QObject(parent), m_includedByDefault(false), m_hidden(false) { } QString IQuickOpenFilter::shortcutString() const { return m_shortcut; } void IQuickOpenFilter::setShortcutString(const QString &shortcut) { m_shortcut = shortcut; } QByteArray IQuickOpenFilter::saveState() const { QByteArray value; QDataStream out(&value, QIODevice::WriteOnly); out << shortcutString(); out << isIncludedByDefault(); return value; } bool IQuickOpenFilter::restoreState(const QByteArray &state) { QString shortcut; bool defaultFilter; QDataStream in(state); in >> shortcut; in >> defaultFilter; setShortcutString(shortcut); setIncludedByDefault(defaultFilter); return true; } bool IQuickOpenFilter::openConfigDialog(QWidget *parent, bool &needsRefresh) { Q_UNUSED(needsRefresh); QDialog dialog(parent, Qt::WindowTitleHint | Qt::WindowSystemMenuHint); dialog.setWindowTitle(tr("Filter Configuration")); QVBoxLayout *vlayout = new QVBoxLayout(&dialog); QHBoxLayout *hlayout = new QHBoxLayout; QLineEdit *shortcutEdit = new QLineEdit(shortcutString()); QCheckBox *limitCheck = new QCheckBox(tr("Limit to prefix")); limitCheck->setChecked(!isIncludedByDefault()); hlayout->addWidget(new QLabel(tr("Prefix:"))); hlayout->addWidget(shortcutEdit); hlayout->addWidget(limitCheck); QDialogButtonBox *buttonBox = new QDialogButtonBox(QDialogButtonBox::Ok | QDialogButtonBox::Cancel); connect(buttonBox, SIGNAL(accepted()), &dialog, SLOT(accept())); connect(buttonBox, SIGNAL(rejected()), &dialog, SLOT(reject())); vlayout->addLayout(hlayout); vlayout->addStretch(); vlayout->addWidget(buttonBox); if (dialog.exec() == QDialog::Accepted) { setShortcutString(shortcutEdit->text().trimmed()); setIncludedByDefault(!limitCheck->isChecked()); return true; } return false; } bool IQuickOpenFilter::isConfigurable() const { return true; } bool IQuickOpenFilter::isIncludedByDefault() const { return m_includedByDefault; } void IQuickOpenFilter::setIncludedByDefault(bool includedByDefault) { m_includedByDefault = includedByDefault; } bool IQuickOpenFilter::isHidden() const { return m_hidden; } void IQuickOpenFilter::setHidden(bool hidden) { m_hidden = hidden; }