Esempio n. 1
0
void tst_QDockWidget::dockLocationChanged()
{
    qRegisterMetaType<Qt::DockWidgetArea>("Qt::DockWidgetArea");

    QMainWindow mw;
    QDockWidget dw;
    dw.setObjectName("dock1");
    QSignalSpy spy(&dw, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)));

    mw.addDockWidget(Qt::LeftDockWidgetArea, &dw);
    QCOMPARE(spy.count(), 1);
    QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
                Qt::LeftDockWidgetArea);
    spy.clear();

    mw.addDockWidget(Qt::LeftDockWidgetArea, &dw);
    QCOMPARE(spy.count(), 1);
    QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
                Qt::LeftDockWidgetArea);
    spy.clear();

    mw.addDockWidget(Qt::RightDockWidgetArea, &dw);
    QCOMPARE(spy.count(), 1);
    QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
                Qt::RightDockWidgetArea);
    spy.clear();

    mw.removeDockWidget(&dw);
    QCOMPARE(spy.count(), 0);

    QDockWidget dw2;
    dw2.setObjectName("dock2");
    mw.addDockWidget(Qt::TopDockWidgetArea, &dw2);
    mw.tabifyDockWidget(&dw2, &dw);
    QCOMPARE(spy.count(), 1);
    QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
                Qt::TopDockWidgetArea);
    spy.clear();

    mw.splitDockWidget(&dw2, &dw, Qt::Horizontal);
    QCOMPARE(spy.count(), 1);
    QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
                Qt::TopDockWidgetArea);
    spy.clear();

    dw.setFloating(true);
    QTest::qWait(100);
    dw.setFloating(false);
    QTest::qWait(100);
    QCOMPARE(spy.count(), 1);
    QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
             Qt::TopDockWidgetArea);
    spy.clear();

    QByteArray ba = mw.saveState();
    mw.restoreState(ba);
    QCOMPARE(spy.count(), 1);
    QCOMPARE(qvariant_cast<Qt::DockWidgetArea>(spy.at(0).at(0)),
             Qt::TopDockWidgetArea);
}
void ExecutingPietLibraries::MakeGLView (std::vector<PietTree> & pt){
    if(pt.size() == 0 )return;
    if(pt[0].isLeaf()) return;
    pt = pt[0].Nodes();

    if(pt.size() < 3) return;
    int w = pt[0].Val();
    int h = pt[1].Val();
    QString title = pt[2].toString();
    for(int i:range(3)) pt.pop_back();
    GLGameWidget* glgw = GLGameWidget::MakeUniqueGLWidget(nullptr);
    if(glgw == nullptr) return ;
    glgw->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
    glgw->setSize(w,h);

    QDockWidget* dw = new QDockWidget(nullptr);
    dw->setFloating(true);
    dw->setAllowedAreas(Qt::NoDockWidgetArea);
    dw->connect(dw,&QDockWidget::dockLocationChanged,[=](){ dw->setFloating(true);});
    dw->setSizePolicy(QSizePolicy::Fixed,QSizePolicy::Fixed);
    dw->setWidget(glgw);
    dw->setAttribute(Qt::WA_DeleteOnClose);
    dw->setWindowTitle(title);
    dw->show();
}
Esempio n. 3
0
void tst_QDockWidget::task169808_setFloating()
{
    //we try to test if the sizeHint of the dock widget widget is taken into account

    class MyWidget : public QWidget
    {
    public:
        QSize sizeHint() const
        {
            const QRect& deskRect = qApp->desktop()->availableGeometry();
            return QSize(qMin(300, deskRect.width() / 2), qMin(300, deskRect.height() / 2));
        }

        QSize minimumSizeHint() const
        {
            return QSize(20,20);
        }

        void paintEvent(QPaintEvent *)
        {
            QPainter p(this);
            p.fillRect(rect(), Qt::red);
        }
    };
    QMainWindow mw;
    mw.setCentralWidget(new MyWidget);
    QDockWidget *dw = new QDockWidget("my dock");
    dw->setWidget(new MyWidget);
    mw.addDockWidget(Qt::LeftDockWidgetArea, dw);
    dw->setFloating(true);
    mw.show();
    QVERIFY(QTest::qWaitForWindowExposed(&mw));

    QCOMPARE(dw->widget()->size(), dw->widget()->sizeHint());

    //and now we try to test if the contents margin is taken into account
    dw->widget()->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
    dw->setFloating(false);
    QVERIFY(QTest::qWaitForWindowExposed(&mw));
    qApp->processEvents(); //leave time processing events


    const QSize oldSize = dw->size();
    const int margin = 20;

    dw->setContentsMargins(margin, margin, margin, margin);

    QVERIFY(QTest::qWaitForWindowExposed(&mw));
    qApp->processEvents(); //leave time processing events

    //widget size shouldn't have changed
    QCOMPARE(dw->widget()->size(), dw->widget()->sizeHint());
    //dockwidget should be bigger
    QCOMPARE(dw->size(), oldSize + QSize(margin * 2, margin * 2));


}
Esempio n. 4
0
Window::Window () : QMainWindow (NULL) {
    try {
        viewer = new GLViewer;
    } catch (GLViewer::Exception e) {
        cerr << e.getMessage () << endl;
        exit (1);
    }
    setCentralWidget (viewer);

#if DEBUG
    cout << "/ ! \\ Building in Debug mode. Performance will be impacted" << endl;
#else
    viewer->setBaseSize(500, 500);
#endif
    
    initControlWidget ();
    
    QDockWidget * controlDockWidget = new QDockWidget (this);
    
    controlDockWidget->setWidget (controlWidget);
    controlDockWidget->adjustSize ();
    addDockWidget (Qt::RightDockWidgetArea, controlDockWidget);
    controlDockWidget->setFloating(true);
    controlDockWidget->setFeatures (QDockWidget::AllDockWidgetFeatures);
    controlDockWidget->adjustSize();
    controlDockWidget->move(0, 0);
    
    QDockWidget * focalDockWidget = new QDockWidget (this);
    focalDockWidget->setWidget(focalWidget);
    focalDockWidget->adjustSize ();
    addDockWidget (Qt::LeftDockWidgetArea, focalDockWidget);
    focalDockWidget->setFloating(true);
    focalDockWidget->setFeatures (QDockWidget::AllDockWidgetFeatures);
    focalDockWidget->adjustSize();
    focalDockWidget->move(200, 0);

    QDockWidget* rayTracerDockWidget = new QDockWidget(this);
    rayTracerDockWidget->setWidget(rayTracerWidget);
    rayTracerDockWidget->adjustSize ();
    addDockWidget (Qt::TopDockWidgetArea, rayTracerDockWidget);
    rayTracerDockWidget->setFloating(true);
    rayTracerDockWidget->setFeatures (QDockWidget::AllDockWidgetFeatures);
    rayTracerDockWidget->adjustSize();

    // Move widgets around the raytracer
    
    QDesktopWidget desktop;
    QRect mainScreenSize = desktop.availableGeometry(desktop.primaryScreen());
    
    controlDockWidget->move(mainScreenSize.width() - 200, 0);
    rayTracerDockWidget->move(0, 0);
    focalDockWidget->move(0, mainScreenSize.height() - focalDockWidget->height());
    
    statusBar()->showMessage("");
}
/**
 *  Constructs a DlgDisplayPropertiesImp which is a child of 'parent', with the 
 *  name 'name' and widget flags set to 'f' 
 *
 *  The dialog will by default be modeless, unless you set 'modal' to
 *  true to construct a modal dialog.
 */
DlgDisplayPropertiesImp::DlgDisplayPropertiesImp( QWidget* parent, Qt::WindowFlags fl )
  : QDialog( parent, fl )
{
    this->setupUi(this);
    textLabel1_3->hide();
    changePlot->hide();
    buttonLineColor->setModal(false);
    buttonColor->setModal(false);

    std::vector<Gui::ViewProvider*> views = getSelection();
    setDisplayModes(views);
    fillupMaterials();
    setMaterial(views);
    setColorPlot(views);
    setShapeColor(views);
    setLineColor(views);
    setPointSize(views);
    setLineWidth(views);
    setTransparency(views);
    setLineTransparency(views);

    // embed this dialog into a dockable widget container
    Gui::DockWindowManager* pDockMgr = Gui::DockWindowManager::instance();
    QDockWidget* dw = pDockMgr->addDockWindow("Display properties", this, Qt::AllDockWidgetAreas);
    dw->setFeatures(QDockWidget::DockWidgetMovable|QDockWidget::DockWidgetFloatable);
    dw->setFloating(true);
    dw->show();

    Gui::Selection().Attach(this);

    this->connectChangedObject =
    Gui::Application::Instance->signalChangedObject.connect(boost::bind
        (&DlgDisplayPropertiesImp::slotChangedObject, this, _1, _2));
}
Esempio n. 6
0
void tst_QDockWidget::task237438_setFloatingCrash()
{
    //should not crash
    QDockWidget pqdwDock;
    pqdwDock.setFloating(false);
    pqdwDock.show();
}
Esempio n. 7
0
MainWindow::MainWindow()
{
	AddressInput* addressInput = new AddressInput( this );
	this->addToolBar( addressInput );

	QDockWidget* motor0Dock = new QDockWidget( "Motor 0", this );
	motor0Dock->setWidget( new MotorWidget( this, 0 ) );
	motor0Dock->setFeatures( QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable );
	addDockWidget(Qt::BottomDockWidgetArea, motor0Dock );
	motor0Dock->setFloating( false );
	motor0Dock->setVisible( true );

	QDockWidget* motor1Dock = new QDockWidget( "Motor 1", this );
	motor1Dock->setWidget( new MotorWidget( this, 1 ) );
	motor1Dock->setFeatures( QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable );
	addDockWidget(Qt::BottomDockWidgetArea, motor1Dock );
	motor1Dock->setFloating( false );
	motor1Dock->setVisible( true );

	QDockWidget* motor2Dock = new QDockWidget( "Motor 2", this );
	motor2Dock->setWidget( new MotorWidget( this, 2 ) );
	motor2Dock->setFeatures( QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable );
	addDockWidget(Qt::BottomDockWidgetArea, motor2Dock );
	motor2Dock->setFloating( false );
	motor2Dock->setVisible( true );

	QDockWidget* odometryDock = new QDockWidget( "Odometry", this );
	odometryDock->setWidget( new OdometryWidget( this ) );
	odometryDock->setFeatures( QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetFloatable );
	addDockWidget(Qt::BottomDockWidgetArea, odometryDock );
	odometryDock->setFloating( false );
	odometryDock->setVisible( true );

	setCentralWidget( new ControlPanelWidget( this ) );
}
Esempio n. 8
0
void MainWindow::on_configAction_triggered()
{
	QDockWidget * configCameraDock = new QDockWidget( "Camera Configuration", this );
	{
            _configCamera = new ConfigCamera( configCameraDock );
            configCameraDock->setWidget( ( _configCamera ) );
            addDockWidget( Qt::TopDockWidgetArea, configCameraDock );
	}
	configCameraDock->setFloating( true );
}
Esempio n. 9
0
QDockWidget* MainWindow::createDockWidget(KoDockFactoryBase* factory)
{
    QDockWidget* dockWidget = 0;

    if(!m_dockWidgetMap.contains(factory->id())) {
        dockWidget = factory->createDockWidget();

        // It is quite possible that a dock factory cannot create the dock; don't
        // do anything in that case.
        if(!dockWidget) return 0;
        m_dockWidgets.push_back(dockWidget);

        dockWidget->setObjectName(factory->id());
        dockWidget->setParent(this);

        if(dockWidget->widget() && dockWidget->widget()->layout())
            dockWidget->widget()->layout()->setContentsMargins(1, 1, 1, 1);

        Qt::DockWidgetArea side = Qt::RightDockWidgetArea;
        bool visible = true;

        switch(factory->defaultDockPosition()) {
        case KoDockFactoryBase::DockTornOff:
            dockWidget->setFloating(true); // position nicely?
            break;
        case KoDockFactoryBase::DockTop:
            side = Qt::TopDockWidgetArea; break;
        case KoDockFactoryBase::DockLeft:
            side = Qt::LeftDockWidgetArea; break;
        case KoDockFactoryBase::DockBottom:
            side = Qt::BottomDockWidgetArea; break;
        case KoDockFactoryBase::DockRight:
            side = Qt::RightDockWidgetArea; break;
        case KoDockFactoryBase::DockMinimized:
            visible = false; break;
        default:;
        }

        addDockWidget(side, dockWidget);
        if(dockWidget->features() & QDockWidget::DockWidgetClosable) {
            m_dockWidgetMenu->addAction(dockWidget->toggleViewAction());
            if(!visible)
                dockWidget->hide();
        }

        m_dockWidgetMap.insert(factory->id(), dockWidget);
    } else {
        dockWidget = m_dockWidgetMap[ factory->id()];
    }

    connect(dockWidget, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(forceDockTabFonts()));

    return dockWidget;
}
Esempio n. 10
0
void tst_QDockWidget::setFloating()
{
    const QRect deskRect = QApplication::desktop()->availableGeometry();
    QMainWindow mw;
    mw.move(deskRect.left() + deskRect.width() * 2 / 3, deskRect.top() + deskRect.height() / 3);
    QDockWidget dw;
    mw.addDockWidget(Qt::LeftDockWidgetArea, &dw);

    mw.show();
    QVERIFY(QTest::qWaitForWindowExposed(&mw));

    QVERIFY(!dw.isFloating());
    const QPoint dockedPosition = dw.mapToGlobal(dw.pos());

    QSignalSpy spy(&dw, SIGNAL(topLevelChanged(bool)));

    dw.setFloating(true);
    const QPoint floatingPosition = dw.pos();

    // QTBUG-31044, show approximately at old position, give or take window frame.
    QVERIFY((dockedPosition - floatingPosition).manhattanLength() < 50);

    QVERIFY(dw.isFloating());
    QCOMPARE(spy.count(), 1);
    QCOMPARE(spy.at(0).value(0).toBool(), dw.isFloating());
    spy.clear();
    dw.setFloating(dw.isFloating());
    QCOMPARE(spy.count(), 0);
    spy.clear();

    dw.setFloating(false);
    QVERIFY(!dw.isFloating());
    QCOMPARE(spy.count(), 1);
    QCOMPARE(spy.at(0).value(0).toBool(), dw.isFloating());
    spy.clear();
    dw.setFloating(dw.isFloating());
    QCOMPARE(spy.count(), 0);
    spy.clear();
}
Esempio n. 11
0
void tst_QDockWidget::restoreStateOfFloating()
{
    QMainWindow mw;
    QDockWidget dock;
    dock.setObjectName("dock1");
    mw.addDockWidget(Qt::TopDockWidgetArea, &dock);
    QVERIFY(!dock.isFloating());
    QByteArray ba = mw.saveState();
    dock.setFloating(true);
    QVERIFY(dock.isFloating());
    QVERIFY(mw.restoreState(ba));
    QVERIFY(!dock.isFloating());
}
void tst_QWindowContainer::testDockWidget()
{
    QMainWindow mainWindow;
    mainWindow.resize(200, 200);

    QDockWidget *dock = new QDockWidget();
    QWindow *window = new QWindow();
    QWidget *container = QWidget::createWindowContainer(window);
    dock->setWidget(container);
    mainWindow.addDockWidget(Qt::RightDockWidgetArea, dock);

    mainWindow.show();
    QVERIFY(QTest::qWaitForWindowExposed(&mainWindow));
    QVERIFY(window->parent() == mainWindow.window()->windowHandle());

    QTest::qWait(1000);
    dock->setFloating(true);
    QTRY_VERIFY(window->parent() != mainWindow.window()->windowHandle());

    QTest::qWait(1000);
    dock->setFloating(false);
    QTRY_VERIFY(window->parent() == mainWindow.window()->windowHandle());
}
Esempio n. 13
0
void tst_QDockWidget::task165177_deleteFocusWidget()
{
    QMainWindow mw;
    QDockWidget *dw = new QDockWidget(&mw);
    mw.addDockWidget(Qt::LeftDockWidgetArea, dw);
    QLineEdit *ledit = new QLineEdit;
    dw->setWidget(ledit);
    mw.show();
    QVERIFY(QTest::qWaitForWindowExposed(&mw));
    qApp->processEvents();
    dw->setFloating(true);
    delete ledit;
    QCOMPARE(mw.focusWidget(), (QWidget *)0);
    QCOMPARE(dw->focusWidget(), (QWidget *)0);
}
Esempio n. 14
0
void MainWindow::newChart()
{
    QDockWidget * chartDockWidget = new QDockWidget("Chart", this);

    EpidemicChartWidget * epidemicChartWidget = new EpidemicChartWidget(this);

    chartDockWidget->setWidget(epidemicChartWidget);

    addDockWidget(Qt::BottomDockWidgetArea, chartDockWidget);

    chartDockWidget->setFloating(true);

    if(dataSet_ != NULL)
    {
        epidemicChartWidget->setDataSet(dataSet_);
        epidemicChartWidget->setTime(time_);
    }
}
Esempio n. 15
0
void TitleWidget::ViewButtonClicked(void)
{
	QDockWidget* Dock = qobject_cast<QDockWidget*>(parent());

	if (Dock->isFloating())
	{
		if (Dock->geometry() == QApplication::desktop()->availableGeometry(Dock))
		{
			Dock->setGeometry(Dock->property("last-geometry").toRect());
		}
		else
		{
			Dock->setProperty("last-geometry", Dock->geometry());
			Dock->setGeometry(QApplication::desktop()->availableGeometry(Dock));
		}
	}
	else Dock->setFloating(true);
}
Esempio n. 16
0
void MainWindow::createWidgets()
{
	{
		// Dock Chutier
                _chutierDock = new QDockWidget( "Media List", this );
		{
                        _chutier = new Chutier( _chutierDock );
                        _chutierDock->setWidget( _chutier );
                        addDockWidget( Qt::TopDockWidgetArea, _chutierDock );
                        _viewMenu->addAction( _chutierDock->toggleViewAction() );
                        _viewMenu->addAction( _chutier->_viewerChutierDock->toggleViewAction() );
		}

	}

	{
                // Dock Viewer
                createWidgetViewer();
                saveWidgets();

                // Dock UndoWidget
                QDockWidget * undoDock = new QDockWidget( "Command List", this );
                {
                        _undoView = new UndoView( Projet::getInstance().getCommandManager(), undoDock );
                        _undoWidget = new UndoWidget( _undoView );
                        undoDock->setWidget( _undoWidget );
                        addDockWidget( Qt::TopDockWidgetArea, undoDock );
                        _viewMenu->addAction( undoDock->toggleViewAction() );
                }

                tabifyDockWidget( _chutierDock, undoDock );
                undoDock->setHidden( true );
                undoDock->setFloating( true );

                // Dock Timeline QML
                _graphicTimelineDock = new QDockWidget( "Graphic Timeline", this );
                _timelineGraphic = new TimelineGraphic( this );
                _graphicTimelineDock->setWidget( _timelineGraphic );
                addDockWidget( Qt::BottomDockWidgetArea, _graphicTimelineDock );

                _viewMenu->addAction( _graphicTimelineDock->toggleViewAction() );
	}
}
Esempio n. 17
0
WindowImpl::WindowImpl():
    m_ui(new Ui::WindowImpl)
{
    m_ui->setupUi(this);
    QApplication::setStyle(new QNotoStyle);

    QSettings sets(QSettings::IniFormat, QSettings::UserScope, "qnoto", "qnoto");
    restoreGeometry(sets.value("MainWindow/Geometry").toByteArray());

    QDockWidget *dockWidget = new QDockWidget("Left side", this);
    dockWidget->setContentsMargins(0, 0, 0, 0);
    dockWidget->setAllowedAreas(Qt::LeftDockWidgetArea);
    dockWidget->setFloating(false);
    dockWidget->setFeatures(dockWidget->features() ^ QDockWidget::DockWidgetClosable ^ QDockWidget::DockWidgetMovable ^ QDockWidget::DockWidgetFloatable);
    dockWidget->setTitleBarWidget(new QWidget);
    m_split = new SideSplit(this);
    dockWidget->setWidget(m_split);
    addDockWidget(Qt::LeftDockWidgetArea, dockWidget);

    m_editors = qnoto::plugin<qnoto::Editors>();
    connect(m_editors, &qnoto::Editors::updateEditMenu, this, &WindowImpl::updateEditMenu);

    setCentralWidget(m_editors);

    const auto& acts = m_editors->actions();
    for(const auto& it: acts){
        if (it->property("name").toString().startsWith("File_")){
            m_ui->menuFile->addAction(it);
        }
        if (it->property("name").toString().startsWith("Window_")){
            m_ui->menuWindow->addAction(it);
        }
    }

    connect(m_ui->actionPreferences, &QAction::triggered, this, &WindowImpl::showPreferences);

    m_split->restoreState(sets);
    m_editors->restoreState();
}
Esempio n. 18
0
void KoDockWidgetTitleBar::Private::toggleFloating()
{
    QDockWidget *q = qobject_cast<QDockWidget*>(thePublic->parentWidget());

    q->setFloating(!q->isFloating());
}
Esempio n. 19
0
ViewerWindow::ViewerWindow():
	fileLoaded_(false){

	setupUi( this );

	#ifdef WIN32
		//Reposition console window
		QRect myRegion=frameGeometry();
		QPoint putAt=myRegion.topRight();
		SetWindowPos(GetConsoleWindow(),winId(),putAt.x()+1,putAt.y(),0,0,SWP_NOSIZE);
	#endif

	mProdconn.ConnectConsumer( mViewer->InputPort()[0] );

	mViewer->SetColorTransformType( M4D::GUI::ctTransferFunction1D );
	action2D->setChecked(true);
	
	//---TF Editor---

	std::vector<M4D::GUI::TF::Size> dataCT1D(1, 4096);	//default CT
	editingSystem_ = M4D::GUI::TFPalette::Ptr(new M4D::GUI::TFPalette(this, dataCT1D));
	editingSystem_->setupDefault();

	bool previewUpdateConnected = QObject::connect(&(*editingSystem_), SIGNAL(UpdatePreview(M4D::GUI::TF::Size)),
		this, SLOT(updatePreview(M4D::GUI::TF::Size)));
	tfAssert(previewUpdateConnected);

	QDockWidget* dockWidget = new QDockWidget("Transfer Function Palette", this);
	
	dockWidget->setWidget( &(*editingSystem_) );
	dockWidget->setFeatures(QDockWidget::AllDockWidgetFeatures);
	dockWidget->setAllowedAreas(Qt::AllDockWidgetAreas);
	
	addDockWidget(Qt::LeftDockWidgetArea, dockWidget);
	dockWidget->setFloating(true);

	//---Timer---

	changeChecker_.setInterval( 500 );
	QObject::connect( &changeChecker_, SIGNAL( timeout() ), this, SLOT( updateTransferFunction() ) );

	//---Viewer Switch---

	QActionGroup *viewerTypeSwitch = new QActionGroup( this );
	QSignalMapper *viewerTypeSwitchSignalMapper = new QSignalMapper( this );
	
	viewerTypeSwitch->setExclusive( true );	
	viewerTypeSwitch->addAction( action2D );
	viewerTypeSwitch->addAction( action3D );
	
	viewerTypeSwitchSignalMapper->setMapping( action2D, M4D::GUI::rt2DAlignedSlices );
	viewerTypeSwitchSignalMapper->setMapping( action3D, M4D::GUI::rt3D );
	
	QObject::connect( action2D, SIGNAL( triggered() ), viewerTypeSwitchSignalMapper, SLOT( map() ) );
	QObject::connect( action3D, SIGNAL( triggered() ), viewerTypeSwitchSignalMapper, SLOT( map() ) );
	QObject::connect( viewerTypeSwitchSignalMapper, SIGNAL( mapped ( int ) ), this, SLOT( changeViewerType( int ) ) );

	//---Mouse info---

	QLabel *infoLabel = new QLabel();
	statusbar->addWidget( infoLabel );

	mViewer->setMouseTracking ( true );
	QObject::connect( mViewer, SIGNAL( MouseInfoUpdate( const QString & ) ), infoLabel, SLOT( setText( const QString & ) ) );
		
	//---Default buffer---

	buffer_ = Buffer1D::Ptr(new Buffer1D(4096, Interval(0.0f, 4095.0f)));	
		
	#ifdef TF_NDEBUG
		showMaximized();
	#endif
	#ifndef TF_NDEBUG
		show();
	#endif
	//show must be called before setting transfer function buffer
	mViewer->SetTransferFunctionBuffer(buffer_);
}
Esempio n. 20
0
bool MainWindowImpl::loadFile( QFileInfo const & fi )
{
    if( ! fi.isFile() ) return false;
	// FIXME: this dispatch needs to be generalized.
	QString fn( fi.filePath() ); // fi.absoluteFilePath() );
	bool worked = false;
	if( impl->gstate.board().fileNameMatches(fn) )
	{
		worked = impl->gstate.board().s11nLoad(fn);
	}
	else if( impl->gstate.fileNameMatches(fn) )
	{
		worked = this->loadGame(fn);
	}
	else if( fn.endsWith(".wiki") )
	{
	    worked = true;
	    QString lbl = QString("Wiki: %1").arg(fi.fileName());
	    QDockWidget * win = new QDockWidget( lbl, this );
	    qboard::WikiLiteView * v = new qboard::WikiLiteView;
	    win->setAttribute(Qt::WA_DeleteOnClose);
	    win->setWidget( v );
	    win->move( impl->gv->viewport()->mapToGlobal(QPoint(0,0)) );
	    win->resize( impl->gv->viewport()->size() );
	    win->setFloating(true);
	    this->addDockWidget(Qt::RightDockWidgetArea, win );
	    v->parseFile(fn);
	    win->setWindowTitle( v->windowTitle() );
	}
	else if( QRegExp("\\.[jq]s$",Qt::CaseInsensitive).indexIn(fn) > 0 )
	{
	    QScriptEngine & js( impl->gstate.jsEngine() );
	    qDebug() << "[ running script"<<fn<<"]";
	    QScriptValue rv = qboard::jsInclude( &js, fn );
	    if( rv.isError() )
	    {
		QStringList bt( js.uncaughtExceptionBacktrace() );
		QScriptValue exv = rv.isError() ? rv : js.uncaughtException();
		QString msg("Script threw or returned an exception:\n");
		msg += exv.toString()
		    + "\nBacktrace:\n"
		    + bt.join("\n");
		QMessageBox::warning( this, "JavaScript Exception",
				      msg,
				      QMessageBox::Ok, QMessageBox::Ok );
		worked = false;
	    }
	    else
	    {
		worked = true;
	    }
	    qDebug() << "[ done running script"<<fn<<"]";
	}
	else if( QRegExp("\\.(html|txt)$",Qt::CaseInsensitive).indexIn(fn) > 0 )
	{
#if QT_VERSION >= 0x040400
		QBoardDocsBrowser * b = new QBoardDocsBrowser;
		b->setHome(fn);
		b->setWindowTitle(fn);
		b->show();
		worked = true;
#else
		QMessageBox::warning( this, "Not implemented!",
				      "MainWindowImpl::loadFile(*.{txt,html}) not implemented for Qt < 4.4",
				      QMessageBox::Ok, QMessageBox::Ok );
		worked = false;
#endif
	}
	else if( QRegExp("\\.(png|jpg|gif|xpm|svg|bmp)$",Qt::CaseInsensitive).indexIn(fn) > 0 )
	{ // ^^^ FIXME: get the list of image formats from somewhere dynamic
		const size_t threshold = 10 * 1024;
		// ^^^ fixme: ^^^^ do this based on image resolution, not file size, cuz many
		// large-sized PNGs are quite small.
		if( fi.size() < threshold )
		{
			worked = this->loadPiece(fi);
		}
		else
		{
			worked = this->impl->gstate.board().s11nLoad(fn); // fi.absoluteFilePath());
		}
	}
	if( worked )
	{
		this->statusBar()->showMessage("Loaded: "+fn); // fi.absoluteFilePath());
	}
	else
	{
		this->statusBar()->showMessage("Load FAILED: "+fn); // fi.absoluteFilePath());
	}
	return worked;
}
Esempio n. 21
0
QDockWidget* MainWindow::createDockWidget(KoDockFactoryBase* factory)
{
    QDockWidget* dockWidget = 0;

    if(!m_dockWidgetMap.contains(factory->id())) {
        dockWidget = factory->createDockWidget();

        // It is quite possible that a dock factory cannot create the dock; don't
        // do anything in that case.
        if(!dockWidget) return 0;
        m_dockWidgets.push_back(dockWidget);

        dockWidget->setObjectName(factory->id());
        dockWidget->setParent(this);

        if(dockWidget->widget() && dockWidget->widget()->layout())
            dockWidget->widget()->layout()->setContentsMargins(1, 1, 1, 1);

        Qt::DockWidgetArea side = Qt::RightDockWidgetArea;
        bool visible = true;

        switch(factory->defaultDockPosition()) {
        case KoDockFactoryBase::DockTornOff:
            dockWidget->setFloating(true); // position nicely?
            break;
        case KoDockFactoryBase::DockTop:
            side = Qt::TopDockWidgetArea; break;
        case KoDockFactoryBase::DockLeft:
            side = Qt::LeftDockWidgetArea; break;
        case KoDockFactoryBase::DockBottom:
            side = Qt::BottomDockWidgetArea; break;
        case KoDockFactoryBase::DockRight:
            side = Qt::RightDockWidgetArea; break;
        case KoDockFactoryBase::DockMinimized:
            visible = false; break;
        default:;
        }

        addDockWidget(side, dockWidget);
        if(dockWidget->features() & QDockWidget::DockWidgetClosable) {
            m_dockWidgetMenu->addAction(dockWidget->toggleViewAction());
            if(!visible)
                dockWidget->hide();
        }

        m_dockWidgetMap.insert(factory->id(), dockWidget);
    } else {
        dockWidget = m_dockWidgetMap[ factory->id()];
    }

    KConfigGroup group(KSharedConfig::openConfig(), "GUI");
    QFont dockWidgetFont  = QFontDatabase::systemFont(QFontDatabase::GeneralFont);
    qreal pointSize = group.readEntry("palettefontsize", dockWidgetFont.pointSize() * 0.75);
    pointSize = qMax(pointSize, QFontDatabase::systemFont(QFontDatabase::SmallestReadableFont).pointSizeF());
    dockWidgetFont.setPointSizeF(pointSize);
#ifdef Q_WS_MAC
    dockWidget->setAttribute(Qt::WA_MacSmallSize, true);
#endif
    dockWidget->setFont(dockWidgetFont);

    connect(dockWidget, SIGNAL(dockLocationChanged(Qt::DockWidgetArea)), this, SLOT(forceDockTabFonts()));

    return dockWidget;
}
Esempio n. 22
0
void MainWindow::createDockWidget() {
    signalMapper = new QSignalMapper(this);

    // Header Widget
    QWidget* headerWidget = new QWidget;
    headerWidget->setFixedHeight(109);

    QDockWidget* headerDockWidget = new QDockWidget(this);
    headerDockWidget->setObjectName("headerDockWidget");
    headerDockWidget->setFloating(false);
    headerDockWidget->setTitleBarWidget(new QWidget);
    headerDockWidget->setWidget(headerWidget);

    this->addDockWidget(Qt::TopDockWidgetArea,headerDockWidget);

    // Right Panel Widget
    rightPanelWidget = new QWidget;
    rightPanelWidget->setObjectName("rightPanelWidget");
    rightPanelWidget->setFixedWidth(213);
    rightPanelWidget->setFixedHeight(481);
    QDockWidget* rightDockWidget = new QDockWidget(this);
    rightDockWidget->setObjectName("rightDockWidget");
    rightDockWidget->setFloating(false);
    rightDockWidget->setTitleBarWidget(new QWidget);
    rightDockWidget->setWidget(rightPanelWidget);

    this->addDockWidget(Qt::RightDockWidgetArea,rightDockWidget);

    // Set geometry for each button at fixed place.
    int y_aix = 8;
    int x_aix = 15;
    int button_height = 58;
    int button_width = 183;
    int spacing = 1 ;

    QPushButton* homeButton = new QPushButton(rightPanelWidget);
    homeButton->setObjectName("0_toolButton");
    homeButton->setGeometry(x_aix,y_aix,button_width,button_height);
    homeButton->setStyleSheet("QPushButton {background-image: url(:/images/home.png);background-color: transparent;} QPushButton:hover {background-image: url(:/images/home-hover.png);background-color: transparent;} QPushButton:pressed,QPushButton:checked {background-image: url(:/images/home-checked.png);background-color: transparent;}");
    homeButton->setCheckable(true);
    homeButton->setChecked(true);
    homeButton->setToolTip("الرئيسية");
    homeButton->setStatusTip("البداية لحاجب ويمكنك من خلالها التحكم في عمل خدمات حاحب على كل المستخدمين بالاضافة الى خيارات اخرى ...");
    connect(homeButton,SIGNAL(clicked()),signalMapper,SLOT(map()));
    signalMapper->setMapping(homeButton,Home);

    y_aix += button_height + spacing;
    QPushButton* userSettingsButton = new QPushButton(rightPanelWidget);
    userSettingsButton->setObjectName("1_toolButton");
    userSettingsButton->setGeometry(x_aix,y_aix,button_width,button_height);
    userSettingsButton->setStyleSheet("QPushButton {background-image: url(:/images/userSettings.png);background-color: transparent;} QPushButton:hover {background-image: url(:/images/userSettings-hover.png);background-color: transparent;} QPushButton:pressed,QPushButton:checked {background-image: url(:/images/userSettings-checked.png);background-color: transparent;}");
    userSettingsButton->setCheckable(true);
    userSettingsButton->setToolTip("إعدادات المستخدم");
    userSettingsButton->setStatusTip("إعدادات المستخدم تمكنك من تفعيل او تعطيل خدمات حاجب لمستخدم ما ...");
    connect(userSettingsButton,SIGNAL(clicked()),signalMapper,SLOT(map()));
    signalMapper->setMapping(userSettingsButton,UserSettings);

    y_aix += button_height + spacing;
    QPushButton* serviceLogButton = new QPushButton(rightPanelWidget);
    serviceLogButton->setObjectName("2_toolButton");
    serviceLogButton->setGeometry(x_aix,y_aix,button_width,button_height);
    serviceLogButton->setStyleSheet("QPushButton {background-image: url(:/images/userLogs.png);background-color: transparent;} QPushButton:hover {background-image: url(:/images/userLogs-hover.png);background-color: transparent;} QPushButton:pressed,QPushButton:checked {background-image: url(:/images/userLogs-checked.png);background-color: transparent;}");
    serviceLogButton->setCheckable(true);
    serviceLogButton->setToolTip("سجلات المستخدمين");
    serviceLogButton->setStatusTip("من خلال السجلات يمكنك متابعة كافة الأحداث لكل المستخدمين ...");
    connect(serviceLogButton,SIGNAL(clicked()),signalMapper,SLOT(map()));
    signalMapper->setMapping(serviceLogButton,ServiceLog);

    y_aix += button_height + spacing;
    QPushButton* screenshotMonitorButton = new QPushButton(rightPanelWidget);
    screenshotMonitorButton->setObjectName("3_toolButton");
    screenshotMonitorButton->setGeometry(x_aix,y_aix,button_width,button_height);
    screenshotMonitorButton->setStyleSheet("QPushButton {background-image: url(:/images/screenshotsMonitor.png);background-color: transparent;} QPushButton:hover {background-image: url(:/images/screenshotsMonitor-hover.png);background-color: transparent;} QPushButton:pressed,QPushButton:checked {background-image: url(:/images/screenshotsMonitor-checked.png);background-color: transparent;}");
    screenshotMonitorButton->setCheckable(true);
    screenshotMonitorButton->setToolTip("مراقبة الشاشة");
    screenshotMonitorButton->setStatusTip("مشاهدة لقطات الشاشة لكل المستخدمين والتحكم بوقت أخذ اللقطات ...");
    connect(screenshotMonitorButton,SIGNAL(clicked()),signalMapper,SLOT(map()));
    signalMapper->setMapping(screenshotMonitorButton,ScreenshotMonitor);

    y_aix += button_height + spacing;
    QPushButton* surfeTimeButton = new QPushButton(rightPanelWidget);
    surfeTimeButton->setObjectName("4_toolButton");
    surfeTimeButton->setGeometry(x_aix,y_aix,button_width,button_height);
    surfeTimeButton->setStyleSheet("QPushButton {background-image: url(:/images/browseTime.png);background-color: transparent;} QPushButton:hover {background-image: url(:/images/browseTime-hover.png);background-color: transparent;} QPushButton:pressed,QPushButton:checked {background-image: url(:/images/browseTime-checked.png);background-color: transparent;}");
    surfeTimeButton->setCheckable(true);
    surfeTimeButton->setToolTip("زمن التصفح");
    surfeTimeButton->setStatusTip("تحديد وقت تصفح الاتنرنت لكل مستخدم لكافة أيام الأسبوع ...");
    connect(surfeTimeButton,SIGNAL(clicked()),signalMapper,SLOT(map()));
    signalMapper->setMapping(surfeTimeButton,SurfTime);

    y_aix += button_height + spacing;
    QPushButton* websiteLockButton = new QPushButton(rightPanelWidget);
    websiteLockButton->setObjectName("5_toolButton");
    websiteLockButton->setGeometry(x_aix,y_aix,button_width,button_height);
    websiteLockButton->setStyleSheet("QPushButton {background-image: url(:/images/websiteLock.png);background-color: transparent;} QPushButton:hover {background-image: url(:/images/websiteLock-hover.png);background-color: transparent;} QPushButton:pressed,QPushButton:checked {background-image: url(:/images/websiteLock-checked.png);background-color: transparent;}");
    websiteLockButton->setCheckable(true);
    websiteLockButton->setToolTip("حظر المواقع");
    websiteLockButton->setStatusTip("اضافة وازالة موقع من قائمة المواقع المحظورة ...");
    connect(websiteLockButton,SIGNAL(clicked()),signalMapper,SLOT(map()));
    signalMapper->setMapping(websiteLockButton,WebsiteLocker);

    y_aix += button_height + spacing;
    QPushButton* programLockButton = new QPushButton(rightPanelWidget);
    programLockButton->setObjectName("6_toolButton");
    programLockButton->setGeometry(x_aix,y_aix,button_width,button_height);
    programLockButton->setStyleSheet("QPushButton {background-image: url(:/images/programLock.png);background-color: transparent;} QPushButton:hover {background-image: url(:/images/programLock-hover.png);background-color: transparent;} QPushButton:pressed,QPushButton:checked {background-image: url(:/images/programLock-checked.png);background-color: transparent;}");
    programLockButton->setCheckable(true);
    programLockButton->setToolTip("حظر البرامج");
    programLockButton->setStatusTip("اضافة وازالة برنامج من قائمة البرامج المحظورة ...");
    connect(programLockButton,SIGNAL(clicked()),signalMapper,SLOT(map()));
    signalMapper->setMapping(programLockButton,ProgramLocker);

    connect(signalMapper,SIGNAL(mapped(int)),this,SLOT(setCurrentWindow(int)));
}
Esempio n. 23
0
MainWindow::MainWindow()
{
  setupUi(this);

  // add window for tool parameters
  QDockWidget *dockWidget_toolParams = new QDockWidget(this);
  dockWidget_toolParams->setWindowTitle("Parameters");
  QWidget *dockWidgetContent_toolParams = new QWidget();
  dockWidget_toolParams->setWidget(dockWidgetContent_toolParams);

  QGridLayout * gridLayout_toolParams = new QGridLayout(dockWidgetContent_toolParams);

  int indRow=1;
  QDoubleSpinBox * radiusSpinBox = addDoubleParameter("radius",  dockWidgetContent_toolParams, gridLayout_toolParams, indRow);
  QSpinBox * nbPointsSpinBox = addIntParameter("nb points",  dockWidgetContent_toolParams, gridLayout_toolParams, indRow);
  
  QSpacerItem * verticalSpacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
  //QPushButton * pushButton_ok = new QPushButton("OK", dockWidgetContent_toolParams);
  
  int indCol=0, rowSpan=1, colSpan=1;
  //gridLayout_toolParams->addWidget(pushButton_ok,indRow, indCol, rowSpan, 2);
  //indRow++;
  gridLayout_toolParams->addItem(verticalSpacer, indRow, indCol, rowSpan, colSpan);

  addDockWidget(static_cast<Qt::DockWidgetArea>(1), dockWidget_toolParams);
  //QMainWindow::splitDockWidget(dockWidget_toolParams, layersWidget, static_cast<Qt::Orientation>(2));

  m_matParametersView = new MaterialParametersView();
  setCentralWidget(m_matParametersView);

  m_reducedCoordinatesView = new ReducedCoordinatesView();
  QDockWidget *dockWidget = new QDockWidget(this);
  dockWidget->setWidget(m_reducedCoordinatesView);
  //dockWidget->setFeatures( QDockWidget::DockWidgetMovable | QDockWidget::DockWidgetClosable);
  dockWidget->setObjectName(QString::fromUtf8("family plot"));
  dockWidget->setVisible(true);
  addDockWidget(static_cast<Qt::DockWidgetArea>(2), dockWidget);
  dockWidget->setFloating(true);
  dockWidget->setAllowedAreas(Qt::NoDockWidgetArea);

  setAcceptDrops(true);

  std::vector<QString> materialParameterStrings((int)exProject::UndefinedType);
  materialParameterStrings[exProject::EXType] = "EX";
  materialParameterStrings[exProject::EYType] = "EY";
  materialParameterStrings[exProject::EZType] = "EZ";
  materialParameterStrings[exProject::NuXYType] = "NuXY";
  materialParameterStrings[exProject::NuXZType] = "NuXZ";
  materialParameterStrings[exProject::NuYZType] = "NuYZ";
  materialParameterStrings[exProject::MuXYType] = "MuXY";
  materialParameterStrings[exProject::MuXZType] = "MuXZ";
  materialParameterStrings[exProject::MuYZType] = "MuYZ";
  materialParameterStrings[exProject::DensityType] = "Density";
  materialParameterStrings[exProject::StrengthType] = "Strength";

  addMaterialParameterOptions(*m_x_comboBox, materialParameterStrings);
  addMaterialParameterOptions(*m_y_comboBox, materialParameterStrings);
  addMaterialParameterOptions(*m_z_comboBox, materialParameterStrings);
  addMaterialParameterOptions(*m_col_comboBox, materialParameterStrings);

  m_action2D->setChecked(true);
  m_actionRegionSelection->setChecked(false);

  std::vector<QString> typeStrings;
  typeStrings.push_back("Cubic");
  typeStrings.push_back("Orthotropic");

  addMaterialParameterOptions(*m_type_comboBox, typeStrings);

  m_x_comboBox->setCurrentIndex((int)exProject::EXType);
  m_y_comboBox->setCurrentIndex((int)exProject::NuXYType);
  m_z_comboBox->setCurrentIndex((int)exProject::DensityType);
  m_col_comboBox->setCurrentIndex((int)exProject::MuXYType);

  m_project = new exProject();
  m_project->setFileDirectory("..//..//Output//");

  setDim();
  setType();
  setParamToVisualize(0, m_x_comboBox->currentIndex());
  setParamToVisualize(1, m_y_comboBox->currentIndex());
  setParamToVisualize(2, m_z_comboBox->currentIndex());
  setParamToVisualize(3, m_col_comboBox->currentIndex());

  m_matParametersView->setProject(m_project);
  m_materialStructureView->setProject(m_project);
  m_reducedCoordinatesView->setProject(m_project);

  connect(radiusSpinBox, SIGNAL(valueChanged(double)), m_matParametersView, SLOT(onRadiusValueChanged(double)));
  connect(nbPointsSpinBox, SIGNAL(valueChanged(int)), m_matParametersView, SLOT(onNbPointsValueChanged(int)));
}