bool ossimPlanetTextureLayerGroup::swapLayers(osg::ref_ptr<ossimPlanetTextureLayer> layer1, 
                                              osg::ref_ptr<ossimPlanetTextureLayer> layer2,
                                              bool notifyFlag)
{
   ossim_int32 idx1 = findLayerIndex(layer1.get());
   ossim_int32 idx2 = findLayerIndex(layer2.get());
   
   if(idx1 < 0 || idx2 < 0) return false;
   
   return swapLayers(idx1, idx2, notifyFlag);
}
示例#2
0
LayerDialog::LayerDialog( QWidget* parent, Qt::WFlags fl )
: QDialog( parent, fl )
{
    setName("LayerDialog");
	setWindowTitle(tr( "MantidPlot - Arrange Layers" ));

    QGroupBox *gb1 = new QGroupBox(tr("Layers"));
	QGridLayout *gl1 = new QGridLayout(gb1);
	gl1->addWidget(new QLabel(tr("Number")), 0, 0);
	layersBox = new QSpinBox();
	layersBox->setRange(0, 100);
	gl1->addWidget(layersBox, 0, 1);

	fitBox = new QCheckBox(tr("Automatic &layout"));
	fitBox->setChecked(false);
	gl1->addWidget(fitBox, 1, 1);
	gl1->setRowStretch(2, 1);

    QGroupBox *gb2 = new QGroupBox(tr("Alignment"));
	QGridLayout *gl2 = new QGridLayout(gb2);
	gl2->addWidget(new QLabel(tr("Horizontal")), 0, 0);

	alignHorBox = new QComboBox( );
	alignHorBox->insertItem( tr( "Center" ) );
	alignHorBox->insertItem( tr( "Left" ) );
	alignHorBox->insertItem( tr( "Right" ) );
	gl2->addWidget(alignHorBox, 0, 1);

	gl2->addWidget(new QLabel( tr( "Vertical" )), 1, 0 );
	alignVertBox = new QComboBox();
	alignVertBox->insertItem( tr( "Center" ) );
	alignVertBox->insertItem( tr( "Top" ) );
	alignVertBox->insertItem( tr( "Bottom" ) );
	gl2->addWidget(alignVertBox, 1, 1);
	gl2->setRowStretch(2, 1);

    GroupGrid = new QGroupBox(tr("Grid"));
	QGridLayout *gl3 = new QGridLayout(GroupGrid);
	gl3->addWidget(new QLabel(tr("Columns")), 0, 0);
	boxX = new QSpinBox();
	boxX->setRange(1, 100);
	gl3->addWidget(boxX, 0, 1);
	gl3->addWidget(new QLabel( tr( "Rows" )), 1, 0);
	boxY = new QSpinBox();
	boxY->setRange(1, 100);
	gl3->addWidget(boxY, 1, 1);

	GroupCanvasSize = new QGroupBox(tr("&Layer Canvas Size"));
	GroupCanvasSize->setCheckable(true);
	GroupCanvasSize->setChecked(false);

	QGridLayout *gl5 = new QGridLayout(GroupCanvasSize);
	gl5->addWidget(new QLabel(tr("Width")), 0, 0);
	boxCanvasWidth = new QSpinBox();
	boxCanvasWidth->setRange(0, 10000);
	boxCanvasWidth->setSingleStep(50);
	boxCanvasWidth->setSuffix(tr(" pixels"));
	gl5->addWidget(boxCanvasWidth, 0, 1);
	gl5->addWidget(new QLabel( tr( "Height" )), 1, 0);
	boxCanvasHeight = new QSpinBox();
	boxCanvasHeight->setRange(0, 10000);
	boxCanvasHeight->setSingleStep(50);
	boxCanvasHeight->setSuffix(tr(" pixels"));
	gl5->addWidget(boxCanvasHeight, 1, 1);

    QGroupBox *gb4 = new QGroupBox(tr("Spacing"));
	QGridLayout *gl4 = new QGridLayout(gb4);
	gl4->addWidget(new QLabel(tr("Columns gap")), 0, 0);
	boxColsGap = new QSpinBox();
	boxColsGap->setRange(0, 1000);
	boxColsGap->setSingleStep(5);
	boxColsGap->setSuffix(tr(" pixels"));
	gl4->addWidget(boxColsGap, 0, 1);
	gl4->addWidget(new QLabel( tr( "Rows gap" )), 1, 0);
	boxRowsGap = new QSpinBox();
	boxRowsGap->setRange(0, 1000);
	boxRowsGap->setSingleStep(5);
	boxRowsGap->setSuffix(tr(" pixels"));
	gl4->addWidget(boxRowsGap, 1, 1);
	gl4->addWidget(new QLabel( tr( "Left margin" )), 2, 0);
	boxLeftSpace = new QSpinBox();
	boxLeftSpace->setRange(0, 1000);
	boxLeftSpace->setSingleStep(5);
	boxLeftSpace->setSuffix(tr(" pixels"));
	gl4->addWidget(boxLeftSpace, 2, 1);
	gl4->addWidget(new QLabel( tr( "Right margin" )), 3, 0);
	boxRightSpace = new QSpinBox();
	boxRightSpace->setRange(0, 1000);
	boxRightSpace->setSingleStep(5);
	boxRightSpace->setSuffix(tr(" pixels"));
	gl4->addWidget(boxRightSpace, 3, 1);
	gl4->addWidget(new QLabel( tr( "Top margin" )), 4, 0);
	boxTopSpace = new QSpinBox();
	boxTopSpace->setRange(0, 1000);
	boxTopSpace->setSingleStep(5);
	boxTopSpace->setSuffix(tr(" pixels"));
	gl4->addWidget(boxTopSpace, 4, 1);
	gl4->addWidget(new QLabel( tr( "Bottom margin") ), 5, 0);
	boxBottomSpace = new QSpinBox();
	boxBottomSpace->setRange(0, 1000);
	boxBottomSpace->setSingleStep(5);
	boxBottomSpace->setSuffix(tr(" pixels"));
	gl4->addWidget(boxBottomSpace, 5, 1);

	QVBoxLayout *vbox1 = new QVBoxLayout();
	vbox1->addWidget(GroupGrid);
	vbox1->addWidget(GroupCanvasSize);

	buttonApply = new QPushButton(tr( "&Apply" ));
	buttonOk = new QPushButton(tr( "&OK" ));
	buttonCancel = new QPushButton(tr( "&Cancel" ));

	QHBoxLayout *hbox1 = new QHBoxLayout();
    hbox1->addStretch();
	hbox1->addWidget(buttonApply);
	hbox1->addWidget(buttonOk);
	hbox1->addWidget(buttonCancel);

	QGroupBox *gb5 = new QGroupBox(tr("Swap Layers"));
	QHBoxLayout *hbox2 = new QHBoxLayout(gb5);
	hbox2->addWidget(new QLabel( tr( "Source Layer") ));

	boxLayerSrc = new QSpinBox();
	hbox2->addWidget(boxLayerSrc);

	hbox2->addWidget(new QLabel( tr( "Destination Layer") ));
	boxLayerDest = new QSpinBox();
	hbox2->addWidget(boxLayerDest);

	buttonSwapLayers = new QPushButton(tr( "&Swap" ));
	hbox2->addWidget(buttonSwapLayers);

	QGridLayout *gl6 = new QGridLayout();
	gl6->addWidget(gb1, 0, 0);
	gl6->addWidget(gb2, 0, 1);
	gl6->addLayout(vbox1, 1, 0);
	gl6->addWidget(gb4, 1, 1);
	gl6->setRowStretch(2, 1);

	QVBoxLayout *vbox2 = new QVBoxLayout(this);
	vbox2->addLayout(gl6);
	vbox2->addWidget(gb5);
	vbox2->addStretch();
	vbox2->addLayout(hbox1);

	connect( buttonSwapLayers, SIGNAL( clicked() ), this, SLOT( swapLayers() ) );
	connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
	connect( buttonApply, SIGNAL( clicked() ), this, SLOT(update() ) );
	connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
	connect( fitBox, SIGNAL( toggled(bool) ), this, SLOT(enableLayoutOptions(bool) ) );
}
LayerDialog::LayerDialog( QWidget* parent, bool okMode, Qt::WFlags fl )
: QDialog(parent, fl),
multi_layer(NULL)
{
	setName("LayerDialog");
	setWindowTitle(tr( "QtiPlot - Arrange Layers" ));
	setAttribute(Qt::WA_DeleteOnClose);

	QGroupBox *gb1 = new QGroupBox(tr("Layers"));
	QGridLayout *gl1 = new QGridLayout(gb1);
	gl1->addWidget(new QLabel(tr("Number")), 0, 0);
	layersBox = new QSpinBox();
	layersBox->setRange(0, 100);
	gl1->addWidget(layersBox, 0, 1);

	linkXAxesBox = new QCheckBox(tr("Link &X axes"));
	linkXAxesBox->setChecked(false);
	gl1->addWidget(linkXAxesBox, 1, 0);

	fitBox = new QCheckBox(tr("Automatic &layout"));
	fitBox->setChecked(false);
	gl1->addWidget(fitBox, 1, 1);
	gl1->setRowStretch(2, 1);

    QGroupBox *gb2 = new QGroupBox(tr("Alignment"));
	QGridLayout *gl2 = new QGridLayout(gb2);
	gl2->addWidget(new QLabel(tr("Horizontal")), 0, 0);

	alignHorBox = new QComboBox( false );
	alignHorBox->insertItem( tr( "Center" ) );
	alignHorBox->insertItem( tr( "Left" ) );
	alignHorBox->insertItem( tr( "Right" ) );
	gl2->addWidget(alignHorBox, 0, 1);

	gl2->addWidget(new QLabel( tr( "Vertical" )), 1, 0 );
	alignVertBox = new QComboBox( false );
	alignVertBox->insertItem( tr( "Center" ) );
	alignVertBox->insertItem( tr( "Top" ) );
	alignVertBox->insertItem( tr( "Bottom" ) );
	gl2->addWidget(alignVertBox, 1, 1);
	gl2->setRowStretch(2, 1);

    GroupGrid = new QGroupBox(tr("Grid"));
	QGridLayout *gl3 = new QGridLayout(GroupGrid);
	gl3->addWidget(new QLabel(tr("Columns")), 0, 0);
	boxX = new QSpinBox();
	boxX->setRange(1, 100);
	gl3->addWidget(boxX, 0, 1);
	gl3->addWidget(new QLabel( tr( "Rows" )), 1, 0);
	boxY = new QSpinBox();
	boxY->setRange(1, 100);
	gl3->addWidget(boxY, 1, 1);
	gl3->setRowStretch(2, 1);

	GroupCanvasSize = new QGroupBox(tr("&Layer Canvas Size"));
	GroupCanvasSize->setCheckable(true);
	GroupCanvasSize->setChecked(false);

	QGridLayout *gl5 = new QGridLayout(GroupCanvasSize);

	gl5->addWidget(new QLabel(tr("Unit")), 0, 0);

	unitBox = new QComboBox();
	unitBox->insertItem(tr("inch"));
	unitBox->insertItem(tr("mm"));
	unitBox->insertItem(tr("cm"));
	unitBox->insertItem(tr("point"));
	unitBox->insertItem(tr("pixel"));
	gl5->addWidget(unitBox, 0, 1);

	QLocale locale = QLocale();
	gl5->addWidget(new QLabel(tr("Width")), 1, 0);
	boxCanvasWidth = new DoubleSpinBox();
	boxCanvasWidth->setRange(0, 10000);
	boxCanvasWidth->setLocale(locale);
	boxCanvasWidth->setDecimals(6);
	gl5->addWidget(boxCanvasWidth, 1, 1);

	gl5->addWidget(new QLabel( tr( "Height" )), 2, 0);
	boxCanvasHeight = new DoubleSpinBox();
	boxCanvasHeight->setRange(0, 10000);
	boxCanvasHeight->setLocale(locale);
	boxCanvasHeight->setDecimals(6);
	gl5->addWidget(boxCanvasHeight, 2, 1);

	keepRatioBox = new QCheckBox(tr("&Keep aspect ratio"));
	keepRatioBox->setChecked(true);
	gl5->addWidget(keepRatioBox, 3, 1);

	fixedSizeBox = new QCheckBox(tr("&Fixed size"));
	gl5->addWidget(fixedSizeBox, 3, 0);

    QGroupBox *gb4 = new QGroupBox(tr("Spacing"));
	QGridLayout *gl4 = new QGridLayout(gb4);

	gl4->addWidget(new QLabel(tr("Align")), 0, 0);
	alignPolicyBox = new QComboBox();
	alignPolicyBox->addItem(tr("Layers"));
	alignPolicyBox->addItem(tr("Canvases"));
	gl4->addWidget(alignPolicyBox, 0, 1);

	gl4->addWidget(new QLabel(tr("Columns gap")), 1, 0);
	boxColsGap = new QSpinBox();
	boxColsGap->setRange(0, 1000);
	boxColsGap->setSingleStep(5);
	boxColsGap->setSuffix(tr(" pixels"));
	gl4->addWidget(boxColsGap, 1, 1);
	gl4->addWidget(new QLabel( tr( "Rows gap" )), 2, 0);
	boxRowsGap = new QSpinBox();
	boxRowsGap->setRange(0, 1000);
	boxRowsGap->setSingleStep(5);
	boxRowsGap->setSuffix(tr(" pixels"));
	gl4->addWidget(boxRowsGap, 2, 1);

	commonAxesBox = new QCheckBox(tr("Co&mmon axes"));
	commonAxesBox->hide();
	gl4->addWidget(commonAxesBox, 3, 1);

	QGroupBox *gb7 = new QGroupBox(tr("Margins"));
	gl4 = new QGridLayout(gb7);
	gl4->addWidget(new QLabel( tr( "Left margin" )), 0, 0);
	boxLeftSpace = new QSpinBox();
	boxLeftSpace->setRange(0, 1000);
	boxLeftSpace->setSingleStep(5);
	boxLeftSpace->setSuffix(tr(" pixels"));
	gl4->addWidget(boxLeftSpace, 0, 1);
	gl4->addWidget(new QLabel( tr( "Right margin" )), 1, 0);
	boxRightSpace = new QSpinBox();
	boxRightSpace->setRange(0, 1000);
	boxRightSpace->setSingleStep(5);
	boxRightSpace->setSuffix(tr(" pixels"));
	gl4->addWidget(boxRightSpace, 1, 1);
	gl4->addWidget(new QLabel( tr( "Top margin" )), 2, 0);
	boxTopSpace = new QSpinBox();
	boxTopSpace->setRange(0, 1000);
	boxTopSpace->setSingleStep(5);
	boxTopSpace->setSuffix(tr(" pixels"));
	gl4->addWidget(boxTopSpace, 2, 1);
	gl4->addWidget(new QLabel( tr( "Bottom margin") ), 3, 0);
	boxBottomSpace = new QSpinBox();
	boxBottomSpace->setRange(0, 1000);
	boxBottomSpace->setSingleStep(5);
	boxBottomSpace->setSuffix(tr(" pixels"));
	gl4->addWidget(boxBottomSpace, 3, 1);
	gl4->setRowStretch(4, 1);

	buttonOk = new QPushButton(tr( "&OK" ));
	buttonCancel = new QPushButton(tr( "&Cancel" ));
	buttonApply = NULL;

	QHBoxLayout *hbox1 = new QHBoxLayout();
	hbox1->addStretch();

	if (!okMode){
		buttonApply = new QPushButton(tr( "&Apply" ));
		connect( buttonApply, SIGNAL( clicked() ), this, SLOT(update() ) );
		hbox1->addWidget(buttonApply);
	}

	hbox1->addWidget(buttonOk);
	hbox1->addWidget(buttonCancel);
	hbox1->addStretch();

	QGroupBox *gb5 = new QGroupBox(tr("Swap Layers"));
	QHBoxLayout *hbox2 = new QHBoxLayout(gb5);
	hbox2->addWidget(new QLabel( tr( "Source Layer") ));

	boxLayerSrc = new QSpinBox();
	hbox2->addWidget(boxLayerSrc);

	hbox2->addWidget(new QLabel( tr( "Destination Layer") ));
	boxLayerDest = new QSpinBox();
	hbox2->addWidget(boxLayerDest);

	buttonSwapLayers = new QPushButton(tr( "&Swap" ));
	hbox2->addWidget(buttonSwapLayers);

	QGridLayout *gl6 = new QGridLayout();
	gl6->addWidget(gb1, 0, 0);
	gl6->addWidget(gb2, 0, 1);
	gl6->addWidget(GroupGrid, 1, 0);
	gl6->addWidget(gb4, 1, 1);
	gl6->addWidget(GroupCanvasSize, 2, 0);
	gl6->addWidget(gb7, 2, 1);
	gl6->setRowStretch(3, 1);

	QVBoxLayout *vbox2 = new QVBoxLayout(this);
	vbox2->addLayout(gl6);
	vbox2->addWidget(gb5);
	vbox2->addStretch();
	vbox2->addLayout(hbox1);

	connect( buttonSwapLayers, SIGNAL( clicked() ), this, SLOT( swapLayers() ) );
	connect( buttonOk, SIGNAL( clicked() ), this, SLOT( accept() ) );
	connect( buttonCancel, SIGNAL( clicked() ), this, SLOT( reject() ) );
	connect( fitBox, SIGNAL( toggled(bool) ), this, SLOT(enableLayoutOptions(bool) ) );
	connect(unitBox, SIGNAL(activated(int)), this, SLOT(updateSizes(int)));
	connect(boxCanvasWidth, SIGNAL(valueChanged (double)), this, SLOT(adjustCanvasHeight(double)));
	connect(boxCanvasHeight, SIGNAL(valueChanged (double)), this, SLOT(adjustCanvasWidth(double)));

	connect(boxColsGap, SIGNAL(valueChanged(int)), this, SLOT(showCommonAxesBox()));
	connect(boxRowsGap, SIGNAL(valueChanged(int)), this, SLOT(showCommonAxesBox()));
	connect(alignPolicyBox, SIGNAL(activated(int)), this, SLOT(showCommonAxesBox()));
}