25 #include <QApplication>
26 #include <QFileDialog>
27 #include <QMessageBox>
28 #include <QVBoxLayout>
32 , m_sampleModel(nullptr)
34 , m_selectionModel(nullptr)
35 , m_view_locked(false)
39 auto layout =
new QVBoxLayout;
41 layout->setSpacing(0);
134 QPixmap pixmap(this->size());
135 render(&pixmap, QPoint(), childrenRegion());
149 QString defaultExtension =
".png";
150 QString selectedFilter(
"*" + defaultExtension);
151 QString defaultName = dirname +
"/untitled";
152 QString fileName = QFileDialog::getSaveFileName(
nullptr,
"Save 3D real space view", defaultName,
155 fileName.endsWith(defaultExtension) ? fileName : fileName + defaultExtension;
157 if (!nameToSave.isEmpty()) {
159 pixmap.save(nameToSave);
160 }
catch (
const std::exception& ex) {
161 QString message =
"Attempt to save file with the name '";
162 message.append(nameToSave);
163 message.append(
"' has failed with following error message\n\n");
164 message.append(QString::fromStdString(ex.what()));
182 QApplication::setOverrideCursor(Qt::WaitCursor);
202 }
catch (
const std::exception& ex) {
209 QApplication::restoreOverrideCursor();
241 Qt::UniqueConnection);
243 Qt::UniqueConnection);
244 connect(model, &SampleModel::rowsAboutToBeRemoved,
this,
247 Qt::UniqueConnection);
249 Qt::UniqueConnection);
252 Qt::UniqueConnection);
257 connect(model, &SampleModel::rowsAboutToBeMoved,
this,
Defines class FilterPropertyProxy.
Defines class ProjectManager.
Defines class RealSpaceBuilder.
Defines class RealSpaceCanvas.
Defines RealSpaceModel namespace.
Defines class RealSpaceView.
Defines class SampleModel.
Defines namespace SessionItemUtils.
Defines class WarningSign.
static ProjectManager * projectManager()
static QModelIndex toSourceIndex(QModelIndex index)
QString userExportDir() const
Returns directory name suitable for saving plots.
void populate(RealSpaceModel *model, const SessionItem &item, const SceneGeometry &sceneGeometry, const RealSpace::Camera::Position &cameraPosition=RealSpace::Camera::Position(RealSpace::Vector3D(0, -200, 120), RealSpace::Vector3D(0, 0, 0), RealSpace::Vector3D::_z))
QItemSelectionModel * m_selectionModel
void onSelectionChanged(const QItemSelection &, const QItemSelection &)
void onSavePictureAction()
std::unique_ptr< RealSpaceModel > m_realSpaceModel
QModelIndex m_currentSelection
void setModel(SampleModel *sampleModel=nullptr, QItemSelectionModel *selectionModel=nullptr)
void onDefaultViewAction()
void onLockViewAction(bool view_locked)
WarningSign * m_warningSign
void onDataChanged(const QModelIndex &index)
std::unique_ptr< SceneGeometry > m_sceneGeometry
void onChangeLayerSizeAction(double layer_size_scale)
RealSpaceCanvas(QWidget *parent=nullptr)
void onRowsAboutToBeRemoved(const QModelIndex &parent, int first, int last)
SampleModel * m_sampleModel
void savePicture(const QPixmap &pixmap)
void setConnected(SampleModel *model, bool makeConnected)
RealSpace::Camera & getCamera()
void setModel(RealSpaceModel *model)
const Position & getPos() const
Main model to hold sample items.
SessionItem * itemForIndex(const QModelIndex &index) const
virtual QModelIndex index(int row, int column, const QModelIndex &parent) const
The WarningSign controls appearance of WarningSignWidget on top of parent widget.
void clear()
Clears warning message;.
void setWarningMessage(const QString &warningMessage)
Shows warning sign on the screen.
void warning(QWidget *parent, const QString &title, const QString &text, const QString &detailedText)
bool IsPositionRelated(const SessionItem &item)
Returns true if current item is related to the position on sample editor canvas.