~ubuntu-branches/ubuntu/maverick/kdemultimedia/maverick-proposed

« back to all changes in this revision

Viewing changes to kmix/viewsliders.cpp

  • Committer: Bazaar Package Importer
  • Author(s): Jonathan Thomas
  • Date: 2010-05-25 08:30:50 UTC
  • mfrom: (1.2.43 upstream)
  • Revision ID: james.westby@ubuntu.com-20100525083050-8o3otjqjwsnzjb6h
Tags: 4:4.4.80-0ubuntu1
* New upstream beta release:
  - Bump kde-sc-dev-latest to 4.4.80
  - Update various .install files
  - Refresh all patches
  - Add build-depends on libswscale-dev, libavcodec-dev, and libavformat-dev
    for new video thumbnailer backends
  - Add a new ffmpegthumbs package for the new video thumbnailer
* Switch to source format 3.0 (quilt):
  - Bump debhelper build-depend version to 7.3.16 or greater

Show diffs side-by-side

added added

removed removed

Lines of Context:
34
34
#include <QWidget>
35
35
#include <QVBoxLayout>
36
36
#include <QHBoxLayout>
 
37
//#include <QFormLayout>
37
38
 
38
39
 
39
40
 
50
51
      _layoutSliders = new QVBoxLayout();
51
52
      _layoutSliders->setAlignment(Qt::AlignVCenter|Qt::AlignLeft);
52
53
      _layoutMDW->addItem( _layoutSliders );
53
 
      _layoutEnum = new QVBoxLayout(); // always vertical!
54
 
      _layoutMDW->addItem( _layoutEnum );
55
54
   }
56
 
   else {
 
55
   else
 
56
   {
57
57
      _layoutMDW = new QHBoxLayout(this);
58
58
      _layoutMDW->setAlignment(Qt::AlignLeft|Qt::AlignTop);
59
59
      _layoutSliders = new QHBoxLayout();
60
60
      _layoutSliders->setAlignment(Qt::AlignHCenter|Qt::AlignTop);
61
61
      _layoutMDW->addItem( _layoutSliders );
62
62
      // Place enums in an own box right from the sliders.
63
 
      _layoutEnum = new QVBoxLayout();
64
 
      _layoutMDW->addItem( _layoutEnum );
65
63
   }
 
64
  _layoutEnum = new QVBoxLayout(); // new QFormLayout();
 
65
  _layoutMDW->addLayout( _layoutEnum );
 
66
 
66
67
   _layoutMDW->setSpacing(0);
67
68
    setMixSet();
68
69
}
69
70
 
70
 
ViewSliders::~ViewSliders() {
 
71
ViewSliders::~ViewSliders()
 
72
{
71
73
  qDeleteAll(_separators);
72
74
}
73
75
 
87
89
               this,         // parent
88
90
               this          // View widget
89
91
      );
90
 
      _layoutEnum->addWidget(mdw);
 
92
          _layoutEnum->addWidget(mdw);
91
93
   } // an enum
92
94
   else {
93
95
      // add a separator before the device
119
121
}
120
122
 
121
123
 
122
 
void ViewSliders::setMixSet()
 
124
void ViewSliders::_setMixSet()
123
125
{
124
 
    const MixSet& mixset = _mixer->getMixSet();
 
126
   const MixSet& mixset = _mixer->getMixSet();
125
127
 
 
128
   if ( _mixer->dynamic() ) {
 
129
      // We will be recreating our sliders, so make sure we trash all the separators too.
 
130
      qDeleteAll(_separators);
 
131
      _separators.clear();
 
132
      // Our _layoutSliders now should only contain spacer widgets from the addSpacing() calls in add() above.
 
133
      // We need to trash those too otherwise all sliders gradually migrate away from the edge :p
 
134
      QLayoutItem *li;
 
135
      while ( ( li = _layoutSliders->takeAt(0) ) )
 
136
         delete li;
 
137
   }
126
138
 
127
139
   // This method iterates the controls from the Profile
128
140
   // Each control is checked, whether it is also contained in the mixset, and
135
147
      if ( control->tab == id() ) {
136
148
         // The TabName of the control matches this View name (!! attention: Better use some ID, due to i18n() )
137
149
         bool isUsed = false;
138
 
   
 
150
 
139
151
         QRegExp idRegexp(control->id);
140
152
         //kDebug(67100) << "ViewSliders::setMixSet(): Check GUIProfile id==" << control->id << "\n";
141
153
         // The following for-loop could be simplified by using a std::find_if
187
199
 
188
200
void ViewSliders::configurationUpdate() {
189
201
   // Adjust height of top part by setting it to the maximum of all mdw's
190
 
   int topPartExtent = 0;
191
 
   int bottomPartExtent = 0;
 
202
   bool haveCaptureLEDs = false;
 
203
   int labelExtent = 0;
 
204
   bool haveMuteButtons = false;
192
205
   for ( int i=0; i<_mdws.count(); i++ ) {
193
206
      MDWSlider* mdw = ::qobject_cast<MDWSlider*>(_mdws[i]);
194
207
      if ( mdw && mdw->isVisibleTo(this) ) {
195
 
         if ( mdw->playbackExtentHint() > topPartExtent ) topPartExtent = mdw->playbackExtentHint();
196
 
         if ( mdw->captureExtentHint() > bottomPartExtent ) bottomPartExtent = mdw->captureExtentHint();
 
208
                 if ( mdw->labelExtentHint() > labelExtent ) labelExtent = mdw->labelExtentHint();
 
209
                 haveCaptureLEDs = haveCaptureLEDs || mdw->hasCaptureLED();
 
210
                 haveMuteButtons = haveMuteButtons || mdw->hasMuteButton();
197
211
      }
198
212
   }
199
213
   //kDebug(67100) << "topPartExtent is " << topPartExtent;
201
215
   for ( int i=0; i<_mdws.count(); i++ ) {
202
216
      MDWSlider* mdw = ::qobject_cast<MDWSlider*>(_mdws[i]);
203
217
      if ( mdw ) {
204
 
         mdw->setPlaybackExtent(topPartExtent);
205
 
         mdw->setCaptureExtent(bottomPartExtent);
 
218
                 mdw->setLabelExtent(labelExtent);
 
219
                 mdw->setMuteButtonSpace(haveMuteButtons);
 
220
                 mdw->setCaptureLEDSpace(haveCaptureLEDs);
206
221
         bool thisControlIsVisible = mdw->isVisibleTo(this);
207
222
         bool showSeparator = ( firstVisibleControlFound && thisControlIsVisible);
208
223
         if ( _separators.contains( mdw->mixDevice()->id() )) {