Index: mitk/CoreUI/Qmitk/QmitkStdMultiWidget.h =================================================================== --- mitk/CoreUI/Qmitk/QmitkStdMultiWidget.h (revision 28789) +++ mitk/CoreUI/Qmitk/QmitkStdMultiWidget.h (working copy) @@ -87,6 +87,8 @@ mitk::SlicesSwiveller * GetSlicesSwiveller() const; + bool GetGradientBackgroundFlag() const; + void InitializeWidget(); /// called when the StdMultiWidget is closed to remove the 3 widget planes and the helper node from the DataStorage @@ -202,7 +204,7 @@ void ResetCrosshair(); -signals: + signals: void LeftMouseClicked(mitk::Point3D pointValue); void WheelMoved(QWheelEvent*); @@ -263,6 +265,7 @@ mitk::GradientBackground::Pointer m_GradientBackground2; mitk::GradientBackground::Pointer m_GradientBackground4; mitk::GradientBackground::Pointer m_GradientBackground3; + bool m_GradientBackgroundFlag; mitk::DisplayVectorInteractor::Pointer m_MoveAndZoomInteractor; mitk::CoordinateSupplier::Pointer m_LastLeftClickPositionSupplier; Index: mitk/CoreUI/Qmitk/QmitkStdMultiWidget.cpp =================================================================== --- mitk/CoreUI/Qmitk/QmitkStdMultiWidget.cpp (revision 28789) +++ mitk/CoreUI/Qmitk/QmitkStdMultiWidget.cpp (working copy) @@ -51,7 +51,8 @@ m_PlaneNode1(NULL), m_PlaneNode2(NULL), m_PlaneNode3(NULL), -m_Node(NULL) +m_Node(NULL), + m_GradientBackgroundFlag(true) { /*******************************/ //Create Widget manually @@ -377,6 +378,7 @@ mitkWidget4->GetRenderWindow() ); m_GradientBackground4->SetGradientColors(0.1,0.1,0.1,0.5,0.5,0.5); m_GradientBackground4->Enable(); +// m_GradientBackground4->SetGradientColors(1,1,1,1,1,1); // setup the department logo rendering m_LogoRendering1 = mitk::ManufacturerLogo::New(); @@ -1639,6 +1641,10 @@ return m_Layout; } +bool QmitkStdMultiWidget::GetGradientBackgroundFlag() const +{ + return m_GradientBackgroundFlag; +} void QmitkStdMultiWidget::EnableGradientBackground() { @@ -1648,6 +1654,7 @@ //m_GradientBackground2->Enable(); //m_GradientBackground3->Enable(); m_GradientBackground4->Enable(); + m_GradientBackgroundFlag = true; } @@ -1657,6 +1664,7 @@ //m_GradientBackground2->Disable(); //m_GradientBackground3->Disable(); m_GradientBackground4->Disable(); + m_GradientBackgroundFlag = false; } @@ -1853,6 +1861,7 @@ m_GradientBackground2->SetGradientColors(upper[0], upper[1], upper[2], lower[0], lower[1], lower[2]); m_GradientBackground3->SetGradientColors(upper[0], upper[1], upper[2], lower[0], lower[1], lower[2]); m_GradientBackground4->SetGradientColors(upper[0], upper[1], upper[2], lower[0], lower[1], lower[2]); + m_GradientBackgroundFlag = true; } @@ -2023,4 +2032,5 @@ m_RectangleRendering2->Disable(); m_RectangleRendering3->Disable(); m_RectangleRendering4->Disable(); -} \ No newline at end of file +} + Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/files.cmake =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/files.cmake (revision 28789) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/files.cmake (working copy) @@ -10,6 +10,7 @@ QmitkGeneralPreferencePage.cpp QmitkPreferencesDialog.cpp QmitkFunctionalityCoordinator.cpp + QmitkStdMultiWidgetPreferencePage.cpp ) SET(INTERNAL_CPP_FILES @@ -23,6 +24,7 @@ src/QmitkFileExitAction.h src/QmitkPreferencesDialog.h src/QmitkDnDFrameWidget.h + src/QmitkStdMultiWidgetPreferencePage.h ) # todo: add some qt style sheet resources Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetPreferencePage.cpp =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetPreferencePage.cpp (revision 0) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetPreferencePage.cpp (revision 0) @@ -0,0 +1,176 @@ + +/*========================================================================= + + Program: Medical Imaging & Interaction Toolkit + Language: C++ + Date: $Date$ + Version: $Revision: 18019 $ + + Copyright (c) German Cancer Research Center, Division of Medical and + Biological Informatics. All rights reserved. + See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + +#include "QmitkStdMultiWidgetPreferencePage.h" +#include "QmitkStdMultiWidgetEditor.h" +#include +#include +#include +#include +#include +#include +#include +#include +#include +#include + +#include +#include + +QmitkStdMultiWidgetPreferencePage::QmitkStdMultiWidgetPreferencePage() +: m_MainControl(0) +{ + +} + +void QmitkStdMultiWidgetPreferencePage::Init(berry::IWorkbench::Pointer ) +{ + +} + +void QmitkStdMultiWidgetPreferencePage::CreateQtControl(QWidget* parent) +{ + berry::IPreferencesService::Pointer prefService + = berry::Platform::GetServiceRegistry() + .GetServiceById(berry::IPreferencesService::ID); + + m_StdMultiWidgetPreferencesNode = prefService->GetSystemPreferences()->Node(QmitkStdMultiWidgetEditor::EDITOR_ID); + + m_MainControl = new QWidget(parent); + + // gradient background + m_UseGradientBackground = new QCheckBox; + QFormLayout *formLayout = new QFormLayout; + formLayout->addRow( "Use gradient background color: ", m_UseGradientBackground); + + m_ChangeBackgroundColors = new QCheckBox; + formLayout->addRow( "Change background colors: ", m_ChangeBackgroundColors); + + // color + m_ColorButton1 = new QPushButton; + m_ColorButton1->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum); + m_ColorButton2 = new QPushButton; + m_ColorButton2->setSizePolicy(QSizePolicy::Expanding,QSizePolicy::Minimum); + + QLabel* colorLabel1 = new QLabel("first color : "); + colorLabel1->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum); + QLabel* colorLabel2 = new QLabel("second color: "); + colorLabel2->setSizePolicy(QSizePolicy::Minimum,QSizePolicy::Minimum); + + QHBoxLayout* colorWidgetLayout = new QHBoxLayout; + colorWidgetLayout->setContentsMargins(4,4,4,4); + colorWidgetLayout->addWidget(colorLabel1); + colorWidgetLayout->addWidget(m_ColorButton1); + colorWidgetLayout->addWidget(colorLabel2); + colorWidgetLayout->addWidget(m_ColorButton2); + + QWidget* colorWidget = new QWidget; + colorWidget->setLayout(colorWidgetLayout); + + //spacer + QSpacerItem *spacer = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding); + QVBoxLayout* vBoxLayout = new QVBoxLayout; + vBoxLayout->addLayout(formLayout); + vBoxLayout->addWidget(colorWidget); + vBoxLayout->addSpacerItem(spacer); + m_MainControl->setLayout(vBoxLayout); + + QObject::connect( m_ColorButton1, SIGNAL( clicked() ) + , this, SLOT( FirstColorChanged() ) ); + + QObject::connect( m_ColorButton2, SIGNAL( clicked() ) + , this, SLOT( SecondColorChanged() ) ); + + this->Update(); +} + +QWidget* QmitkStdMultiWidgetPreferencePage::GetQtControl() const +{ + return m_MainControl; +} + +bool QmitkStdMultiWidgetPreferencePage::PerformOk() +{ + m_StdMultiWidgetPreferencesNode->PutBool("Use gradient background" + , m_UseGradientBackground->isChecked()); + m_StdMultiWidgetPreferencesNode->PutBool("Change background colors" + , m_ChangeBackgroundColors->isChecked()); + m_StdMultiWidgetPreferencesNode->PutByteArray("first background color", m_FirstColor); + m_StdMultiWidgetPreferencesNode->PutByteArray("second background color", m_SecondColor); +return true; +} + +void QmitkStdMultiWidgetPreferencePage::PerformCancel() +{ + +} + +void QmitkStdMultiWidgetPreferencePage::Update() +{ + m_UseGradientBackground->setChecked(m_StdMultiWidgetPreferencesNode->GetBool("Use gradient background", true)); + m_ChangeBackgroundColors->setChecked(m_StdMultiWidgetPreferencesNode->GetBool("Change background colors", false)); + +} + +void QmitkStdMultiWidgetPreferencePage::FirstColorChanged() +{ + QColor color = QColorDialog::getColor(); + m_ColorButton1->setAutoFillBackground(true); + QString styleSheet = "background-color:rgb("; + + styleSheet.append(QString::number(color.red())); + styleSheet.append(","); + styleSheet.append(QString::number(color.green())); + styleSheet.append(","); + styleSheet.append(QString::number(color.blue())); + styleSheet.append(")"); + m_ColorButton1->setStyleSheet(styleSheet); + + QStringList firstColor; + firstColor << color.name(); + m_FirstColor = firstColor.replaceInStrings(";","\\;").join(";").toStdString(); + } + +void QmitkStdMultiWidgetPreferencePage::SecondColorChanged() +{ + QColor color = QColorDialog::getColor(); + m_ColorButton2->setAutoFillBackground(true); + QString styleSheet = "background-color:rgb("; + + styleSheet.append(QString::number(color.red())); + styleSheet.append(","); + styleSheet.append(QString::number(color.green())); + styleSheet.append(","); + styleSheet.append(QString::number(color.blue())); + styleSheet.append(")"); + m_ColorButton2->setStyleSheet(styleSheet); + + QStringList secondColor; + secondColor << color.name(); + m_SecondColor = secondColor.replaceInStrings(";","\\;").join(";").toStdString(); + } + +void QmitkStdMultiWidgetPreferencePage::UseGradientBackgroundSelected() +{ + +} + +void QmitkStdMultiWidgetPreferencePage::ColorActionChanged() +{ + +} Property changes on: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetPreferencePage.cpp ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision" Added: svn:eol-style + native Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetPreferencePage.h =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetPreferencePage.h (revision 0) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetPreferencePage.h (revision 0) @@ -0,0 +1,82 @@ +/*========================================================================= + + Program: Medical Imaging & Interaction Toolkit + Language: C++ + Date: $Date$ + Version: $Revision: 16224 $ + + Copyright (c) German Cancer Research Center, Division of Medical and + Biological Informatics. All rights reserved. + See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + + +#ifndef QMITKSTDMULTIWIDGETPREFERENCEPAGE_H_ +#define QMITKSTDMULTIWIDGETPREFERENCEPAGE_H_ + +#include "berryIQtPreferencePage.h" +#include "berryIPreferences.h" +#include +#include "mitkQtCommonDll.h" + +class QWidget; +class QCheckBox; +class QPushButton; +class QWidgetAction; + +struct MITK_QT_COMMON QmitkStdMultiWidgetPreferencePage : public QObject, public berry::IQtPreferencePage +{ +Q_OBJECT + +public: + QmitkStdMultiWidgetPreferencePage(); + + void Init(berry::IWorkbench::Pointer workbench); + + void CreateQtControl(QWidget* widget); + + QWidget* GetQtControl() const; + + /// + /// \see IPreferencePage::PerformOk() + /// + virtual bool PerformOk(); + + /// + /// \see IPreferencePage::PerformCancel() + /// + virtual void PerformCancel(); + + /// + /// \see IPreferencePage::Update() + /// + virtual void Update(); + +public slots: + void FirstColorChanged(); + + void SecondColorChanged(); + + void UseGradientBackgroundSelected(); + + void ChangeBackgroundColorsSelected(); + + void ColorActionChanged(); + +protected: + QWidget* m_MainControl; + QCheckBox* m_UseGradientBackground; + QCheckBox* m_ChangeBackgroundColors; + QPushButton* m_ColorButton1; + QPushButton* m_ColorButton2; + std::string m_FirstColor; + std::string m_SecondColor; + berry::IPreferences::Pointer m_StdMultiWidgetPreferencesNode; +}; + +#endif /* QMITKSTDMULTIWIDGETPREFERENCEPAGE_H_ */ Property changes on: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetPreferencePage.h ___________________________________________________________________ Added: svn:keywords + "Author Date Id Revision" Added: svn:eol-style + native Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetEditor.cpp =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetEditor.cpp (revision 28789) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetEditor.cpp (working copy) @@ -27,6 +27,8 @@ #include +#include + const std::string QmitkStdMultiWidgetEditor::EDITOR_ID = "org.mitk.editors.stdmultiwidget"; QmitkStdMultiWidgetEditor::QmitkStdMultiWidgetEditor() @@ -110,6 +112,11 @@ berry::IPreferences::Pointer logoPref = prefService->GetSystemPreferences()->Node("DepartmentLogo"); std::string departmentLogoLocation = logoPref->Get("DepartmentLogo",""); + berry::IBerryPreferences::Pointer prefs + = (prefService->GetSystemPreferences()->Node(EDITOR_ID)).Cast(); + prefs->OnChanged.AddListener( berry::MessageDelegate1( this, &QmitkStdMultiWidgetEditor::OnPreferencesChanged ) ); + m_StdMultiWidget->SetDepartmentLogoPath(departmentLogoLocation.c_str()); m_StdMultiWidget->DisableDepartmentLogo(); m_StdMultiWidget->EnableDepartmentLogo(); @@ -165,3 +172,44 @@ if (m_StdMultiWidget != 0) m_StdMultiWidget->setFocus(); } + +void QmitkStdMultiWidgetEditor::OnPreferencesChanged(const berry::IBerryPreferences* prefs) +{ + bool useGradientBackground = prefs->GetBool("Use gradient background", true); + bool changeBackgroundColors = prefs->GetBool("Change background colors", false); + if (useGradientBackground && (!changeBackgroundColors)) + m_StdMultiWidget->EnableGradientBackground(); + else if (useGradientBackground && changeBackgroundColors) + { + float color = 255.0; + QString firstColorName = QString::fromStdString (prefs->GetByteArray("first background color", "")); + QColor firstColor(firstColorName); + mitk::Color upper; + upper[0] = firstColor.red() / color; + upper [1] = firstColor.green() / color; + upper[2] = firstColor.blue() / color; + + QString secondColorName = QString::fromStdString (prefs->GetByteArray("second background color", "")); + QColor secondColor(secondColorName); + mitk::Color lower; + lower[0] = secondColor.red() / color; + lower[1] = secondColor.green() / color; + lower[2] = secondColor.blue() / color; + m_StdMultiWidget->SetGradientBackgroundColors(upper, lower); + m_StdMultiWidget->EnableGradientBackground(); + }else if ((!useGradientBackground) && (!changeBackgroundColors)) + { + m_StdMultiWidget->DisableGradientBackground(); + }else if ((!useGradientBackground) && changeBackgroundColors) + { + float color = 255.0; + QString firstColorName = QString::fromStdString (prefs->GetByteArray("first background color", "")); + QColor firstColor(firstColorName); + mitk::Color upper; + upper[0] = firstColor.red() / color; + upper [1] = firstColor.green() / color; + upper[2] = firstColor.blue() / color; + m_StdMultiWidget->SetGradientBackgroundColors(upper, upper); + m_StdMultiWidget->EnableGradientBackground(); + } +} Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetEditor.h =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetEditor.h (revision 28789) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/src/QmitkStdMultiWidgetEditor.h (working copy) @@ -20,6 +20,11 @@ #include #include +#include +#include +#include +#include +#include #include #include @@ -47,6 +52,9 @@ bool IsDirty() const { return false; } bool IsSaveAsAllowed() const { return false; } +public slots: + void OnPreferencesChanged(const berry::IBerryPreferences*); + protected: void CreateQtPartControl(QWidget* parent); @@ -60,6 +68,8 @@ QmitkStdMultiWidget* m_StdMultiWidget; QmitkDnDFrameWidget* m_DndFrameWidget; + std::string m_FirstBackgroundColor; + std::string m_SecondBackgroundColor; }; #endif /*QMITKSTDMULTIWIDGETEDITOR_H_*/ Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/manifest.cpp =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/manifest.cpp (revision 28789) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/manifest.cpp (working copy) @@ -23,7 +23,9 @@ #include "src/QmitkStdMultiWidgetEditor.h" #include "src/internal/QmitkCommonActivator.h" #include "src/QmitkGeneralPreferencePage.h" +#include "src/QmitkStdMultiWidgetPreferencePage.h" + POCO_BEGIN_NAMED_MANIFEST(berryIEditorPart, berry::IEditorPart) POCO_EXPORT_CLASS(QmitkStdMultiWidgetEditor) POCO_END_MANIFEST @@ -34,4 +36,8 @@ POCO_BEGIN_NAMED_MANIFEST(berryIPreferencePage, berry::IPreferencePage) POCO_EXPORT_CLASS(QmitkGeneralPreferencePage) + POCO_EXPORT_CLASS(QmitkStdMultiWidgetPreferencePage) POCO_END_MANIFEST + + + Index: mitk/CoreUI/Bundles/org.mitk.gui.qt.common/plugin.xml =================================================================== --- mitk/CoreUI/Bundles/org.mitk.gui.qt.common/plugin.xml (revision 28789) +++ mitk/CoreUI/Bundles/org.mitk.gui.qt.common/plugin.xml (working copy) @@ -8,4 +8,10 @@ class="QmitkStdMultiWidgetEditor"> + + + + + +