Пример #1
0
//! [11]
void MainWindow::changeModel()
{
    delete completer;
    completer = new QCompleter(this);
    completer->setMaxVisibleItems(maxVisibleSpinBox->value());

    switch (modelCombo->currentIndex()) {
    default:
    case 0:
        { // Unsorted QFileSystemModel
            QFileSystemModel *fsModel = new QFileSystemModel(completer);
            fsModel->setRootPath("");
            completer->setModel(fsModel);
            contentsLabel->setText(tr("Enter file path"));
        }
        break;
//! [11] //! [12]
    case 1:
        {   // FileSystemModel that shows full paths
            FileSystemModel *fsModel = new FileSystemModel(completer);
            completer->setModel(fsModel);
            fsModel->setRootPath("");
            contentsLabel->setText(tr("Enter file path"));
        }
        break;
//! [12] //! [13]
    case 2:
        { // Country List
            completer->setModel(modelFromFile(":/resources/countries.txt"));
            QTreeView *treeView = new QTreeView;
            completer->setPopup(treeView);
            treeView->setRootIsDecorated(false);
            treeView->header()->hide();
            treeView->header()->setStretchLastSection(false);
            treeView->header()->setResizeMode(0, QHeaderView::Stretch);
            treeView->header()->setResizeMode(1, QHeaderView::ResizeToContents);
            contentsLabel->setText(tr("Enter name of your country"));
        }
        break;
//! [13] //! [14]
    case 3:
        { // Word list
            completer->setModel(modelFromFile(":/resources/wordlist.txt"));
            completer->setModelSorting(QCompleter::CaseInsensitivelySortedModel);
            contentsLabel->setText(tr("Enter a word"));
        }
        break;
    }

    changeMode(modeCombo->currentIndex());
    changeCase(caseCombo->currentIndex());
    completer->setWrapAround(wrapCheckBox->isChecked());
    lineEdit->setCompleter(completer);
    connect(wrapCheckBox, SIGNAL(clicked(bool)), completer, SLOT(setWrapAround(bool)));
}
Пример #2
0
static inline int url_replace(clientHttpRequest* http, struct mod_conf_param* param)
{
	char tmpUrl[BUFSIZ];
	int ret = 0;
	ret = regexec(&param->reg, http->uri, REPLACE_REGEX_SUBSTR_NUMBER+1, g_pmatch, 0);
	if(0 != ret) 
	{
		debug(120, 3)("url_replace: donot match regex, uri=[%s]\n", http->uri);
		return 0;
	}       
	String url = StringNull;
	stringAppend(&url, param->replace[0], strlen(param->replace[0]));
	int i = 1;
	while(0 != (ret=(long int)param->replace[i]))
	{       
		stringAppend(&url, http->uri+g_pmatch[ret].rm_so, g_pmatch[ret].rm_eo-g_pmatch[ret].rm_so);
		debug(120,3)("rm_so=%d, rm_eo=%d\n", g_pmatch[ret].rm_so, g_pmatch[ret].rm_eo);
		i++;    
		if(param->replace[i])
		{       
			stringAppend(&url, param->replace[i], strlen(param->replace[i]));
			i++;    
		}               
		else            
		{       
			break;
		}       
	}                       
	xfree(http->uri);       
	if (param->ingoreCase)
	{
		if (changeCase(url.buf, tmpUrl))
			http->uri = xstrdup(tmpUrl);
		else
			http->uri = xstrdup(url.buf);
	}
	else
		http->uri = xstrdup(url.buf);
	stringClean(&url);
	debug(120, 3)("url_replace: uri modified, uri=[%s]\n", http->uri);
	return 1;
}
Пример #3
0
//! [0]
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent), completer(0), lineEdit(0)
{
    createMenu();

    completer = new TreeModelCompleter(this);
    completer->setModel(modelFromFile(":/resources/treemodel.txt"));
    completer->setSeparator(QLatin1String("."));
    QObject::connect(completer, SIGNAL(highlighted(QModelIndex)),
                     this, SLOT(highlight(QModelIndex)));

    QWidget *centralWidget = new QWidget;

    QLabel *modelLabel = new QLabel;
    modelLabel->setText(tr("Tree Model<br>(Double click items to edit)"));

    QLabel *modeLabel = new QLabel;
    modeLabel->setText(tr("Completion Mode"));
    modeCombo = new QComboBox;
    modeCombo->addItem(tr("Inline"));
    modeCombo->addItem(tr("Filtered Popup"));
    modeCombo->addItem(tr("Unfiltered Popup"));
    modeCombo->setCurrentIndex(1);

    QLabel *caseLabel = new QLabel;
    caseLabel->setText(tr("Case Sensitivity"));
    caseCombo = new QComboBox;
    caseCombo->addItem(tr("Case Insensitive"));
    caseCombo->addItem(tr("Case Sensitive"));
    caseCombo->setCurrentIndex(0);
//! [0]

//! [1]
    QLabel *separatorLabel = new QLabel;
    separatorLabel->setText(tr("Tree Separator"));

    QLineEdit *separatorLineEdit = new QLineEdit;
    separatorLineEdit->setText(completer->separator());
    connect(separatorLineEdit, SIGNAL(textChanged(QString)),
            completer, SLOT(setSeparator(QString)));

    QCheckBox *wrapCheckBox = new QCheckBox;
    wrapCheckBox->setText(tr("Wrap around completions"));
    wrapCheckBox->setChecked(completer->wrapAround());
    connect(wrapCheckBox, SIGNAL(clicked(bool)), completer, SLOT(setWrapAround(bool)));

    contentsLabel = new QLabel;
    contentsLabel->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
    connect(separatorLineEdit, SIGNAL(textChanged(QString)),
            this, SLOT(updateContentsLabel(QString)));

    treeView = new QTreeView;
    treeView->setModel(completer->model());
    treeView->header()->hide();
    treeView->expandAll();
//! [1]

//! [2]
    connect(modeCombo, SIGNAL(activated(int)), this, SLOT(changeMode(int)));
    connect(caseCombo, SIGNAL(activated(int)), this, SLOT(changeCase(int)));

    lineEdit = new QLineEdit;
    lineEdit->setCompleter(completer);
//! [2]

//! [3]
    QGridLayout *layout = new QGridLayout;
    layout->addWidget(modelLabel, 0, 0); layout->addWidget(treeView, 0, 1);
    layout->addWidget(modeLabel, 1, 0);  layout->addWidget(modeCombo, 1, 1);
    layout->addWidget(caseLabel, 2, 0);  layout->addWidget(caseCombo, 2, 1);
    layout->addWidget(separatorLabel, 3, 0); layout->addWidget(separatorLineEdit, 3, 1);
    layout->addWidget(wrapCheckBox, 4, 0);
    layout->addWidget(contentsLabel, 5, 0, 1, 2);
    layout->addWidget(lineEdit, 6, 0, 1, 2);
    centralWidget->setLayout(layout);
    setCentralWidget(centralWidget);

    changeCase(caseCombo->currentIndex());
    changeMode(modeCombo->currentIndex());

    setWindowTitle(tr("Tree Model Completer"));
    lineEdit->setFocus();
}
Пример #4
0
void test_changeCase()
{
    int i = 0;

    char arrayOfLetters1[ 21 ] = {'T', 'h', 'i', 's', 'I', 's', 'T', 'h', 'e', 'F', 'i', 'n', 'a', 'l', 'L', 'a', 'b', 'O', 'f', '5', '1'};
    char arrayOfLetters2[ 35 ] = {'i', 'A', 'M', 'o', 'n', 'A', 's', 'e', 'a', 'f', 'o', 'o', 'd', 'D', 'I', 'E', 'T', '.', 'I', 's', 'e', 'e', 'F', 'O', 'O', 'D', 'a', 'n', 'd', 'I', 'e', 'a', 't', 'I', 'T'};
    char arrayOfLetters3[ 10 ] = {'1', '2', '3', '4', 'A', '5', '6', '7', '8', '9'};

    char expected_arrayOfLetters1[ 21 ] = {'t', 'H', 'I', 'S', 'i', 'S', 't', 'H', 'E', 'f', 'I', 'N', 'A', 'L', 'l', 'A', 'B', 'o', 'F', '5', '1'};
    char expected_arrayOfLetters2[ 35 ] = {'I', 'a', 'm', 'O', 'N', 'a', 'S', 'E', 'A', 'F', 'O', 'O', 'D', 'd', 'i', 'e', 't', '.', 'i', 'S', 'E', 'E', 'f', 'o', 'o', 'd', 'A', 'N', 'D', 'i', 'E', 'A', 'T', 'i', 't'};
    char expected_arrayOfLetters3[ 10 ] = {'1', '2', '3', '4', 'a', '5', '6', '7', '8', '9'};

    for(i=0; i<21; i++) {
        printf("%c", arrayOfLetters1[i]);
    }
    printf(" ==> ");

    changeCase(arrayOfLetters1, 21);

    for(i=0; i<21; i++) {
        printf("%c", arrayOfLetters1[i]);
    }

    num_of_tests++;
    if (!memcmp(arrayOfLetters1, expected_arrayOfLetters1, 21)) {
        printf(ANSI_COLOR_GREEN "\nTest passed.\n" ANSI_COLOR_RESET);
        num_of_tests_passed++;
    }
    else {
        printf(ANSI_COLOR_RED "\nTest failed.\n" ANSI_COLOR_RESET);
    }


    printf("\n");
    for(i=0; i<35; i++) {
        printf("%c", arrayOfLetters2[i]);
    }
    printf(" ==> ");

    changeCase(arrayOfLetters2, 35);

    for(i=0; i<35; i++) {
        printf("%c", arrayOfLetters2[i]);
    }

    num_of_tests++;
    if (!memcmp(arrayOfLetters2, expected_arrayOfLetters2, 35)) {
        printf(ANSI_COLOR_GREEN "\nTest passed.\n" ANSI_COLOR_RESET);
        num_of_tests_passed++;
    }
    else
        printf(ANSI_COLOR_RED "\nTest failed.\n" ANSI_COLOR_RESET);



    printf("\n");
    for(i=0; i<10; i++) {
        printf("%c", arrayOfLetters3[i]);
    }
    printf(" ==> ");

    changeCase(arrayOfLetters3, 10);

    for(i=0; i<10; i++) {
        printf("%c", arrayOfLetters3[i]);
    }

    num_of_tests++;
    if (!memcmp(arrayOfLetters3, expected_arrayOfLetters3, 10)) {
        printf(ANSI_COLOR_GREEN "\nTest passed.\n" ANSI_COLOR_RESET);
        num_of_tests_passed++;
    }
    else {
        printf(ANSI_COLOR_RED "\nTest failed.\n" ANSI_COLOR_RESET);
    }
}