示例#1
0
void TabBar::startDrag(int index)
{
    int sessionId = sessionAtTab(index);

    m_startPos.setX(0);
    m_startPos.setY(0);

    int x = index ? m_tabWidths.at(index - 1) : m_skin->tabBarPosition().x();
    int tabWidth = m_tabWidths.at(index) - x;
    QString title = tabTitle(sessionId);

    QPixmap tab(tabWidth, height());
    QColor fillColor(Settings::backgroundColor());

    if (m_mainWindow->useTranslucency())
        fillColor.setAlphaF(qreal(Settings::backgroundColorOpacity()) / 100);

    tab.fill(fillColor);

    QPainter painter(&tab);
    painter.initFrom(this);
    painter.setPen(m_skin->tabBarTextColor());

    drawButton(0, 0, index, painter);
    painter.end();

    QMimeData* mimeData = new QMimeData;
    mimeData->setText(QVariant(sessionId).toString());

    QDrag* drag = new QDrag(this);
    drag->setMimeData(mimeData);
    drag->setPixmap(tab);
    drag->exec(Qt::MoveAction);

    return;
}
示例#2
0
bool UIMachineSettingsNetwork::validate(QString &strWarning, QString &strTitle)
{
    /* Pass if adapter is disabled: */
    if (!m_pEnableAdapterCheckBox->isChecked())
        return true;

    /* Validate alternatives: */
    bool fValid = true;
    switch (attachmentType())
    {
        case KNetworkAttachmentType_Bridged:
        {
            if (alternativeName().isNull())
            {
                strWarning = tr("no bridged network adapter is selected");
                fValid = false;
            }
            break;
        }
        case KNetworkAttachmentType_Internal:
        {
            if (alternativeName().isNull())
            {
                strWarning = tr("no internal network name is specified");
                fValid = false;
            }
            break;
        }
        case KNetworkAttachmentType_HostOnly:
        {
            if (alternativeName().isNull())
            {
                strWarning = tr("no host-only network adapter is selected");
                fValid = false;
            }
            break;
        }
        case KNetworkAttachmentType_Generic:
        {
            if (alternativeName().isNull())
            {
                strWarning = tr("no generic driver is selected");
                fValid = false;
            }
            break;
        }
        default:
            break;
    }

    /* Validate MAC-address length: */
    if (fValid && m_pMACEditor->text().size() < 12)
    {
        strWarning = tr("the MAC address must be 12 hexadecimal digits long.");
        fValid = false;
    }
    /* Make sure MAC-address is unicast: */
    if (fValid && m_pMACEditor->text().size() >= 2)
    {
        QRegExp validator("^[0-9A-Fa-f][02468ACEace]");
        if (validator.indexIn(m_pMACEditor->text()) != 0)
        {
            strWarning = tr("the second digit in the MAC address may not be odd "
                            "as only unicast addresses are allowed.");
            fValid = false;
        }
    }

    if (!fValid)
        strTitle += ": " + vboxGlobal().removeAccelMark(tabTitle());

    return fValid;
}