Exemple #1
0
void DockWidget::setState(bool edit) {
    QDockWidget::DockWidgetFeatures features;
    if (edit) {
        setAllowedAreas(Qt::AllDockWidgetAreas);
        features = QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable;
        if (isClosable()) {
            features |= QDockWidget::DockWidgetClosable;
        }
    } else {
        setAllowedAreas(Qt::NoDockWidgetArea);
        features = QDockWidget::NoDockWidgetFeatures;
        if (isFloating()) {
            features |= QDockWidget::DockWidgetFloatable;
        }
    }
    setFeatures(features);
    setTitleBarWidget(isFloating() || edit ? Q_NULLPTR : m_titleHide);
}
bool StreamReceiver::
close(SocketMessenger* m, Conduit* c)
{
    Synchronized<es::Monitor*> method(monitor);

    if (socket->getTimeout() == 0 && !socket->getBlocking())
    {
        state->abort(this);
        return false;
    }

    shutrd = shutwr = true;
    if (state->close(m, this))
    {
        int size = 14 + 60 + 60 + mss;  // XXX Assume MAC, IPv4, TCP
        Handle<InetMessenger> seg = new InetMessenger(&InetReceiver::output, size, size);
        Handle<Address> addr;
        seg->setLocal(addr = m->getLocal());
        seg->setRemote(addr = m->getRemote());
        seg->setLocalPort(m->getLocalPort());
        seg->setRemotePort(m->getRemotePort());
        seg->setType(IPPROTO_TCP);
        Visitor v(seg);
        conduit->accept(&v, conduit->getB());
    }

    while (!isClosable())
    {
        ASSERT(socket);
        if (!socket->getBlocking())
        {
            m->setErrorCode(EAGAIN);
            return false;
        }
        monitor->wait();
    }
    return false;
}