Пример #1
0
SAESpageWidget::SAESpageWidget(QWidget *parent) :
    QWidget(parent)
{
    /*create*/
    gridLayout = new QGridLayout(this);
    keygridLayout = new QGridLayout();
    inputTypeLayout = new QHBoxLayout();

    inputTypeL = new QLabel(tr("Input Type:"), this);
    binaryL = new QLabel(tr("Binary (16 digits)"), this);
    decimalL = new QLabel(tr("Integer (value <= 65535)"), this);
    hexL = new QLabel(tr("Hex (4 digits)"), this);

    binaryE = new QLineEdit(this);
    decimalE = new QLineEdit(this);
    hexE = new QLineEdit(this);

    inputTypeE = new QComboBox(this);
    keyBox = new QGroupBox(tr("Key (16 bit)"), this);
    inputL = new QGroupBox(this);
    outputL = new QGroupBox(this);

    inputLayout = new QHBoxLayout(inputL);
    outputLayout = new QHBoxLayout(outputL);

    inputE = new QPlainTextEdit(this);
    outputE = new QTextBrowser(this);

    clearButton = new QPushButton(tr("Clear"), this);
    convertButton = new QPushButton(this);

    QRegExp binRegExp("[01]{16}");
    QRegExp hexRegExp("[0-9A-Fa-f]{4}");

    binaryValidator = new QRegExpValidator(binRegExp, this);
    decimalValidator = new QIntValidator(0, 65535, this);
    hexValidator = new QRegExpValidator(hexRegExp, this);
    inputValidator = new QRegExpValidator(this);

    binaryE->setValidator(binaryValidator);
    decimalE->setValidator(decimalValidator);
    hexE->setValidator(hexValidator);


    /*lay out*/
    inputLayout->addWidget(inputE);
    outputLayout->addWidget(outputE);

    inputTypeLayout->addWidget(inputTypeL);
    inputTypeLayout->addWidget(inputTypeE);
    inputTypeLayout->addStretch();



    keygridLayout->addLayout(inputTypeLayout, 0, 0, 1, 4);
    keygridLayout->addWidget(binaryL, 1, 0, 1, 1);
    keygridLayout->setAlignment(binaryL, Qt::AlignRight);
    keygridLayout->addWidget(binaryE, 1, 1, 1, 3);

    keygridLayout->addWidget(decimalL, 2, 0, 1, 1);
    keygridLayout->setAlignment(decimalL, Qt::AlignRight);
    keygridLayout->addWidget(decimalE, 2, 1, 1, 3);

    keygridLayout->addWidget(hexL, 3, 0, 1, 1);
    keygridLayout->setAlignment(hexL, Qt::AlignRight);
    keygridLayout->addWidget(hexE, 3, 1, 1, 3);

    keygridLayout->setRowMinimumHeight(4, 50);

    keyBox->setLayout(keygridLayout);

    gridLayout->addWidget(keyBox, 0, 0, 4, 4);
    gridLayout->addWidget(inputL, 0, 4, 4, 8);
    gridLayout->addWidget(clearButton, 4, 8, 1, 2);
    gridLayout->addWidget(convertButton, 4, 10, 1, 2);
    gridLayout->addWidget(outputL, 6, 0, 3, 12);
    gridLayout->setRowMinimumHeight(5, 8);


    /*initialize*/
    inputTypeE->addItem(tr("Binary (Base 2)"));
    inputTypeE->addItem(tr("Integer (Base 10)"));
    inputTypeE->addItem(tr("Hex (Base 16)"));

    setCurrentKeyInput(0);

    /*signals&slots*/
    connect(inputTypeE, SIGNAL(currentIndexChanged(int)), this, SLOT(setCurrentKeyInput(int)));
    connect(binaryE, SIGNAL(textEdited(QString)), this, SLOT(fillAndColorKeyInput(QString)));
    connect(decimalE, SIGNAL(textEdited(QString)), this, SLOT(fillAndColorKeyInput(QString)));
    connect(hexE, SIGNAL(textEdited(QString)), this, SLOT(fillAndColorKeyInput(QString)));
    connect(clearButton, SIGNAL(clicked()), this, SLOT(clearBoxes()));

}
Пример #2
0
SAESpageWidget::SAESpageWidget(QWidget *parent) :
    QWidget(parent)
{
    /*create*/
    gridLayout = new QGridLayout(this);
    keygridLayout = new QGridLayout();
    inputTypeLayout = new QHBoxLayout();

    inputTypeL = new QLabel(tr("Input Type:"), this);
    binaryL = new QLabel(tr("Binary (16 digits)"), this);
    decimalL = new QLabel(tr("Integer (value <= 65535)"), this);
    hexL = new QLabel(tr("Hex (4 digits)"), this);

    binaryE = new QLineEdit(this);
    decimalE = new QLineEdit(this);
    hexE = new QLineEdit(this);

    inputTypeE = new QComboBox(this);
    keyBox = new QGroupBox(tr("Key (16 bit)"), this);
    inputL = new QGroupBox(this);
    outputL = new QGroupBox(this);

    inputLayout = new QHBoxLayout(inputL);
    outputLayout = new QHBoxLayout(outputL);

    inputE = new QPlainTextEdit(this);
    outputE = new QTextBrowser(this);

    clearButton = new QPushButton(tr("Clear"), this);
    convertButton = new QPushButton(this);

    QRegExp binRegExp("[01]{16}");                      //we use regular expressions to cleanse the input
    QRegExp hexRegExp("[0-9A-Fa-f]{4}");                //for some of the key fields!  Fr. Smolarski would
                                                        //be proud :P

    binaryValidator = new QRegExpValidator(binRegExp, this);    //the purpose of validators is to restrict
    decimalValidator = new QIntValidator(0, 65535, this);       //input in certain boxes to something
    hexValidator = new QRegExpValidator(hexRegExp, this);       //appropriate; i.e. if our input box
    inputValidator = new QRegExpValidator(this);                //needs a number, the QIntValidator
                                                                //prevents you from typing in anything else
    binaryE->setValidator(binaryValidator);
    decimalE->setValidator(decimalValidator);
    hexE->setValidator(hexValidator);


    /*lay out*/
    inputLayout->addWidget(inputE);
    outputLayout->addWidget(outputE);

    inputTypeLayout->addWidget(inputTypeL);
    inputTypeLayout->addWidget(inputTypeE);
    inputTypeLayout->addStretch();



    keygridLayout->addLayout(inputTypeLayout, 0, 0, 1, 4);
    keygridLayout->addWidget(binaryL, 1, 0, 1, 1);
    keygridLayout->setAlignment(binaryL, Qt::AlignRight);
    keygridLayout->addWidget(binaryE, 1, 1, 1, 3);

    keygridLayout->addWidget(decimalL, 2, 0, 1, 1);
    keygridLayout->setAlignment(decimalL, Qt::AlignRight);
    keygridLayout->addWidget(decimalE, 2, 1, 1, 3);

    keygridLayout->addWidget(hexL, 3, 0, 1, 1);
    keygridLayout->setAlignment(hexL, Qt::AlignRight);
    keygridLayout->addWidget(hexE, 3, 1, 1, 3);

    keygridLayout->setRowMinimumHeight(4, 50);

    keyBox->setLayout(keygridLayout);

    gridLayout->addWidget(keyBox, 0, 0, 4, 4);
    gridLayout->addWidget(inputL, 0, 4, 4, 8);
    gridLayout->addWidget(clearButton, 4, 8, 1, 2);
    gridLayout->addWidget(convertButton, 4, 10, 1, 2);
    gridLayout->addWidget(outputL, 6, 0, 3, 12);
    gridLayout->setRowMinimumHeight(5, 8);


    /*initialize*/
    inputTypeE->addItem(tr("Binary (Base 2)"));
    inputTypeE->addItem(tr("Integer (Base 10)"));
    inputTypeE->addItem(tr("Hex (Base 16)"));

    setCurrentKeyInput(0);

    /*signals&slots*/
    connect(inputTypeE, SIGNAL(currentIndexChanged(int)), this, SLOT(setCurrentKeyInput(int)));
    connect(binaryE, SIGNAL(textEdited(QString)), this, SLOT(fillAndColorKeyInput(QString)));
    connect(decimalE, SIGNAL(textEdited(QString)), this, SLOT(fillAndColorKeyInput(QString)));
    connect(hexE, SIGNAL(textEdited(QString)), this, SLOT(fillAndColorKeyInput(QString)));
    connect(clearButton, SIGNAL(clicked()), this, SLOT(clearBoxes()));

}
Пример #3
0
void ExprParamElement::adjustForSearchType(ExprSearchType type)
{    
    // record which search type is active
    searchType = type;
    QRegExp regExp("0|[1-9][0-9]*");
    numValidator = new QRegExpValidator(regExp, this);
    QRegExp hexRegExp("[A-Fa-f0-9]*");
    hexValidator = new QRegExpValidator(hexRegExp, this);
    
    // remove all elements
    QList<QWidget*> children = qFindChildren<QWidget*>(internalframe);
    QWidget* child;
    QLayout * lay_out = internalframe->layout();
     while (!children.isEmpty())
    {
        child = children.takeLast();
        child->hide();
        lay_out->removeWidget(child);
        delete child;
    }
    delete lay_out;

    QHBoxLayout* hbox = createLayout();
    internalframe->setLayout(hbox);
    internalframe->setMinimumSize(320,26);

    if (isStringSearchExpression())
    {
        // set up for default of a simple input field
        QLineEdit* lineEdit = new QLineEdit(internalframe);
        lineEdit->setMinimumSize(STR_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT);
        lineEdit->setSizePolicy(QSizePolicy::MinimumExpanding, QSizePolicy::Fixed);
        lineEdit->setObjectName("param1");
        hbox->addWidget(lineEdit);
        hbox->addSpacing(9);
        QCheckBox* icCb = new QCheckBox(tr("ignore case"), internalframe);
        icCb->setObjectName("ignoreCaseCB");
	icCb->setCheckState(Qt::Checked);
	// hex search specifics: hidden case sensitivity and hex validator
	if (searchType == HashSearch) {
		icCb->hide();
		lineEdit->setValidator(hexValidator);        
	}
	hbox->addWidget(icCb);
        hbox->addStretch();
	
    } else if (searchType == DateSearch) 
    {
        QDateEdit * dateEdit = new QDateEdit(QDate::currentDate(), internalframe);
        dateEdit->setMinimumSize(DATE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT);
        dateEdit->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
        dateEdit->setDisplayFormat(tr("dd.MM.yyyy"));
        dateEdit->setObjectName("param1");
        dateEdit->setMinimumDate(QDate(1970, 1, 1));
        dateEdit->setMaximumDate(QDate(2099, 12,31));
        hbox->addWidget(dateEdit, Qt::AlignLeft);
        hbox->addStretch();
    } else if (searchType == SizeSearch) 
    {
        QLineEdit * lineEdit = new QLineEdit(internalframe);
        lineEdit->setMinimumSize(SIZE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT);
        lineEdit->setMaximumSize(SIZE_FIELDS_MIN_WIDTH, FIELDS_MIN_HEIGHT);
        lineEdit->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
        lineEdit->setObjectName("param1");
        lineEdit->setValidator(numValidator);
        hbox->addWidget(lineEdit, Qt::AlignLeft);

        QComboBox * cb = new QComboBox(internalframe);
        cb->setObjectName("unitsCb1");
        cb-> addItem(tr("KB"), QVariant(1024));
        cb->addItem(tr("MB"), QVariant(1048576));
        cb->addItem(tr("GB"), QVariant(1073741824));
        hbox->addSpacing(9);
        internalframe->layout()->addWidget(cb);
        hbox->addStretch();
    } 

    /* POP Search not implemented
    else if (searchType == PopSearch)
    {
        QLineEdit * lineEdit = new QLineEdit(elem);
        lineEdit->setObjectName("param1");
        lineEdit->setValidator(numValidator);
        elem->layout()->addWidget(lineEdit);
    }*/
    hbox->invalidate();
    internalframe->adjustSize();
    internalframe->show();
    this->adjustSize();
}