GLLUTWidget::GLLUTWidget(LUTChannelMode mode, QWidget *parent) : QGLWidget(parent) { rb=0; _lut=0; _mode=mode; needs_init=false; gl_ready=false; view_mode=VIEW_SINGLE; setFocusPolicy(Qt::StrongFocus); cam.reset(); cam.setPitch( -0.785398163); cam.setYaw( -0.785398163); cam.setDistance(6.0); setMinimumSize(60,40); /*QAction * actionSave = new QAction(this); actionSave->setObjectName("actionSave"); actionSave->setIcon(QIcon(":/icons/document-save.png")); actionSave->setShortcut(QKeySequence("Ctrl+s")); actionSave->setToolTip("Save Image... (Ctrl-s)"); actionSave->setShortcutContext(Qt::WidgetShortcut); addAction(actionSave);*/ QAction * actionHelp = new QAction(this); actionHelp->setObjectName("actionHelp"); actionHelp->setIcon(QIcon(":/icons/help-contents.png")); actionHelp->setShortcut(QKeySequence("Ctrl+h")); actionHelp->setToolTip("Show keyboard shortcuts (Ctrl-h)"); actionHelp->setShortcutContext(Qt::WidgetShortcut); addAction(actionHelp); /*QAction * actionZoomFit = new QAction(this); actionZoomFit->setObjectName("actionZoomFit"); actionZoomFit->setIcon(QIcon(":/icons/zoom-best-fit.png")); actionZoomFit->setShortcut(QKeySequence("Space")); actionZoomFit->setToolTip("Zoom to Fit (Space)"); actionZoomFit->setShortcutContext(Qt::WidgetShortcut); addAction(actionZoomFit);*/ QAction * actionZoomNormal = new QAction(this); actionZoomNormal->setObjectName("actionZoomNormal"); actionZoomNormal->setIcon(QIcon(":/icons/zoom-original.png")); actionZoomNormal->setShortcut(QKeySequence("Home")); actionZoomNormal->setShortcutContext(Qt::WidgetShortcut); actionZoomNormal->setToolTip("Zoom to 100% (Home)"); addAction(actionZoomNormal); QAction * actionSwitchMode = new QAction(this); actionSwitchMode->setObjectName("actionSwitchMode"); actionSwitchMode->setIcon(QIcon(":/icons/3d.png")); actionSwitchMode->setShortcut(QKeySequence("Home")); actionSwitchMode->setShortcutContext(Qt::WidgetShortcut); actionSwitchMode->setToolTip("Switch Mode"); addAction(actionSwitchMode); actionViewToggleBackground = new QAction(this); actionViewToggleBackground->setObjectName("actionViewToggleBackground"); actionViewToggleBackground->setIcon(QIcon(":/icons/background.png")); actionViewToggleBackground->setCheckable(true); actionViewToggleBackground->setChecked(true); actionViewToggleBackground->setShortcut(QKeySequence("b")); actionViewToggleBackground->setShortcutContext(Qt::WidgetShortcut); actionViewToggleBackground->setToolTip("Display Background"); addAction(actionViewToggleBackground); actionViewToggleOtherChannels = new QAction(this); actionViewToggleOtherChannels->setObjectName("actionViewToggleOtherChannels"); actionViewToggleOtherChannels->setIcon(QIcon(":/icons/colors.png")); actionViewToggleOtherChannels->setCheckable(true); actionViewToggleOtherChannels->setChecked(true); actionViewToggleOtherChannels->setShortcut(QKeySequence("o")); actionViewToggleOtherChannels->setShortcutContext(Qt::WidgetShortcut); actionViewToggleOtherChannels->setToolTip("Display All Channels"); if (mode==LUTChannelMode_Bitwise) { addAction(actionViewToggleOtherChannels); } QAction * actionSep = new QAction(this); actionSep->setSeparator(true); addAction(actionSep); actionUndo = new QAction(this); actionUndo->setEnabled(false); actionUndo->setObjectName("actionUndo"); actionUndo->setIcon(QIcon(":/icons/undo.png")); actionUndo->setShortcut(QKeySequence("Backspace")); actionUndo->setShortcutContext(Qt::WidgetShortcut); actionUndo->setToolTip("Undo"); addAction(actionUndo); actionRedo = new QAction(this); actionUndo->setEnabled(false); actionRedo->setObjectName("actionRedo"); actionRedo->setIcon(QIcon(":/icons/redo.png")); actionRedo->setShortcut(QKeySequence("Insert")); actionRedo->setShortcutContext(Qt::WidgetShortcut); actionRedo->setToolTip("Redo"); addAction(actionRedo); QAction * actionSep2 = new QAction(this); actionSep2->setSeparator(true); addAction(actionSep2); actionExclusiveMode = new QAction(this); actionExclusiveMode->setObjectName("actionExclusiveMode"); actionExclusiveMode->setIcon(QIcon(":/icons/xedit.png")); actionExclusiveMode->setCheckable(true); actionExclusiveMode->setShortcut(QKeySequence("x")); actionExclusiveMode->setShortcutContext(Qt::WidgetShortcut); actionExclusiveMode->setToolTip("Exclusive Channel Mode"); if (mode==LUTChannelMode_Bitwise) { addAction(actionExclusiveMode); } else { actionExclusiveMode->setChecked(true); } QAction * actionClearSampler = new QAction(this); actionClearSampler->setObjectName("actionClearSampler"); actionClearSampler->setIcon(QIcon(":/icons/xload.png")); actionClearSampler->setShortcut(QKeySequence("c")); actionClearSampler->setShortcutContext(Qt::WidgetShortcut); actionClearSampler->setToolTip("Clear Sampler"); addAction(actionClearSampler); connect(actionViewToggleBackground, SIGNAL(triggered()), this, SLOT(redraw())); connect(actionViewToggleOtherChannels, SIGNAL(triggered()), this, SLOT(rebuildAndRedraw())); connect(actionSwitchMode, SIGNAL(triggered()), this, SLOT(switchMode())); connect(actionRedo, SIGNAL(triggered()), this, SLOT(editRedo())); connect(actionUndo, SIGNAL(triggered()), this, SLOT(editUndo())); connect(actionClearSampler, SIGNAL(triggered()), this, SLOT(clearSampler())); //connect(actionSave, SIGNAL(triggered()), this, SLOT(saveImage())); connect(actionHelp, SIGNAL(triggered()), this, SLOT(callHelp())); connect(actionZoomNormal, SIGNAL(triggered()), this, SLOT(callZoomNormal())); editClearAll(); }
GLWidget::GLWidget ( QWidget *parent , bool allow_qpainter_overlay) : QGLWidget ( allow_qpainter_overlay ? QGLFormat(QGL::SampleBuffers) : QGLFormat(), parent ) { ALLOW_QPAINTER=allow_qpainter_overlay; rb_bb=0; rb=0; stack=0; setAutoFillBackground(false); //not needed because we are remote triggering this: //startTimer(1); /*setMinimumSize ( 60,40 ); colorPicker=new ColorPicker(); actionColorPicker=new QWidgetAction ( this ); actionColorPicker->setDefaultWidget ( ( QWidget * ) colorPicker ); actionColorPicker->setVisible ( true ); actionColorPicker->setToolTip ( "RGB Color Picker\n(Left click in image to use)" ); addAction ( actionColorPicker );*/ QAction * actionSave = new QAction ( this ); actionSave->setObjectName ( "actionSave" ); actionSave->setIcon ( QIcon ( ":/icons/document-save.png" ) ); actionSave->setShortcut ( QKeySequence ( "Ctrl+s" ) ); actionSave->setToolTip ( "Save Image... (Ctrl-s)" ); actionSave->setShortcutContext ( Qt::WidgetShortcut ); addAction ( actionSave ); actionFlipV = new QAction ( this ); actionFlipV->setObjectName ( "actionFlipV" ); actionFlipV->setToolTip ( "Flip image vertically" ); actionFlipV->setCheckable ( true ); actionFlipV->setIcon ( QIcon ( ":/icons/delete_table_row.png" ) ); addAction ( actionFlipV ); actionFlipH = new QAction ( this ); actionFlipH->setObjectName ( "actionFlipH" ); actionFlipH->setToolTip ( "Flip image horizontally" ); actionFlipH->setCheckable ( true ); actionFlipH->setIcon ( QIcon ( ":/icons/delete_table_col.png" ) ); addAction ( actionFlipH ); QAction * actionHelp = new QAction ( this ); actionHelp->setObjectName ( "actionHelp" ); actionHelp->setIcon ( QIcon ( ":/icons/help-contents.png" ) ); actionHelp->setShortcut ( QKeySequence ( "Ctrl+h" ) ); actionHelp->setToolTip ( "Show keyboard shortcuts (Ctrl-h)" ); actionHelp->setShortcutContext ( Qt::WidgetShortcut ); addAction ( actionHelp ); QAction * actionZoomFit = new QAction ( this ); actionZoomFit->setObjectName ( "actionZoomFit" ); actionZoomFit->setIcon ( QIcon ( ":/icons/zoom-best-fit.png" ) ); actionZoomFit->setShortcut ( QKeySequence ( "Space" ) ); actionZoomFit->setToolTip ( "Zoom to Fit (Space)" ); actionZoomFit->setShortcutContext ( Qt::WidgetShortcut ); addAction ( actionZoomFit ); QAction * actionZoomNormal = new QAction ( this ); actionZoomNormal->setObjectName ( "actionZoomNormal" ); actionZoomNormal->setIcon ( QIcon ( ":/icons/zoom-original.png" ) ); actionZoomNormal->setShortcut ( QKeySequence ( "Home" ) ); actionZoomNormal->setShortcutContext ( Qt::WidgetShortcut ); actionZoomNormal->setToolTip ( "Zoom to 100% (Home)" ); addAction ( actionZoomNormal ); actionOn = new QAction ( this ); actionOn->setObjectName ( "actionOn" ); actionOn->setCheckable ( true ); actionOn->setChecked ( true ); actionOn->setShortcut ( QKeySequence ( "Ctrl+p" ) ); actionOn->setShortcutContext ( Qt::WidgetShortcut ); actionOn->setToolTip ( "Turn display on/off (Ctrl-p)" ); actionOn->setIcon ( QIcon ( ":/icons/application-exit.png" ) ); addAction ( actionOn ); connect ( actionSave, SIGNAL ( triggered() ), this, SLOT ( saveImage() ) ); connect ( actionFlipV, SIGNAL ( triggered ( bool ) ), this, SLOT ( flipImage() ) ); connect ( actionFlipH, SIGNAL ( triggered ( bool ) ), this, SLOT ( flipImage() ) ); connect ( actionHelp, SIGNAL ( triggered() ), this, SLOT ( callHelp() ) ); connect ( actionZoomFit, SIGNAL ( triggered() ), this, SLOT ( callZoomFit() ) ); connect ( actionZoomNormal, SIGNAL ( triggered() ), this, SLOT ( callZoomNormal() ) ); flipImage(); }