diff --git a/src/iv/imageviewer.cpp b/src/iv/imageviewer.cpp index 40f07e2d8c..0926405aab 100644 --- a/src/iv/imageviewer.cpp +++ b/src/iv/imageviewer.cpp @@ -141,6 +141,8 @@ ImageViewer::ImageViewer() setWindowTitle(tr("Image Viewer")); resize(m_default_width, m_default_height); // setSizePolicy (QSizePolicy::Ignored, QSizePolicy::Ignored); + + setAttribute(Qt::WA_DeleteOnClose); } @@ -193,6 +195,10 @@ ImageViewer::createActions() connect(saveSelectionAsAct, SIGNAL(triggered()), this, SLOT(saveSelectionAs())); + moveToNewWindowAct = new QAction(tr("Move to new window"), this); + connect(moveToNewWindowAct, SIGNAL(triggered()), this, + SLOT(moveToNewWindow())); + printAct = new QAction(tr("&Print..."), this); printAct->setShortcut(tr("Ctrl+P")); printAct->setEnabled(false); @@ -457,6 +463,7 @@ ImageViewer::createMenus() fileMenu->addAction(saveWindowAsAct); fileMenu->addAction(saveSelectionAsAct); fileMenu->addSeparator(); + fileMenu->addAction(moveToNewWindowAct); fileMenu->addAction(printAct); fileMenu->addAction(deleteCurrentImageAct); fileMenu->addSeparator(); @@ -866,7 +873,20 @@ ImageViewer::saveSelectionAs() this); } +void +ImageViewer::moveToNewWindow() +{ + if (m_images.size()) { + ImageViewer* imageViewer = new ImageViewer(); + imageViewer->show(); + imageViewer->rawcolor(rawcolor()); + imageViewer->add_image(m_images[m_current_image]->name()); + imageViewer->current_image(0); + imageViewer->raise(); + imageViewer->activateWindow(); + } +} void ImageViewer::updateTitle() diff --git a/src/iv/imageviewer.h b/src/iv/imageviewer.h index 8d4d1a45da..d848086b02 100644 --- a/src/iv/imageviewer.h +++ b/src/iv/imageviewer.h @@ -248,6 +248,7 @@ private slots: void saveAs(); ///< Save As... functionality void saveWindowAs(); ///< Save As... functionality void saveSelectionAs(); ///< Save As... functionality + void moveToNewWindow(); ///< Split current image off as a new window void print(); ///< Print current image void deleteCurrentImage(); ///< Deleting displayed image void zoomIn(); ///< Zoom in to next power of 2 @@ -332,6 +333,7 @@ private slots: static const unsigned int MaxRecentFiles = 10; QAction* openRecentAct[MaxRecentFiles]; QAction *saveAsAct, *saveWindowAsAct, *saveSelectionAsAct; + QAction* moveToNewWindowAct; QAction* printAct; QAction* deleteCurrentImageAct; QAction* exitAct;