示例#1
0
void KviMdiManager::destroyChild(KviMdiChild *lpC)
{
	removeSubWindow(lpC);
	delete lpC;

	if(!m_bInSDIMode && KVI_OPTION_BOOL(KviOption_boolAutoTileWindows))
		tile();
}
示例#2
0
  void Workspace::addBrowseView(QString cubename) {
    /* Close the last browse window if necessary.  */
    if (subWindowList().size()) {
      QWeakPointer<QMdiSubWindow> windowToRemove =
          subWindowList()[subWindowList().size() - 1];

      removeSubWindow(windowToRemove.data());

      delete windowToRemove.data();
    }

    addCubeViewport(cubename);
  }
RenderWindow::~RenderWindow() {
    D("Entering\n");
    removeSubWindow();
    D("Sending CMD_FINALIZE\n");
    RenderWindowMessage msg;
    msg.cmd = CMD_FINALIZE;
    (void) processMessage(msg);

    if (mThread) {
        mThread->wait(NULL);
        delete mThread;
        delete mChannel;
    }
}
/*!
    Reimplemented from QObject::eventFilter. Filters events for the watched
    \a object.
*/
bool UiGeneratorArea::eventFilter(QObject *object, QEvent *event)
{
    QMdiSubWindow* win = qobject_cast<QMdiSubWindow*>(object);

    if (win != NULL) {

        switch(event->type()) {
        case QEvent::Move:
        case QEvent::Resize:

            // the widget hasn't been shown yet which means that it isn't
            // the user that is changing the size -> don't modify tile state.
            if (!mHasBeenShown) break;

            // the complete UiGeneratorArea is changing its size -> don't
            // modify tile state
            if (mTileCalledFromResizeEvent) break;

            mIsSubWindowsTiled = false;
            break;
        case QEvent::Close:
            mIsSubWindowsTiled = false;
            removeSubWindow(win);

            if (win == mDigitalWin) {
                emit generatorClosed(DigitalGenerator);
            }
            else if (win == mAnalogWin) {
                emit generatorClosed(AnalogGenerator);
            }

            break;
        default:
            break;
        }

    }

    return QMdiArea::eventFilter(object, event);
}
/*!
    Enable/disable the \a generator according to \a enabled.
*/
void UiGeneratorArea::setGeneratorEnabled(GeneratorType generator, bool enabled)
{
    GeneratorDevice* device = DeviceManager::instance().activeDevice()
            ->generatorDevice();
    if (device == NULL) return;

    QMdiSubWindow* win;
    if (generator == AnalogGenerator) {
        win = mAnalogWin;
        device->enableAnalogGenerator(enabled);
    }
    else {
        win = mDigitalWin;
        device->enableDigitalGenerator(enabled);
    }

    bool added = (subWindowList().indexOf(win) != -1);

    if (enabled && !added) {
        addSubWindow(win);

        // for some reason the subwindow (win) can have a very small size
        // in some circumstances. Make sure it at least gets the same
        // size as its widget
        if (win->size().width() < win->widget()->size().width() ||
                win->size().height() < win->widget()->size().height()) {
            win->resize(win->widget()->size());
        }
        win->show();
        win->widget()->show();

    }
    else if (!enabled && added) {
        removeSubWindow(win);
    }
}
示例#6
0
void CUIWindowResizer::removeSubWindow(int controlID)
{
	removeSubWindow(GetDlgItem(hWindow, controlID));
}