+ apply changes

git-svn-id: https://free-cad.svn.sourceforge.net/svnroot/free-cad/trunk@5109 e8eeb9e2-ec13-0410-a4a9-efa5cf37419d
This commit is contained in:
wmayer 2011-11-10 09:13:25 +00:00
parent 72bfc3c74b
commit c4fe31a837
2 changed files with 2 additions and 127 deletions

View File

@ -85,50 +85,15 @@ void ImageView::createActions()
_pOneToOneAct->setStatusTip(tr("Display the image at a 1:1 scale"));
connect(_pOneToOneAct, SIGNAL(triggered()), this, SLOT(oneToOneImage()));
// Create an action group for the exclusive color actions
_pShowColActGrp = new QActionGroup (this);
_pShowColActGrp->setExclusive(true);
connect(_pShowColActGrp, SIGNAL(triggered(QAction*)), this, SLOT(handleColorAct(QAction*)));
_pShowOrigAct = new QAction(_pShowColActGrp);
_pShowOrigAct->setCheckable(true);
_pShowOrigAct->setText(tr("&Original color"));
_pShowOrigAct->setIcon(QPixmap(image_orig));
_pShowOrigAct->setStatusTip(tr("Display the image with its original color(s)"));
_pShowBrightAct = new QAction(_pShowColActGrp);
_pShowBrightAct->setCheckable(true);
_pShowBrightAct->setText(tr("&Brightened color"));
_pShowBrightAct->setIcon(QPixmap(image_bright));
_pShowBrightAct->setStatusTip(tr("Display the image with brightened color(s)"));
// Create the menus and add the actions
_pContextMenu = new QMenu(this);
_pContextMenu->addAction(_pFitAct);
_pContextMenu->addAction(_pOneToOneAct);
_pContextMenu->addAction(_pShowOrigAct);
_pContextMenu->addAction(_pShowBrightAct);
// Create the toolbars and add the actions
_pStdToolBar = this->addToolBar(tr("Standard"));
_pStdToolBar->addAction(_pFitAct);
_pStdToolBar->addAction(_pOneToOneAct);
_pStdToolBar->addAction(_pShowOrigAct);
_pStdToolBar->addAction(_pShowBrightAct);
// Add a slider to the toolbar (for brightness adjustment)
_sliderBrightAdjVal = 10;
_pSliderBrightAdj = new QSlider(Qt::Horizontal, _pStdToolBar);
_pSliderBrightAdj->setRange(0, 100);
_pSliderBrightAdj->setValue(_sliderBrightAdjVal);
_pSliderBrightAdj->setPageStep(10);
_pStdToolBar->addWidget(_pSliderBrightAdj);
_pSliderBrightAdj->setSizePolicy(QSizePolicy::Maximum, QSizePolicy::Fixed);
_pSliderBrightAdj->setEnabled(false);
connect(_pSliderBrightAdj, SIGNAL(valueChanged(int)), this, SLOT(sliderValueAdjusted(int)));
// Set the original color action to ON
_pShowOrigAct->setChecked(true);
}
// Enable or disable the status bar
@ -176,31 +141,6 @@ void ImageView::EnableFitImageAction(bool Enable)
_pFitAct->setVisible(Enable);
}
// Enable (show) or disable (hide) the color actions (_pShowOrigAct and _pShowBrightAct)
// If enabling:
// image is redisplayed with either original or brightened colors (depending on which state the toggle buttons are in)
// If disabling
// color map is left as is and image is not redisplayed
// This function should be used to hide the color actions when a derived class implements its own color map scheme
void ImageView::EnableColorActions(bool Enable)
{
if (Enable == true)
{
_pShowOrigAct->setVisible(true);
_pShowBrightAct->setVisible(true);
if (_pShowBrightAct->isChecked() == true)
showBrightened();
else
showOriginalColors();
}
else
{
_pShowOrigAct->setVisible(false);
_pShowBrightAct->setVisible(false);
_pSliderBrightAdj->setVisible(false);
}
}
// Slot function to fit (stretch/shrink) the image to the view size
void ImageView::fitImage()
{
@ -216,21 +156,6 @@ void ImageView::oneToOneImage()
updateStatusBar();
}
// Slot function to handle the color actions
void ImageView::handleColorAct( QAction* act)
{
if (act == _pShowOrigAct)
{
_pSliderBrightAdj->setEnabled(false);
showOriginalColors();
}
else if (act == _pShowBrightAct)
{
_pSliderBrightAdj->setEnabled(true);
showBrightened();
}
}
// Show the original colors (no enhancement)
// but image will be scaled for the number of significant bits
// (i.e if 12 significant bits (in 16-bit image) a value of 4095 will be shown as white)
@ -240,36 +165,6 @@ void ImageView::showOriginalColors()
_pGLImageBox->redraw();
}
// Show the image with a brightness adjustment
void ImageView::showBrightened()
{
if (createColorMap(0, false) == 0)
{
// Fill the color map with the preset enhancement
int numMapEntries = getNumColorMapEntries();
double expValue = (_sliderBrightAdjVal / 1000.0) * 256 / numMapEntries;
for (int in = 0; in < numMapEntries; in++)
{
double out = 1.0 - exp (-(double)in * expValue);
setColorMapRedValue(in, (float)out);
setColorMapGreenValue(in, (float)out);
setColorMapBlueValue(in, (float)out);
setColorMapAlphaValue(in, 1.0);
}
// redraw
_pGLImageBox->redraw();
}
}
// Slot function to adjust the brightness slider's value
void ImageView::sliderValueAdjusted(int NewValue)
{
_sliderBrightAdjVal = NewValue;
if (_pShowBrightAct->isChecked() == true)
showBrightened();
}
// Create a color map
// (All red entries come first, then green, then blue, then alpha)
// returns 0 for OK, -1 for memory allocation error
@ -366,10 +261,7 @@ void ImageView::clearImage()
int ImageView::createImageCopy(void* pSrcPixelData, unsigned long width, unsigned long height, int format, unsigned short numSigBitsPerSample, int displayMode)
{
int ret = _pGLImageBox->createImageCopy(pSrcPixelData, width, height, format, numSigBitsPerSample, displayMode);
if (_pShowBrightAct->isChecked() == true)
showBrightened();
else
showOriginalColors();
showOriginalColors();
updateStatusBar();
return ret;
}
@ -393,10 +285,7 @@ int ImageView::createImageCopy(void* pSrcPixelData, unsigned long width, unsigne
int ImageView::pointImageTo(void* pSrcPixelData, unsigned long width, unsigned long height, int format, unsigned short numSigBitsPerSample, bool takeOwnership, int displayMode)
{
int ret = _pGLImageBox->pointImageTo(pSrcPixelData, width, height, format, numSigBitsPerSample, takeOwnership, displayMode);
if (_pShowBrightAct->isChecked() == true)
showBrightened();
else
showOriginalColors();
showOriginalColors();
updateStatusBar();
return ret;
}

View File

@ -53,7 +53,6 @@ public:
virtual void EnableMouseEvents(bool Enable);
virtual void EnableOneToOneAction(bool Enable);
virtual void EnableFitImageAction(bool Enable);
virtual void EnableColorActions(bool Enable);
virtual int createColorMap(int numEntriesReq = 0, bool Initialise = true);
virtual void clearColorMap();
virtual int getNumColorMapEntries() const;
@ -68,14 +67,11 @@ public Q_SLOTS:
virtual void oneToOneImage();
protected Q_SLOTS:
virtual void handleColorAct( QAction* act);
virtual void sliderValueAdjusted(int NewValue);
virtual void drawGraphics();
protected:
virtual void createActions();
virtual void showOriginalColors();
virtual void showBrightened();
virtual void mousePressEvent(QMouseEvent* cEvent);
virtual void mouseDoubleClickEvent(QMouseEvent* cEvent);
virtual void mouseMoveEvent(QMouseEvent* cEvent);
@ -107,14 +103,9 @@ protected:
int dragStartWCx;
int dragStartWCy;
// Action groups
QActionGroup* _pShowColActGrp;
// Actions
QAction* _pFitAct;
QAction* _pOneToOneAct;
QAction* _pShowOrigAct;
QAction* _pShowBrightAct;
// Menus
QMenu* _pContextMenu;
@ -122,14 +113,9 @@ protected:
// Toolbars
QToolBar* _pStdToolBar;
// Slider for brightness adjustment
QSlider* _pSliderBrightAdj;
int _sliderBrightAdjVal;
// Flag for status bar enablement
bool _statusBarEnabled;
bool _mouseEventsEnabled;
};
} // namespace ImageViewGui