Skip to content

Commit e51dd5c

Browse files
authored
feat(iv): split off the current image in iv into a separate window (#4017)
This change adds a menu item "Move to new window" under the menu "File" which creates a new window and initialises it with the currently displayed image. I have tested the UI changes on Mac and linux, I don't have a Windows machine currently. No other functionality should be affected by this change. This was one item from issue #2058 --------- Signed-off-by: Anton Dukhovnikov <[email protected]>
1 parent 7315db8 commit e51dd5c

File tree

2 files changed

+22
-0
lines changed

2 files changed

+22
-0
lines changed

src/iv/imageviewer.cpp

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,8 @@ ImageViewer::ImageViewer()
141141
setWindowTitle(tr("Image Viewer"));
142142
resize(m_default_width, m_default_height);
143143
// setSizePolicy (QSizePolicy::Ignored, QSizePolicy::Ignored);
144+
145+
setAttribute(Qt::WA_DeleteOnClose);
144146
}
145147

146148

@@ -193,6 +195,10 @@ ImageViewer::createActions()
193195
connect(saveSelectionAsAct, SIGNAL(triggered()), this,
194196
SLOT(saveSelectionAs()));
195197

198+
moveToNewWindowAct = new QAction(tr("Move to new window"), this);
199+
connect(moveToNewWindowAct, SIGNAL(triggered()), this,
200+
SLOT(moveToNewWindow()));
201+
196202
printAct = new QAction(tr("&Print..."), this);
197203
printAct->setShortcut(tr("Ctrl+P"));
198204
printAct->setEnabled(false);
@@ -457,6 +463,7 @@ ImageViewer::createMenus()
457463
fileMenu->addAction(saveWindowAsAct);
458464
fileMenu->addAction(saveSelectionAsAct);
459465
fileMenu->addSeparator();
466+
fileMenu->addAction(moveToNewWindowAct);
460467
fileMenu->addAction(printAct);
461468
fileMenu->addAction(deleteCurrentImageAct);
462469
fileMenu->addSeparator();
@@ -866,7 +873,20 @@ ImageViewer::saveSelectionAs()
866873
this);
867874
}
868875

876+
void
877+
ImageViewer::moveToNewWindow()
878+
{
879+
if (m_images.size()) {
880+
ImageViewer* imageViewer = new ImageViewer();
869881

882+
imageViewer->show();
883+
imageViewer->rawcolor(rawcolor());
884+
imageViewer->add_image(m_images[m_current_image]->name());
885+
imageViewer->current_image(0);
886+
imageViewer->raise();
887+
imageViewer->activateWindow();
888+
}
889+
}
870890

871891
void
872892
ImageViewer::updateTitle()

src/iv/imageviewer.h

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -248,6 +248,7 @@ private slots:
248248
void saveAs(); ///< Save As... functionality
249249
void saveWindowAs(); ///< Save As... functionality
250250
void saveSelectionAs(); ///< Save As... functionality
251+
void moveToNewWindow(); ///< Split current image off as a new window
251252
void print(); ///< Print current image
252253
void deleteCurrentImage(); ///< Deleting displayed image
253254
void zoomIn(); ///< Zoom in to next power of 2
@@ -332,6 +333,7 @@ private slots:
332333
static const unsigned int MaxRecentFiles = 10;
333334
QAction* openRecentAct[MaxRecentFiles];
334335
QAction *saveAsAct, *saveWindowAsAct, *saveSelectionAsAct;
336+
QAction* moveToNewWindowAct;
335337
QAction* printAct;
336338
QAction* deleteCurrentImageAct;
337339
QAction* exitAct;

0 commit comments

Comments
 (0)