Exemplo n.º 1
0
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();
}
Exemplo n.º 2
0
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();
}