mirror of
https://github.com/OPM/ResInsight.git
synced 2025-02-25 18:55:39 -06:00
(#467) Implemented drag & drop for moving tracks after drop target track
This commit is contained in:
@@ -173,13 +173,26 @@ void RimWellLogPlot::addTrack(RimWellLogPlotTrack* track)
|
||||
if (m_viewer)
|
||||
{
|
||||
track->recreateViewer();
|
||||
m_viewer->insertTrackPlot(track->viewer());
|
||||
m_viewer->addTrackPlot(track->viewer());
|
||||
}
|
||||
|
||||
for (size_t tIdx = 0; tIdx < tracks.size(); tIdx++)
|
||||
updateTrackNames();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogPlot::insertTrack(RimWellLogPlotTrack* track, size_t index)
|
||||
{
|
||||
tracks.insert(index, track);
|
||||
|
||||
if (m_viewer)
|
||||
{
|
||||
tracks[tIdx]->setDescription(QString("Track %1").arg(tIdx + 1));
|
||||
track->recreateViewer();
|
||||
m_viewer->insertTrackPlot(track->viewer(), index);
|
||||
}
|
||||
|
||||
updateTrackNames();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -194,6 +207,35 @@ void RimWellLogPlot::removeTrack(RimWellLogPlotTrack* track)
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogPlot::moveTracks(RimWellLogPlotTrack* insertAfterTrack, const std::vector<RimWellLogPlotTrack*>& tracksToMove)
|
||||
{
|
||||
for (size_t tIdx = 0; tIdx < tracksToMove.size(); tIdx++)
|
||||
{
|
||||
RimWellLogPlotTrack* track = tracksToMove[tIdx];
|
||||
|
||||
RimWellLogPlot* wellLogPlot;
|
||||
track->firstAnchestorOrThisOfType(wellLogPlot);
|
||||
if (wellLogPlot)
|
||||
{
|
||||
wellLogPlot->removeTrack(track);
|
||||
wellLogPlot->updateTrackNames();
|
||||
wellLogPlot->updateConnectedEditors();
|
||||
}
|
||||
}
|
||||
|
||||
size_t index = tracks.index(insertAfterTrack) + 1;
|
||||
|
||||
for (size_t tIdx = 0; tIdx < tracksToMove.size(); tIdx++)
|
||||
{
|
||||
insertTrack(tracksToMove[tIdx], index + tIdx);
|
||||
}
|
||||
|
||||
updateTrackNames();
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
@@ -355,6 +397,16 @@ void RimWellLogPlot::updateTracks()
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
void RimWellLogPlot::updateTrackNames()
|
||||
{
|
||||
for (size_t tIdx = 0; tIdx < tracks.size(); tIdx++)
|
||||
{
|
||||
tracks[tIdx]->setDescription(QString("Track %1").arg(tIdx + 1));
|
||||
}
|
||||
}
|
||||
|
||||
//--------------------------------------------------------------------------------------------------
|
||||
///
|
||||
@@ -396,7 +448,7 @@ void RimWellLogPlot::recreateTrackPlots()
|
||||
for (size_t tIdx = 0; tIdx < tracks.size(); ++tIdx)
|
||||
{
|
||||
tracks[tIdx]->recreateViewer();
|
||||
m_viewer->insertTrackPlot(tracks[tIdx]->viewer());
|
||||
m_viewer->addTrackPlot(tracks[tIdx]->viewer());
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -53,11 +53,14 @@ public:
|
||||
void updateViewerWidgetWindowTitle();
|
||||
|
||||
void addTrack(RimWellLogPlotTrack* track);
|
||||
void insertTrack(RimWellLogPlotTrack* track, size_t index);
|
||||
size_t trackCount() { return tracks.size();}
|
||||
void removeTrack(RimWellLogPlotTrack* track);
|
||||
void moveTracks(RimWellLogPlotTrack* insertAfterTrack, const std::vector<RimWellLogPlotTrack*>& tracks);
|
||||
|
||||
void loadDataAndUpdate();
|
||||
void updateTracks();
|
||||
void updateTrackNames();
|
||||
|
||||
RiuWellLogPlot* viewer();
|
||||
|
||||
|
||||
Reference in New Issue
Block a user