Exemple #1
0
/*!
    Sets the model which provides completions to \a model. The \a model can
    be list model or a tree model. If a model has been already previously set
    and it has the QCompleter as its parent, it is deleted.

    For convenience, if \a model is a QFileSystemModel, QCompleter switches its
    caseSensitivity to Qt::CaseInsensitive on Windows and Qt::CaseSensitive
    on other platforms.

    \sa completionModel(), modelSorting, {Handling Tree Models}
*/
void QCompleter::setModel(QAbstractItemModel *model)
{
    Q_D(QCompleter);
    QAbstractItemModel *oldModel = d->proxy->sourceModel();
    d->proxy->setSourceModel(model);
    if (d->popup)
        setPopup(d->popup); // set the model and make new connections
    if (oldModel && oldModel->QObject::parent() == this)
        delete oldModel;
#ifndef QT_NO_DIRMODEL
    if (qobject_cast<QDirModel *>(model)) {
#if (defined(Q_OS_WIN) && !defined(Q_OS_WINCE)) || defined(Q_OS_SYMBIAN)
        setCaseSensitivity(Qt::CaseInsensitive);
#else
        setCaseSensitivity(Qt::CaseSensitive);
#endif
    }
#endif // QT_NO_DIRMODEL
#ifndef QT_NO_FILESYSTEMMODEL
    QFileSystemModel *fsModel = qobject_cast<QFileSystemModel *>(model);
    if (fsModel) {
#if (defined(Q_OS_WIN) && !defined(Q_OS_WINCE)) || defined(Q_OS_SYMBIAN)
        setCaseSensitivity(Qt::CaseInsensitive);
#else
        setCaseSensitivity(Qt::CaseSensitive);
#endif
        setCompletionRole(QFileSystemModel::FileNameRole);
        connect(fsModel, SIGNAL(directoryLoaded(QString)), this, SLOT(_q_fileSystemModelDirectoryLoaded(QString)));
    }
#endif // QT_NO_FILESYSTEMMODEL
}
void QValueFilterEditor::sensitivityLabelClicked(Qt::MouseButtons buttons)
{
    if (buttons.testFlag(Qt::LeftButton)){
        if (m_sensitivity == Qt::CaseInsensitive){
            setCaseSensitivity(Qt::CaseSensitive);
        } else {
            setCaseSensitivity(Qt::CaseInsensitive);
        }
    }
}
QValueFilterEditor::QValueFilterEditor(QWidget* parent) :
QWidget(parent)
{
    QHBoxLayout* mLayout = new QHBoxLayout(this);
    mLayout->setSpacing(0);
    mLayout->setContentsMargins(0, 0, 0, 0);

    m_valueLineEdit = new QLineEdit(this);
    mLayout->addWidget(m_valueLineEdit);

    m_sensitivityLabel = new QClickableLabel(this);
    connect(m_sensitivityLabel, SIGNAL(clicked(Qt::MouseButtons)), this, SLOT(sensitivityLabelClicked(Qt::MouseButtons)));
    mLayout->addWidget(m_sensitivityLabel);

    m_matchFlagsLabel = new QClickableLabel(this);
    connect(m_matchFlagsLabel, SIGNAL(clicked(Qt::MouseButtons)), this, SLOT(matchFlagsLabelClicked(Qt::MouseButtons)));
    mLayout->addWidget(m_matchFlagsLabel);

    setFocusProxy(m_valueLineEdit);

    setMatchFlag(Qt::MatchContains);
    setCaseSensitivity(Qt::CaseInsensitive);

    setFocusPolicy(Qt::StrongFocus);
}
void ImageExporterOutputWidget::initializeFileNameTextEdit()
{
    auto completer = new QCompleter;

    const QStringList filenameTags = QStringList()
                                     << "<width>"
                                     << "<height>"
                                     << "<enum#"
                                     << "<year>"
                                     << "<month>"
                                     << "<day>"
                                     << "<hour>"
                                     << "<minute>"
                                     << "<second>"
                                     << "<millisecond>";

    auto model = new QStringListModel(filenameTags);

    completer->setModel(model);
    completer->setModelSorting(QCompleter::CaseInsensitivelySortedModel);
    completer->setCaseSensitivity(Qt::CaseInsensitive);
    completer->setWrapAround(false);

    m_ui->fileNameTextEdit->setCompleter(completer);
}
GolangCompleter::GolangCompleter(QObject *parent) : SyntaxCompleter(parent)
{
    model = new QStringListModel;
    setModel(model);
    setCaseSensitivity(Qt::CaseSensitive);
    setWrapAround(false);
    setCompletionMode(PopupCompletion);
}
Exemple #6
0
Completer::Completer(QObject* parent) : QCompleter(parent)
{
    d.lineEdit = 0;
    d.defaultModel = 0;
    d.slashModel = 0;
    setCaseSensitivity(Qt::CaseInsensitive);
    setCompletionMode(InlineCompletion);
    connect(this, SIGNAL(highlighted(QString)), this, SLOT(insertCompletion(QString)));
}
Exemple #7
0
CCompleterLineEdit::CCompleterLineEdit(const QStringList& completions, QWidget *parent) :
	QLineEdit(parent)
{
	m_pCompleter = new QCompleter(completions, this);
	setCaseSensitivity(Qt::CaseInsensitive);
	setCompletionMode(QCompleter::UnfilteredPopupCompletion);
	setCompleter(m_pCompleter);
	m_bCompleteOnDoubleClick = true;
}
ScriptCompleter::ScriptCompleter()
: QCompleter()
, m_model(new QStandardItemModel)
{
    setCompletionMode(QCompleter::PopupCompletion);
    setCaseSensitivity(Qt::CaseSensitive);
    setFilterMode(Qt::MatchStartsWith);

    setModel(m_model);
}
void TagCompleter::ModelReady() {
  QFutureWatcher<TagCompletionModel*>* watcher =
      dynamic_cast<QFutureWatcher<TagCompletionModel*>*>(sender());
  if (!watcher) return;

  TagCompletionModel* model = watcher->result();
  setModel(model);
  setCaseSensitivity(Qt::CaseInsensitive);
  editor_->setCompleter(this);
}
ChangeSelectionDialog::ChangeSelectionDialog(const QString &workingDirectory, Core::Id id, QWidget *parent)
    : QDialog(parent)
    , m_ui(new Ui::ChangeSelectionDialog)
    , m_process(0)
    , m_command(NoCommand)
{
    setWindowFlags(windowFlags() & ~Qt::WindowContextHelpButtonHint);
    m_gitExecutable = GitPlugin::instance()->client()->vcsBinary();
    m_ui->setupUi(this);
    m_ui->workingDirectoryEdit->setText(workingDirectory);
    m_gitEnvironment = GitPlugin::instance()->client()->processEnvironment();
    m_ui->changeNumberEdit->setFocus();
    m_ui->changeNumberEdit->selectAll();

    connect(m_ui->changeNumberEdit, &Utils::CompletingLineEdit::textChanged,
            this, &ChangeSelectionDialog::changeTextChanged);
    connect(m_ui->workingDirectoryEdit, &QLineEdit::textChanged,
            this, &ChangeSelectionDialog::recalculateDetails);
    connect(m_ui->workingDirectoryEdit, &QLineEdit::textChanged,
            this, &ChangeSelectionDialog::recalculateCompletion);
    connect(m_ui->selectDirectoryButton, &QPushButton::clicked,
            this, &ChangeSelectionDialog::chooseWorkingDirectory);
    connect(m_ui->selectFromHistoryButton, &QPushButton::clicked,
            this, &ChangeSelectionDialog::selectCommitFromRecentHistory);
    connect(m_ui->showButton, &QPushButton::clicked,
            this, &ChangeSelectionDialog::acceptShow);
    connect(m_ui->cherryPickButton, &QPushButton::clicked,
            this, &ChangeSelectionDialog::acceptCherryPick);
    connect(m_ui->revertButton, &QPushButton::clicked,
            this, &ChangeSelectionDialog::acceptRevert);
    connect(m_ui->checkoutButton, &QPushButton::clicked,
            this, &ChangeSelectionDialog::acceptCheckout);

    if (id == "Git.Revert")
        m_ui->revertButton->setDefault(true);
    else if (id == "Git.CherryPick")
        m_ui->cherryPickButton->setDefault(true);
    else if (id == "Git.Checkout")
        m_ui->checkoutButton->setDefault(true);
    else
        m_ui->showButton->setDefault(true);
    m_changeModel = new QStringListModel(this);
    auto changeCompleter = new QCompleter(m_changeModel, this);
    m_ui->changeNumberEdit->setCompleter(changeCompleter);
    changeCompleter->setCaseSensitivity(Qt::CaseInsensitive);

    recalculateDetails();
    recalculateCompletion();
}
MessageCompleter::MessageCompleter(QWidget *parent)
    : QCompleter(parent)
{
    m_title = qobject_cast<QLineEdit*>(parent);
    Q_ASSERT(m_title);

    setCaseSensitivity(Qt::CaseInsensitive);
    setWrapAround(false);

    setCompletionColumn(0);
    setCompletionRole(Qt::EditRole);

    connect(Core::ICore::instance(), SIGNAL(viewNoteLoaded(Core::INoteView*,const WIZDOCUMENTDATA&,bool)),
            SLOT(onNoteLoaded(Core::INoteView*,const WIZDOCUMENTDATA&,bool)));
}
void HistoryCompleter::init()
{
    setPopup(new HistoryCompletionView());

    // we want to complete against our own faked role
    setCompletionRole(HistoryCompletionModel::HistoryCompletionRole);

    // and since we fake our completion role, we can take
    // advantage of the sorted-model optimizations in QCompleter
    setCaseSensitivity(Qt::CaseSensitive);
    setModelSorting(QCompleter::CaseSensitivelySortedModel);

    m_filterTimer.setSingleShot(true);
    connect(&m_filterTimer, SIGNAL(timeout()), this, SLOT(updateFilter()));
}
Exemple #13
0
GenericDataObjectFilter& GenericDataObjectFilter::operator=(const GenericDataObjectFilter& filter)
{
  if (this != & filter)
  {
    // set in this order so that multiple values will be cleared as needed.
    clearLists(false, true);
    m_multiValued = false;
    setCaseSensitivity(filter.getCaseSensitivity());
    setInvertFilterResult(filter.isInvertFilterResult());
    setFilterMeansAccept(filter.isFilterMeansAccept());
    setCompareField(filter.getCompareField());
    setCompareType(filter.getCompareType());
    setMultiValued(filter.isMultiValued());
    setValue(filter.getValue());
  }
  return *this;
}
Exemple #14
0
WizMessageCompleter::WizMessageCompleter(QWidget *parent)
    : QCompleter(parent)
{
    m_title = qobject_cast<QLineEdit*>(parent);
    Q_ASSERT(m_title);

    setCaseSensitivity(Qt::CaseInsensitive);
    setWrapAround(false);

    setCompletionColumn(0);
    setCompletionRole(Qt::EditRole);
#if QT_VERSION >= 0x050200
    setFilterMode(Qt::MatchContains);
#endif

    connect(WizGlobal::instance(), SIGNAL(viewNoteLoaded(WizDocumentView*,const WIZDOCUMENTDATA&,bool)),
            SLOT(onNoteLoaded(WizDocumentView*,const WIZDOCUMENTDATA&,bool)));
}
LocationCompleter::LocationCompleter(QObject* parent) :
    QCompleter(parent)
{
    setMaxVisibleItems(6);
    QStandardItemModel* completeModel = new QStandardItemModel();

    setModel(completeModel);
    QTreeView* treeView = new QTreeView;

    setPopup(treeView);
    treeView->setRootIsDecorated(false);
    treeView->header()->hide();
    treeView->header()->setStretchLastSection(false);
    treeView->header()->setResizeMode(0, QHeaderView::Stretch);
    treeView->header()->resizeSection(1, 0);

    setCompletionMode(QCompleter::PopupCompletion);
    setCaseSensitivity(Qt::CaseInsensitive);
    setWrapAround(true);
    setCompletionColumn(1);
}
ProjectItemCompleter::ProjectItemCompleter(QObject* parent)
    : QCompleter(parent), mModel(KDevelop::ICore::self()->projectController()->projectModel()), mBase( 0 )
{
    setModel(mModel);
    setCaseSensitivity( Qt::CaseInsensitive );
}
Exemple #17
0
void TextSearcherICU::setPattern(const StringView& pattern,
                                 bool caseSensitive) {
  setCaseSensitivity(caseSensitive);
  setPattern(pattern.characters16(), pattern.length());
}
void TagCompleter::ModelReady(QFuture<TagCompletionModel*> future) {
  TagCompletionModel* model = future.result();
  setModel(model);
  setCaseSensitivity(Qt::CaseInsensitive);
  editor_->setCompleter(this);
}
Exemple #19
0
TagCompleter::TagCompleter(Tags *tags, QObject *parent) :
	QCompleter(tags, parent), m_tags(tags)
{
	setCaseSensitivity(Qt::CaseInsensitive);
	setCompletionMode(QCompleter::InlineCompletion);
}
TempoMarkerDialog::TempoMarkerDialog(QWidget *parent)
    : QDialog(parent),
      ui(new Ui::TempoMarkerDialog),
      myBeatTypes(new QButtonGroup(this)),
      myListessoBeatTypes(new QButtonGroup(this)),
      myTripletFeelTypes(new QButtonGroup(this))
{
    ui->setupUi(this);

    QStringList descriptions;
    descriptions << "Fast Rock" << "Faster" << "Moderate Rock" << "Moderately"
                 << "Moderately Fast Rock" << "Moderately Slow Funk"
                 << "Moderately Slow Rock" << "Slow Blues" << "Slow Rock"
                 << "Slower" << "Slowly";
    ui->descriptionComboBox->addItems(descriptions);

    // Autocomplete for description choices.
    auto completer = new QCompleter(descriptions, this);
    completer->setCaseSensitivity(Qt::CaseInsensitive);
    ui->descriptionComboBox->setCompleter(completer);
    ui->descriptionComboBox->clearEditText();

    // Prevent multiple beat types from being selected at once.
    myBeatTypes->addButton(ui->note2Button, TempoMarker::Half);
    myBeatTypes->addButton(ui->dottedNote2Button, TempoMarker::HalfDotted);
    myBeatTypes->addButton(ui->note4Button, TempoMarker::Quarter);
    myBeatTypes->addButton(ui->dottedNote4Button, TempoMarker::QuarterDotted);
    myBeatTypes->addButton(ui->note8Button, TempoMarker::Eighth);
    myBeatTypes->addButton(ui->dottedNote8Button, TempoMarker::EighthDotted);
    myBeatTypes->addButton(ui->note16Button, TempoMarker::Sixteenth);
    myBeatTypes->addButton(ui->dottedNote16Button, TempoMarker::SixteenthDotted);
    myBeatTypes->addButton(ui->note32Button, TempoMarker::ThirtySecond);
    myBeatTypes->addButton(ui->dottedNote32Button,
                           TempoMarker::ThirtySecondDotted);
    ui->note4Button->setChecked(true);

    // Set the bpm range.
    ui->bpmSpinBox->setMinimum(TempoMarker::MIN_BEATS_PER_MINUTE);
    ui->bpmSpinBox->setMaximum(TempoMarker::MAX_BEATS_PER_MINUTE);
    ui->bpmSpinBox->setValue(TempoMarker::DEFAULT_BEATS_PER_MINUTE);

    // Prevent multiple listesso beat types from being selected at once.
    myListessoBeatTypes->addButton(ui->listessoNote2Button, TempoMarker::Half);
    myListessoBeatTypes->addButton(ui->listessoDottedNote2Button,
                                 TempoMarker::HalfDotted);
    myListessoBeatTypes->addButton(ui->listessoNote4Button, TempoMarker::Quarter);
    myListessoBeatTypes->addButton(ui->listessoDottedNote4Button,
                                 TempoMarker::QuarterDotted);
    myListessoBeatTypes->addButton(ui->listessoNote8Button, TempoMarker::Eighth);
    myListessoBeatTypes->addButton(ui->listessoDottedNote8Button,
                                 TempoMarker::EighthDotted);
    myListessoBeatTypes->addButton(ui->listessoNote16Button,
                                 TempoMarker::Sixteenth);
    myListessoBeatTypes->addButton(ui->listessoDottedNote16Button,
                                 TempoMarker::SixteenthDotted);
    myListessoBeatTypes->addButton(ui->listessoNote32Button,
                                 TempoMarker::ThirtySecond);
    myListessoBeatTypes->addButton(ui->listessoDottedNote32Button,
                                 TempoMarker::ThirtySecondDotted);
    ui->listessoNote2Button->setChecked(true);

    // Prevent triplet feel types from being selected at once.
    myTripletFeelTypes->addButton(ui->tripletFeelNoneCheckBox,
                                TempoMarker::NoTripletFeel);
    myTripletFeelTypes->addButton(ui->tripletFeel8thCheckBox,
                                TempoMarker::TripletFeelEighth);
    myTripletFeelTypes->addButton(ui->tripletFeel8thOffCheckBox,
                                TempoMarker::TripletFeelEighthOff);
    myTripletFeelTypes->addButton(ui->tripletFeel16thCheckBox,
                                TempoMarker::TripletFeelSixteenth);
    myTripletFeelTypes->addButton(ui->tripletFeel16thOffCheckBox,
                                TempoMarker::TripletFeelSixteenthOff);
    ui->tripletFeelNoneCheckBox->setChecked(true);

    connect(ui->enableListessoCheckBox, SIGNAL(clicked(bool)),
            this, SLOT(onListessoChanged(bool)));
    ui->enableListessoCheckBox->setChecked(false);
    onListessoChanged(false);

    connect(ui->showMetronomeMarkerCheckBox, SIGNAL(clicked(bool)),
            this, SLOT(onShowMetronomeMarkerChanged(bool)));
    ui->showMetronomeMarkerCheckBox->setChecked(true);

    ui->descriptionComboBox->setFocus();
}