optionsWidget.cc 4.04 KB
Newer Older
1
2
3
4
5
6
7
8
9
10
11
12
13
14
//=============================================================================
//
//                               OpenFlipper
//        Copyright (C) 2008 by Computer Graphics Group, RWTH Aachen
//                           www.openflipper.org
//
//-----------------------------------------------------------------------------
//
//                                License
//
//  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.
Jan Möbius's avatar
Jan Möbius committed
15
//
16
17
18
19
//  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.
Jan Möbius's avatar
Jan Möbius committed
20
//
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
//  You should have received a copy of the GNU Lesser General Public License
//  along with OpenFlipper.  If not, see <http://www.gnu.org/licenses/>.
//
//-----------------------------------------------------------------------------
//
//   $Revision: 1909 $
//   $Author: wilden $
//   $Date: 2008-06-03 18:45:21 +0200 (Tue, 03 Jun 2008) $
//
//=============================================================================




#include "optionsWidget.hh"
#include <iostream>
#include <OpenFlipper/common/GlobalOptions.hh>

Dirk Wilden's avatar
Dirk Wilden committed
39
40
41


OptionsWidget::OptionsWidget(std::vector<PluginInfo>& _plugins, std::vector<KeyBinding>& _core, QWidget *parent)
Jan Möbius's avatar
Jan Möbius committed
42
43
44
45
  : QWidget(parent),
    plugins_(_plugins),
    coreKeys_(_core)

46
47
{
  setupUi(this);
Dirk Wilden's avatar
Dirk Wilden committed
48

49
50
51
52
53
  connect(applyButton,SIGNAL(clicked()),this,SLOT(slotApply()));
  connect(cancelButton,SIGNAL(clicked()),this,SLOT(slotCancel()));
}

void OptionsWidget::showEvent ( QShowEvent * event ) {
Dirk Wilden's avatar
Dirk Wilden committed
54

Jan Möbius's avatar
Jan Möbius committed
55
  //general
Dirk Wilden's avatar
Dirk Wilden committed
56
57
58
59
60
61
62
63
64
65
  fullscreen->setChecked( OpenFlipper::Options::fullScreen() );
  splash->setChecked( OpenFlipper::Options::splash() );
  toolbox->setChecked( !OpenFlipper::Options::hideToolbox() );
  logger->setChecked( !OpenFlipper::Options::hideLogger() );

  //viewer
  backfaceCulling->setChecked( OpenFlipper::Options::backfaceCulling() );
  wZoomFactor->setText( QString::number(OpenFlipper::Options::wheelZoomFactor(), 'f') );
  wZoomFactorShift->setText( QString::number(OpenFlipper::Options::wheelZoomFactorShift(), 'f') );

Dirk Wilden's avatar
Dirk Wilden committed
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
  //keyBindings
  keyTree->setColumnCount ( 2 );

  QStringList headerdata;
  headerdata << "Action" << "Shortcut";
  keyTree->setHeaderLabels(headerdata);

  //add Core Keys
  QTreeWidgetItem * core = new QTreeWidgetItem(keyTree, QStringList("CoreWidget"));

  QList<QTreeWidgetItem *> keys;

  for (uint i=0; i < coreKeys_.size(); i++){
    QStringList row;
    row << coreKeys_[i].description << QString::number(coreKeys_[i].key);
    keys.append(new QTreeWidgetItem(core, row));
  }

  core->addChildren(keys);
  keyTree->addTopLevelItem( core );



  QList<QTreeWidgetItem *> plugins;

  for (uint i=0; i < plugins_.size(); i++){
    plugins.append(new QTreeWidgetItem(keyTree, QStringList( plugins_[i].name )));

    QList<QTreeWidgetItem *> keys;

    for (int k=0; k < plugins_[i].keys.count(); k++){
      QStringList row;
      row << plugins_[i].keys[k].description << QString::number(plugins_[i].keys[k].key);
      keys.append(new QTreeWidgetItem(plugins[i], row));
    }

    plugins[i]->addChildren(keys);

  }

  keyTree->addTopLevelItems( plugins );

  keyTree->resizeColumnToContents(0);
  keyTree->resizeColumnToContents(1);
110
111
112
}

void OptionsWidget::slotApply() {
Dirk Wilden's avatar
Dirk Wilden committed
113

Jan Möbius's avatar
Jan Möbius committed
114
  //general
Dirk Wilden's avatar
Dirk Wilden committed
115
116
117
118
119
120
121
122
123
124
  OpenFlipper::Options::fullScreen( fullscreen->isChecked() );
  OpenFlipper::Options::splash( splash->isChecked() );
  OpenFlipper::Options::hideToolbox( !toolbox->isChecked() );
  OpenFlipper::Options::hideLogger( !logger->isChecked() );

  //viewer
  OpenFlipper::Options::backfaceCulling( backfaceCulling->isChecked() );
  OpenFlipper::Options::wheelZoomFactor( wZoomFactor->text().toDouble() );
  OpenFlipper::Options::wheelZoomFactorShift( wZoomFactorShift->text().toDouble() );

125
  emit applyOptions();
Dirk Wilden's avatar
Dirk Wilden committed
126
  emit saveOptions();
127
128
129
130
131
132
  hide();
}

void OptionsWidget::slotCancel() {
  hide();
}