void AM2DScanView::makeConnections() { // connect resize event from graphicsView to resize the stuff inside the view connect(gExclusiveView_, SIGNAL(resized(QSizeF)), this, SLOT(resizeExclusiveViews()), Qt::QueuedConnection); connect(gMultiView_, SIGNAL(resized(QSizeF)), this, SLOT(resizeMultiViews()), Qt::QueuedConnection); connect(scansModel_, SIGNAL(exclusiveDataSourceChanged(QString)), this, SLOT(onExclusiveDataSourceChanged(QString))); connect(scansModel_, SIGNAL(scanAdded(AMScan*)), this, SLOT(onScanAdded(AMScan*))); connect(exclusiveView_, SIGNAL(selectedRectChanged(QRectF)), this, SLOT(onSelectedRectChanged(QRectF))); connect(exclusive2DScanBar_, SIGNAL(showSpectra(bool)), this, SLOT(setSpectrumViewVisibility(bool))); connect(exclusiveView_, SIGNAL(dataPositionChanged(QPointF)), this, SLOT(onDataPositionChanged(QPointF))); }
AMScanViewScanBar::AMScanViewScanBar(AMScanSetModel* model, int scanIndex, QWidget* parent) : QFrame(parent) { model_ = model; scanIndex_ = scanIndex; setObjectName("AMScanViewScanBar"); setStyleSheet("QFrame#AMScanViewScanBar { " "background-color: qlineargradient(spread:pad, x1:0, y1:0, x2:0, y2:1, stop:0 rgba(81, 81, 81, 255), stop:0.494444 rgba(81, 81, 81, 255), stop:0.5 rgba(64, 64, 64, 255), stop:1 rgba(64, 64, 64, 255));" "border-bottom: 1px solid black;" "}"); exclusiveModeOn_ = false; sourceButtons_.setExclusive(false); AMScan* source = model->scanAt(scanIndex_); // UI Setup: /////////////////////// QHBoxLayout* hl = new QHBoxLayout(); nameLabel_ = new QLabel(); if(source) nameLabel_->setText(source->name() + QString(" #%1").arg(source->number())); nameLabel_->setStyleSheet("color: white;"); hl->addWidget(nameLabel_); hl->addStretch(0); cramBar_ = new AMCramBarHorizontal(); if(source) { for(int i=0; i<source->dataSourceCount(); i++) { QColor color = model->plotColor(scanIndex, i); QToolButton* sourceButton = new AMColoredTextToolButton(color); /// \todo special buttons, with lines underneath that show the line color / style, and differentiate 1D, 2D datasets. sourceButton->setMaximumHeight(18); sourceButton->setText(source->dataSourceAt(i)->name()); /// \todo description or name? both? name if description is empty? sourceButton->setCheckable(true); sourceButton->setChecked(model->isVisible(scanIndex, i)); sourceButtons_.addButton(sourceButton, i); cramBar_->addWidget(sourceButton); // hide the button if this data source should be hidden from users: sourceButton->setHidden(model->isHiddenFromUsers(scanIndex, i)); sourceButton->setContextMenuPolicy(Qt::CustomContextMenu); connect(sourceButton, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onDataSourceButtonRightClicked(QPoint))); } } hl->addWidget(cramBar_); hl->addStretch(1); hl->setContentsMargins(6, 0, 6, 0); hl->setSpacing(24); setLayout(hl); connect(model, SIGNAL(rowsInserted(QModelIndex, int, int)), this, SLOT(onRowInserted(QModelIndex,int,int))); connect(model, SIGNAL(rowsAboutToBeRemoved(QModelIndex, int, int)), this, SLOT(onRowAboutToBeRemoved(QModelIndex,int,int))); connect(model, SIGNAL(rowsRemoved(QModelIndex, int, int)), this, SLOT(onRowRemoved(QModelIndex,int,int))); connect(model, SIGNAL(dataChanged(QModelIndex,QModelIndex)), this, SLOT(onModelDataChanged(QModelIndex,QModelIndex))); connect(model, SIGNAL(exclusiveDataSourceChanged(QString)), this, SLOT(onExclusiveDataSourceChanged(QString))); connect(&sourceButtons_, SIGNAL(buttonClicked(int)), this, SLOT(onSourceButtonClicked(int))); // connect(closeButton_, SIGNAL(clicked()), this, SLOT(onCloseButtonClicked())); }