ColorPlugin.cc 21.5 KB
Newer Older
1
/*===========================================================================*\
Jan Möbius's avatar
Jan Möbius committed
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32
*                                                                            *
*                              OpenFlipper                                   *
*      Copyright (C) 2001-2010 by Computer Graphics Group, RWTH Aachen       *
*                           www.openflipper.org                              *
*                                                                            *
*--------------------------------------------------------------------------- *
*  This file is part of OpenFlipper.                                         *
*                                                                            *
*  OpenFlipper is free software: you can redistribute it and/or modify       *
*  it under the terms of the GNU Lesser General Public License as            *
*  published by the Free Software Foundation, either version 3 of            *
*  the License, or (at your option) any later version with the               *
*  following exceptions:                                                     *
*                                                                            *
*  If other files instantiate templates or use macros                        *
*  or inline functions from this file, or you compile this file and          *
*  link it with other files to produce an executable, this file does         *
*  not by itself cause the resulting executable to be covered by the         *
*  GNU Lesser General Public License. This exception does not however        *
*  invalidate any other reasons why the executable file might be             *
*  covered by the GNU Lesser General Public License.                         *
*                                                                            *
*  OpenFlipper is distributed in the hope that it will be useful,            *
*  but WITHOUT ANY WARRANTY; without even the implied warranty of            *
*  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the             *
*  GNU Lesser General Public License for more details.                       *
*                                                                            *
*  You should have received a copy of the GNU LesserGeneral Public           *
*  License along with OpenFlipper. If not,                                   *
*  see <http://www.gnu.org/licenses/>.                                       *
*                                                                            *
33 34 35
\*===========================================================================*/

/*===========================================================================*\
Jan Möbius's avatar
Jan Möbius committed
36 37 38 39 40
*                                                                            *
*   $Revision$                                                       *
*   $LastChangedBy$                                                *
*   $Date$                     *
*                                                                            *
41
\*===========================================================================*/
Jan Möbius's avatar
Jan Möbius committed
42

43 44 45 46 47
#include <QtGui>

#include "ColorPlugin.hh"

#include <iostream>
Jan Möbius's avatar
Jan Möbius committed
48
#include <ACG/GL/GLState.hh>
49 50 51 52

#include <OpenFlipper/BasePlugin/PluginFunctions.hh>
#include <OpenFlipper/common/GlobalOptions.hh>

53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85

//-----------------------------------------------------------------------------

/** \brief Constructor
 *
 */
ColorPlugin::ColorPlugin() : optionsWidget_(0)
{

  //set default values for colors

  backgroundColorDefault_      = ACG::GLState::default_clear_color;
  backgroundColorPaper_        = OpenMesh::Vec4f(1.00, 1.00, 1.00, 1.0);
  backgroundColorPresentation_ = OpenMesh::Vec4f(0.0, 0.188, 0.062, 1.0);
  baseColorDefault_      = ACG::GLState::default_base_color;
  baseColorPaper_        = OpenMesh::Vec4f(0.00, 0.00, 0.00, 1.0);
  baseColorPresentation_ = OpenMesh::Vec4f(0.88, 0.88,  0.188, 1.0);
  materialColorDefault_      = ACG::GLState::default_diffuse_color;
  materialColorPaper_        = OpenMesh::Vec4f(0.12, 0.76, 0.62, 1.0);
  materialColorPresentation_ = OpenMesh::Vec4f(0.941, 0.439, 0.31, 1.0);

  lineWidthDefault_      = 1.0;
  lineWidthPaper_        = 2.0;
  lineWidthPresentation_ = 1.0;

}


//-----------------------------------------------------------------------------

/** \brief initialize the toolbar and menubar
 *
 */
86 87
void ColorPlugin::pluginsInitialized()
{
Jan Möbius's avatar
Jan Möbius committed
88 89 90
  // =============================================================================
  // Add a Menu for color selection
  // =============================================================================
Jan Möbius's avatar
Jan Möbius committed
91
  QMenu *colorMenu = new QMenu(tr("&Color schemes"));
92 93
  QIcon icon;
  icon.addFile(OpenFlipper::Options::iconDirStr()+OpenFlipper::Options::dirSeparator()+"format-stroke-color.png");
Jan Möbius's avatar
Jan Möbius committed
94
  colorMenu->setIcon(icon);
95
  emit addMenubarAction(colorMenu->menuAction(), VIEWMENU );
Jan Möbius's avatar
Jan Möbius committed
96

Jan Möbius's avatar
Jan Möbius committed
97 98 99
  // =============================================================================
  // Add Menu entries
  // =============================================================================
Jan Möbius's avatar
Jan Möbius committed
100

Jan Möbius's avatar
Jan Möbius committed
101
  QAction* AC_set_Default_color = new QAction(tr("&Default colors"), this);
102
  AC_set_Default_color->setStatusTip(tr("Set Default Colors"));
Jan Möbius's avatar
Jan Möbius committed
103
  AC_set_Default_color->setWhatsThis(tr("Set colors to default colors"));
Jan Möbius's avatar
Jan Möbius committed
104
  icon.addFile(OpenFlipper::Options::iconDirStr()+OpenFlipper::Options::dirSeparator()+"color-default.png");
105 106 107
  AC_set_Default_color->setIcon(icon);
  connect(AC_set_Default_color, SIGNAL(triggered()), this, SLOT(setDefaultColor()));
  colorMenu->addAction(AC_set_Default_color);
Jan Möbius's avatar
Jan Möbius committed
108

109 110
  QAction* AC_set_Presentation_color = new QAction(tr("&Presentation colors"), this);
  AC_set_Presentation_color->setStatusTip(tr("Set Presentation Colors"));
Jan Möbius's avatar
Jan Möbius committed
111
  AC_set_Presentation_color->setWhatsThis(tr("Set colors to presentation colors"));
Jan Möbius's avatar
Jan Möbius committed
112
  icon.addFile(OpenFlipper::Options::iconDirStr()+OpenFlipper::Options::dirSeparator()+"color-powerpoint.png");
113 114 115
  AC_set_Presentation_color->setIcon(icon);
  connect(AC_set_Presentation_color, SIGNAL(triggered()), this, SLOT(setPresentationColor()));
  colorMenu->addAction(AC_set_Presentation_color);
Jan Möbius's avatar
Jan Möbius committed
116

Jan Möbius's avatar
Jan Möbius committed
117
  QAction* AC_set_Paper_color = new QAction(tr("&Paper colors"), this);
118
  AC_set_Paper_color->setStatusTip(tr("Set Paper Colors"));
Jan Möbius's avatar
Jan Möbius committed
119
  AC_set_Paper_color->setWhatsThis(tr("Set colors to colors for papers"));
Jan Möbius's avatar
Jan Möbius committed
120
  icon.addFile(OpenFlipper::Options::iconDirStr()+OpenFlipper::Options::dirSeparator()+"color-paper.png");
121 122 123
  AC_set_Paper_color->setIcon(icon);
  connect(AC_set_Paper_color, SIGNAL(triggered()), this, SLOT(setPaperColor()));
  colorMenu->addAction(AC_set_Paper_color);
Jan Möbius's avatar
Jan Möbius committed
124

Jan Möbius's avatar
Jan Möbius committed
125
  // =============================================================================
Jan Möbius's avatar
Jan Möbius committed
126
  // Create Tool bar with same contents
Jan Möbius's avatar
Jan Möbius committed
127 128
  // =============================================================================

Jan Möbius's avatar
Jan Möbius committed
129
  QToolBar* toolbar = new QToolBar(tr("Color Toolbar"));
130
  toolbar->addAction(AC_set_Default_color);
131
  toolbar->addAction(AC_set_Presentation_color);
132 133
  toolbar->addAction(AC_set_Paper_color);
  emit addToolbar( toolbar );
Jan Möbius's avatar
Jan Möbius committed
134

135 136
}

137 138 139 140 141 142

//-----------------------------------------------------------------------------

/** \brief set the defaultColor preset
 *
 */
143
void ColorPlugin::setDefaultColor() {
Jan Möbius's avatar
Jan Möbius committed
144

Jan Möbius's avatar
Jan Möbius committed
145 146 147
  // =============================================================================
  // Give user feedback
  // =============================================================================
148
  emit scriptInfo( "setDefaultColor()" );
Jan Möbius's avatar
Jan Möbius committed
149
  emit showStatusMessage( tr("Set to default Colors"), 4000 );
Jan Möbius's avatar
Jan Möbius committed
150

Jan Möbius's avatar
Jan Möbius committed
151 152
  // =============================================================================
  // Define the new colors
Jan Möbius's avatar
Jan Möbius committed
153
  // =============================================================================
154
  OpenMesh::Vec4f ambient_color,
Jan Möbius's avatar
Jan Möbius committed
155
                  diffuse_color,
156
                  specular_color;
Jan Möbius's avatar
Jan Möbius committed
157

158 159 160
  ambient_color  = 0.2f * materialColorDefault_;
  diffuse_color  = 0.6f * materialColorDefault_;
  specular_color = 0.8f * materialColorDefault_;
Jan Möbius's avatar
Jan Möbius committed
161

Jan Möbius's avatar
Jan Möbius committed
162
  // Set background color
163
  PluginFunctions::setBackColor( backgroundColorDefault_ );
164

Jan Möbius's avatar
Jan Möbius committed
165 166
  // =============================================================================
  // Apply to all objects
Jan Möbius's avatar
Jan Möbius committed
167
  // =============================================================================
168
  for ( PluginFunctions::ObjectIterator o_it(PluginFunctions::ALL_OBJECTS) ; o_it != PluginFunctions::objectsEnd(); ++o_it) {
169
    MaterialNode* mat = o_it->materialNode();
170
    mat->set_base_color( baseColorDefault_ );
171 172 173
    mat->set_ambient_color(ambient_color);
    mat->set_diffuse_color(diffuse_color);
    mat->set_specular_color(specular_color);
174
    mat->set_line_width( lineWidthDefault_ );
175
  }
Jan Möbius's avatar
Jan Möbius committed
176

177
  emit updateView();
178 179
}

180 181 182 183 184 185 186

//-----------------------------------------------------------------------------

/** \brief Set the presentation color preset
 *
 */
void ColorPlugin::setPresentationColor() {
Jan Möbius's avatar
Jan Möbius committed
187

Jan Möbius's avatar
Jan Möbius committed
188 189 190
  // =============================================================================
  // Give user feedback
  // =============================================================================
191
  emit scriptInfo( "setPresentationColor()" );
Jan Möbius's avatar
Jan Möbius committed
192
  emit showStatusMessage( tr("Set to Presentation Colors"), 4000 );
Jan Möbius's avatar
Jan Möbius committed
193

Jan Möbius's avatar
Jan Möbius committed
194 195
  // =============================================================================
  // Define the new colors
Jan Möbius's avatar
Jan Möbius committed
196
  // =============================================================================
197
  OpenMesh::Vec4f ambient_color,
Jan Möbius's avatar
Jan Möbius committed
198
                  diffuse_color,
199 200 201 202 203
                  specular_color;

  ambient_color  = 0.2f * materialColorPresentation_;
  diffuse_color  = 0.6f * materialColorPresentation_;
  specular_color = 0.8f * materialColorPresentation_;
Jan Möbius's avatar
Jan Möbius committed
204

Jan Möbius's avatar
Jan Möbius committed
205
  // Set background color
206
  PluginFunctions::setBackColor( backgroundColorPresentation_ );
207

Jan Möbius's avatar
Jan Möbius committed
208 209 210
  // =============================================================================
  // Apply to all objects
  // =============================================================================
211
  for ( PluginFunctions::ObjectIterator o_it(PluginFunctions::ALL_OBJECTS) ; o_it != PluginFunctions::objectsEnd(); ++o_it) {
Jan Möbius's avatar
Jan Möbius committed
212
    MaterialNode* mat = o_it->materialNode();
213
    mat->set_base_color( baseColorPresentation_ );
Jan Möbius's avatar
Jan Möbius committed
214 215 216
    mat->set_ambient_color(ambient_color);
    mat->set_diffuse_color(diffuse_color);
    mat->set_specular_color(specular_color);
217
    mat->set_line_width( lineWidthPresentation_ );
Jan Möbius's avatar
Jan Möbius committed
218
  }
Jan Möbius's avatar
Jan Möbius committed
219

220
  emit updateView();
221 222
}

223 224 225 226 227 228

//-----------------------------------------------------------------------------

/** \brief set the paperColor Preset
 *
 */
229
void ColorPlugin::setPaperColor() {
Jan Möbius's avatar
Jan Möbius committed
230

Jan Möbius's avatar
Jan Möbius committed
231 232 233
  // =============================================================================
  // Give user feedback
  // =============================================================================
234
  emit scriptInfo( "setPaperColor()" );
Jan Möbius's avatar
Jan Möbius committed
235
  emit showStatusMessage( tr("Set to Paper Colors"), 4000 );
Jan Möbius's avatar
Jan Möbius committed
236

Jan Möbius's avatar
Jan Möbius committed
237 238
  // =============================================================================
  // Define the new colors
Jan Möbius's avatar
Jan Möbius committed
239
  // =============================================================================
240
  OpenMesh::Vec4f ambient_color,
Jan Möbius's avatar
Jan Möbius committed
241
                  diffuse_color,
242 243 244 245 246
                  specular_color;

  ambient_color  = 0.2f * materialColorPaper_;
  diffuse_color  = 0.5f * materialColorPaper_;
  specular_color = 0.8f * materialColorPaper_;
Jan Möbius's avatar
Jan Möbius committed
247

Jan Möbius's avatar
Jan Möbius committed
248
  // Set background color
249
  PluginFunctions::setBackColor( backgroundColorPaper_ );
Jan Möbius's avatar
Jan Möbius committed
250

Jan Möbius's avatar
Jan Möbius committed
251 252 253
  // =============================================================================
  // Apply to all objects
  // =============================================================================
254
  for ( PluginFunctions::ObjectIterator o_it(PluginFunctions::ALL_OBJECTS) ; o_it != PluginFunctions::objectsEnd(); ++o_it) {
Jan Möbius's avatar
Jan Möbius committed
255
    MaterialNode* mat = o_it->materialNode();
256
    mat->set_base_color( baseColorPaper_ );
Jan Möbius's avatar
Jan Möbius committed
257 258 259
    mat->set_ambient_color(ambient_color);
    mat->set_diffuse_color(diffuse_color);
    mat->set_specular_color(specular_color);
260
    mat->set_line_width( lineWidthPaper_ );
Jan Möbius's avatar
Jan Möbius committed
261
  }
Jan Möbius's avatar
Jan Möbius committed
262

263
  emit updateView();
264 265
}

266

267 268
//-----------------------------------------------------------------------------

269 270 271 272
/** \brief Set the backgroundColor
 *
 * @param _color a color
 */
273
void ColorPlugin::setBackgroundColor( Vector _color ) {
Jan Möbius's avatar
Jan Möbius committed
274
  emit scriptInfo( "setBackgroundColor()" );
Jan Möbius's avatar
Jan Möbius committed
275
  emit showStatusMessage( tr("Set background color"), 4000 );
Jan Möbius's avatar
Jan Möbius committed
276

277 278 279 280 281
  ACG::Vec4f color;
  color[0] = _color[0];
  color[1] = _color[1];
  color[2] = _color[2];
  color[3] = 1.0;
Jan Möbius's avatar
Jan Möbius committed
282

283 284 285 286
  PluginFunctions::setBackColor(color);
}


287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562
//-----------------------------------------------------------------------------

/** \brief Generate an icon with given color
 *
 * @param _color a color vector
 * @return an icon
 */
QIcon ColorPlugin::generateIcon(OpenMesh::Vec4f _color){

  QColor color;
  color.setRgbF(_color[0], _color[1], _color[2], _color[3] );

  QPixmap pic(32,32);
  pic.fill( color );

  return QIcon( pic );
}


//-----------------------------------------------------------------------------

/** \brief Generate an icon with given color
 *
 * @param _color a color
 * @return the icon
 */
QIcon ColorPlugin::generateIcon(QRgb _color){

  QColor color(_color);

  QPixmap pic(32,32);
  pic.fill( color );

  return QIcon( pic );
}


//-----------------------------------------------------------------------------

/** \brief Get the color of an icon
 *
 * @param _icon an icon
 * @return its color
 */
QRgb ColorPlugin::getIconColor(QIcon _icon){

  QRgb rgb = _icon.pixmap(32,32).toImage().pixel(0,0);

  return rgb;
}


//-----------------------------------------------------------------------------

/** \brief convert an icons color to a Vec4f
 *
 * @param _icon an icon
 * @param _color reference to a color vector
 */
void ColorPlugin::setNewColor(QIcon _icon, OpenMesh::Vec4f& _color){

  QColor color( getIconColor(_icon) );

  _color[0] = color.redF();
  _color[1] = color.greenF();
  _color[2] = color.blueF();
  _color[3] = color.alphaF();
}

//-----------------------------------------------------------------------------

/** \brief show a colorDialog and store the chosen value in the icon of the sender()
 *
 */
void ColorPlugin::getColorDialog(){

  QPushButton* button = dynamic_cast< QPushButton* > ( sender() );

  if (button != 0){

    bool ok;

    QRgb newColor = QColorDialog::getRgba ( getIconColor( button->icon() ) , &ok );

    if (ok)
      button->setIcon( generateIcon(newColor) );

  }
}


//-----------------------------------------------------------------------------

/** \brief generate an optionsWidget to change color presets
 *
 * @param _widget reference to the generated widget
 * @return return true if the widget was successfully generated
 */
bool ColorPlugin::initializeOptionsWidget(QWidget*& _widget){

  if (optionsWidget_ == 0){

    optionsWidget_ = new ColorOptions();

    //connect the signals
    connect(optionsWidget_->backgroundDefault,      SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );
    connect(optionsWidget_->backgroundPaper,        SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );
    connect(optionsWidget_->backgroundPresentation, SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );

    connect(optionsWidget_->baseDefault,      SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );
    connect(optionsWidget_->basePaper,        SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );
    connect(optionsWidget_->basePresentation, SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );

    connect(optionsWidget_->materialDefault,      SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );
    connect(optionsWidget_->materialPaper,        SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );
    connect(optionsWidget_->materialPresentation, SIGNAL( clicked() ), this, SLOT( getColorDialog() ) );
  }

  //put values into the optionsWidget
  optionsWidget_->backgroundDefault->setIcon( generateIcon( backgroundColorDefault_ ) );
  optionsWidget_->backgroundPaper->setIcon( generateIcon( backgroundColorPaper_ ) );
  optionsWidget_->backgroundPresentation->setIcon( generateIcon( backgroundColorPresentation_ ) );

  optionsWidget_->baseDefault->setIcon( generateIcon( baseColorDefault_ ) );
  optionsWidget_->basePaper->setIcon( generateIcon( baseColorPaper_ ) );
  optionsWidget_->basePresentation->setIcon( generateIcon( baseColorPresentation_ ) );

  optionsWidget_->materialDefault->setIcon( generateIcon( materialColorDefault_ ) );
  optionsWidget_->materialPaper->setIcon( generateIcon( materialColorPaper_ ) );
  optionsWidget_->materialPresentation->setIcon( generateIcon( materialColorPresentation_ ) );

  optionsWidget_->lineDefault->setValue( lineWidthDefault_ );
  optionsWidget_->linePaper->setValue( lineWidthPaper_ );
  optionsWidget_->linePresentation->setValue( lineWidthPresentation_ );

  _widget = optionsWidget_;

  return true;
}


//-----------------------------------------------------------------------------

/** \brief Store the changed color presets when the apply Button was hit
 *
 */
void ColorPlugin::applyOptions(){

  setNewColor(optionsWidget_->backgroundDefault->icon(),      backgroundColorDefault_);
  setNewColor(optionsWidget_->backgroundPaper->icon(),        backgroundColorPaper_);
  setNewColor(optionsWidget_->backgroundPresentation->icon(), backgroundColorPresentation_);

  setNewColor(optionsWidget_->baseDefault->icon(),      baseColorDefault_);
  setNewColor(optionsWidget_->basePaper->icon(),        baseColorPaper_);
  setNewColor(optionsWidget_->basePresentation->icon(), baseColorPresentation_);

  setNewColor(optionsWidget_->materialDefault->icon(),      materialColorDefault_);
  setNewColor(optionsWidget_->materialPaper->icon(),        materialColorPaper_);
  setNewColor(optionsWidget_->materialPresentation->icon(), materialColorPresentation_);

  lineWidthDefault_      = optionsWidget_->lineDefault->value();
  lineWidthPaper_        = optionsWidget_->linePaper->value();
  lineWidthPresentation_ = optionsWidget_->linePresentation->value();
}


//-----------------------------------------------------------------------------

/** \brief convert between uint and Vec4f
 *
 * @param _color given color
 * @param _vector color vector to convert to
 */
void ColorPlugin::convertColor(uint _color, OpenMesh::Vec4f& _vector){

  QColor color;
  color.setRgba( _color );

  _vector[0] = color.redF();
  _vector[1] = color.greenF();
  _vector[2] = color.blueF();
  _vector[3] = color.alphaF();
}


//-----------------------------------------------------------------------------

/** \brief convert between uint and Vec4f
 *
 * @param _vector reference to a color vector
 * @return same color as uint
 */
uint ColorPlugin::convertColor(OpenMesh::Vec4f& _vector){

  QColor color;
  color.setRgbF(_vector[0], _vector[1], _vector[2], _vector[3] );

  return (uint) color.rgba();
}


//-----------------------------------------------------------------------------

/** \brief read color preset from ini file
 *
 * @param _ini file to read from
 */
void ColorPlugin::loadIniFileOptions(INIFile& _ini){

  if ( _ini.section_exists("ColorPlugin") ){

    uint color = 0;

    if ( _ini.get_entry( color, "ColorPlugin" , "backgroundColorDefault") )
      convertColor( color, backgroundColorDefault_ );
    if ( _ini.get_entry( color, "ColorPlugin" , "backgroundColorPaper") )
      convertColor( color, backgroundColorPaper_ );
    if ( _ini.get_entry( color, "ColorPlugin" , "backgroundColorPresentation") )
      convertColor( color, backgroundColorPresentation_ );

    if ( _ini.get_entry( color, "ColorPlugin" , "baseColorDefault") )
      convertColor( color, baseColorDefault_ );
    if ( _ini.get_entry( color, "ColorPlugin" , "baseColorPaper") )
      convertColor( color, baseColorPaper_ );
    if ( _ini.get_entry( color, "ColorPlugin" , "baseColorPresentation") )
      convertColor( color, baseColorPresentation_ );

    if ( _ini.get_entry( color, "ColorPlugin" , "materialColorDefault") )
      convertColor( color, materialColorDefault_ );
    if ( _ini.get_entry( color, "ColorPlugin" , "materialColorPaper") )
      convertColor( color, materialColorPaper_ );
    if ( _ini.get_entry( color, "ColorPlugin" , "materialColorPresentation") )
      convertColor( color, materialColorPresentation_ );

    double width;

    if ( _ini.get_entry( width, "ColorPlugin" , "lineWidthDefault") )
      lineWidthDefault_ = width;
    if ( _ini.get_entry( width, "ColorPlugin" , "lineWidthPaper") )
      lineWidthPaper_ = width;
    if ( _ini.get_entry( width, "ColorPlugin" , "lineWidthPresentation") )
      lineWidthPresentation_ = width;

  }
}


//-----------------------------------------------------------------------------

/** \brief Store current color preset to an ini file
 *
 * @param _ini file to store color presets in
 */
void ColorPlugin::saveIniFileOptions(INIFile& _ini){
std::cerr << "save to ini file\n";
  if ( !_ini.section_exists("ColorPlugin") )
    _ini.add_section("ColorPlugin");

  _ini.add_entry("ColorPlugin","backgroundColorDefault",      convertColor( backgroundColorDefault_ )  );
  _ini.add_entry("ColorPlugin","backgroundColorPaper",        convertColor( backgroundColorPaper_ )  );
  _ini.add_entry("ColorPlugin","backgroundColorPresentation", convertColor( backgroundColorPresentation_ )  );

  _ini.add_entry("ColorPlugin","baseColorDefault",      convertColor( baseColorDefault_ )  );
  _ini.add_entry("ColorPlugin","baseColorPaper",        convertColor( baseColorPaper_ )  );
  _ini.add_entry("ColorPlugin","baseColorPresentation", convertColor( baseColorPresentation_ )  );

  _ini.add_entry("ColorPlugin","materialColorDefault",      convertColor( materialColorDefault_ )  );
  _ini.add_entry("ColorPlugin","materialColorPaper",        convertColor( materialColorPaper_ )  );
  _ini.add_entry("ColorPlugin","materialColorPresentation", convertColor( materialColorPresentation_ )  );

  _ini.add_entry("ColorPlugin","lineWidthDefault",      lineWidthDefault_ );
  _ini.add_entry("ColorPlugin","lineWidthPaper",        lineWidthPaper_   );
  _ini.add_entry("ColorPlugin","lineWidthPresentation", lineWidthPresentation_ );
}


563 564
Q_EXPORT_PLUGIN2( colorplugin , ColorPlugin );