/[svn]/qsampler/trunk/src/qsamplerChannelForm.ui
ViewVC logotype

Diff of /qsampler/trunk/src/qsamplerChannelForm.ui

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 824 by capela, Fri Dec 23 01:40:56 2005 UTC revision 3555 by capela, Tue Aug 13 10:19:32 2019 UTC
# Line 1  Line 1 
1  <!DOCTYPE UI><UI version="3.1" stdsetdef="1">  <?xml version="1.0" encoding="UTF-8"?>
2  <class>qsamplerChannelForm</class>  <ui version="4.0">
3  <comment>qsampler - A LinuxSampler Qt GUI Interface.   <author>rncbc aka Rui Nuno Capela</author>
4     <comment>qsampler - A LinuxSampler Qt GUI Interface.
5    
6     Copyright (C) 2004-2005, rncbc aka Rui Nuno Capela. All rights reserved.     Copyright (C) 2005-2019, rncbc aka Rui Nuno Capela. All rights reserved.
7       Copyright (C) 2007, Christian Schoenebeck
8    
9     This program is free software; you can redistribute it and/or     This program is free software; you can redistribute it and/or
10     modify it under the terms of the GNU General Public License     modify it under the terms of the GNU General Public License
# Line 14  Line 16 
16     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17     GNU General Public License for more details.     GNU General Public License for more details.
18    
19     You should have received a copy of the GNU General Public License     You should have received a copy of the GNU General Public License along
20     along with this program; if not, write to the Free Software     with this program; if not, write to the Free Software Foundation, Inc.,
21     Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.     51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
22    
23  </comment>  </comment>
24  <author>rncbc aka Rui Nuno Capela</author>   <class>qsamplerChannelForm</class>
25  <widget class="QDialog">   <widget class="QDialog" name="qsamplerChannelForm">
26      <property name="name">    <property name="geometry">
27          <cstring>qsamplerChannelForm</cstring>     <rect>
28      </property>      <x>0</x>
29      <property name="geometry">      <y>0</y>
30          <rect>      <width>480</width>
31              <x>0</x>      <height>460</height>
32              <y>0</y>     </rect>
33              <width>491</width>    </property>
34              <height>417</height>    <property name="focusPolicy">
35          </rect>     <enum>Qt::StrongFocus</enum>
36      </property>    </property>
37      <property name="sizePolicy">    <property name="windowTitle">
38          <sizepolicy>     <string>Qsampler: Channel</string>
39              <hsizetype>7</hsizetype>    </property>
40              <vsizetype>1</vsizetype>    <property name="windowIcon">
41              <horstretch>0</horstretch>     <iconset resource="qsampler.qrc">:/images/qsamplerChannel.png</iconset>
42              <verstretch>0</verstretch>    </property>
43      <layout class="QVBoxLayout">
44       <item>
45        <layout class="QGridLayout">
46         <property name="margin">
47          <number>8</number>
48         </property>
49         <item row="0" column="0">
50          <widget class="QLabel" name="EngineNameTextLabel">
51           <property name="minimumSize">
52            <size>
53             <width>62</width>
54             <height>0</height>
55            </size>
56           </property>
57           <property name="maximumSize">
58            <size>
59             <width>62</width>
60             <height>16777215</height>
61            </size>
62           </property>
63           <property name="text">
64            <string>&amp;Engine:</string>
65           </property>
66           <property name="alignment">
67            <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
68           </property>
69           <property name="wordWrap">
70            <bool>false</bool>
71           </property>
72           <property name="buddy">
73            <cstring>EngineNameComboBox</cstring>
74           </property>
75          </widget>
76         </item>
77         <item row="0" column="1">
78          <widget class="QComboBox" name="EngineNameComboBox">
79           <property name="sizePolicy">
80            <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
81             <horstretch>0</horstretch>
82             <verstretch>0</verstretch>
83          </sizepolicy>          </sizepolicy>
84      </property>         </property>
85      <property name="caption">         <property name="toolTip">
86          <string>Qsampler: Channel</string>          <string>Engine name</string>
87      </property>         </property>
88      <property name="icon">        </widget>
89          <pixmap>qsamplerChannel.png</pixmap>       </item>
90      </property>       <item row="0" column="2">
91      <property name="focusPolicy">        <spacer>
92          <enum>StrongFocus</enum>         <property name="orientation">
93      </property>          <enum>Qt::Horizontal</enum>
94      <grid>         </property>
95          <property name="name">         <property name="sizeType">
96              <cstring>unnamed</cstring>          <enum>QSizePolicy::Expanding</enum>
97          </property>         </property>
98          <widget class="QComboBox" row="0" column="1" rowspan="1" colspan="2">         <property name="sizeHint">
99              <property name="name">          <size>
100                  <cstring>EngineNameComboBox</cstring>           <width>20</width>
101              </property>           <height>20</height>
102              <property name="sizePolicy">          </size>
103                  <sizepolicy>         </property>
104                      <hsizetype>7</hsizetype>        </spacer>
105                      <vsizetype>0</vsizetype>       </item>
106                      <horstretch>0</horstretch>       <item row="1" column="0">
107                      <verstretch>0</verstretch>        <widget class="QLabel" name="InstrumentFileTextLabel">
108                  </sizepolicy>         <property name="text">
109              </property>          <string>Filena&amp;me:</string>
110              <property name="toolTip" stdset="0">         </property>
111                  <string>Engine name</string>         <property name="alignment">
112              </property>          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
113          </widget>         </property>
114          <widget class="QLabel" row="0" column="0">         <property name="wordWrap">
115              <property name="name">          <bool>false</bool>
116                  <cstring>EngineNameTextLabel</cstring>         </property>
117              </property>         <property name="buddy">
118              <property name="text">          <cstring>InstrumentFileComboBox</cstring>
119                  <string>&amp;Engine:</string>         </property>
120              </property>        </widget>
121              <property name="alignment">       </item>
122                  <set>AlignVCenter|AlignRight</set>       <item row="1" column="1" colspan="2">
123              </property>        <widget class="QComboBox" name="InstrumentFileComboBox">
124              <property name="buddy" stdset="0">         <property name="sizePolicy">
125                  <cstring>EngineNameComboBox</cstring>          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
126              </property>           <horstretch>0</horstretch>
127          </widget>           <verstretch>0</verstretch>
         <widget class="QLabel" row="1" column="0">  
             <property name="name">  
                 <cstring>InstrumentFileTextLabel</cstring>  
             </property>  
             <property name="text">  
                 <string>&amp;Filename:</string>  
             </property>  
             <property name="alignment">  
                 <set>AlignVCenter|AlignRight</set>  
             </property>  
             <property name="buddy" stdset="0">  
                 <cstring>InstrumentFileComboBox</cstring>  
             </property>  
         </widget>  
         <widget class="QToolButton" row="1" column="2">  
             <property name="name">  
                 <cstring>InstrumentFileToolButton</cstring>  
             </property>  
             <property name="sizePolicy">  
                 <sizepolicy>  
                     <hsizetype>0</hsizetype>  
                     <vsizetype>0</vsizetype>  
                     <horstretch>0</horstretch>  
                     <verstretch>0</verstretch>  
                 </sizepolicy>  
             </property>  
             <property name="minimumSize">  
                 <size>  
                     <width>24</width>  
                     <height>24</height>  
                 </size>  
             </property>  
             <property name="maximumSize">  
                 <size>  
                     <width>26</width>  
                     <height>26</height>  
                 </size>  
             </property>  
                         <property name="focusPolicy">  
                                 <enum>TabFocus</enum>  
                         </property>  
             <property name="text">  
                 <string></string>  
             </property>  
             <property name="pixmap">  
                 <pixmap>fileOpen.png</pixmap>  
             </property>  
             <property name="toolTip" stdset="0">  
                 <string>Browse for instrument filename</string>  
             </property>  
         </widget>  
         <widget class="QComboBox" row="1" column="1">  
             <property name="name">  
                 <cstring>InstrumentFileComboBox</cstring>  
             </property>  
             <property name="sizePolicy">  
                 <sizepolicy>  
                     <hsizetype>7</hsizetype>  
                     <vsizetype>0</vsizetype>  
                     <horstretch>0</horstretch>  
                     <verstretch>0</verstretch>  
                 </sizepolicy>  
             </property>  
             <property name="minimumSize">  
                 <size>  
                     <width>320</width>  
                     <height>0</height>  
                 </size>  
             </property>  
             <property name="editable">  
                 <bool>true</bool>  
             </property>  
             <property name="toolTip" stdset="0">  
                 <string>Instrument filename</string>  
             </property>  
         </widget>  
         <widget class="QComboBox" row="2" column="1" rowspan="1" colspan="2">  
             <property name="name">  
                 <cstring>InstrumentNrComboBox</cstring>  
             </property>  
             <property name="sizePolicy">  
                 <sizepolicy>  
                     <hsizetype>7</hsizetype>  
                     <vsizetype>0</vsizetype>  
                     <horstretch>0</horstretch>  
                     <verstretch>0</verstretch>  
                 </sizepolicy>  
             </property>  
             <property name="minimumSize">  
                 <size>  
                     <width>320</width>  
                     <height>0</height>  
                 </size>  
             </property>  
             <property name="toolTip" stdset="0">  
                 <string>Instrument name</string>  
             </property>  
         </widget>  
         <widget class="QLabel" row="2" column="0">  
             <property name="name">  
                 <cstring>InstrumentNrTextLabel</cstring>  
             </property>  
             <property name="text">  
                 <string>&amp;Instrument:</string>  
             </property>  
             <property name="alignment">  
                 <set>AlignVCenter|AlignRight</set>  
             </property>  
             <property name="buddy" stdset="0">  
                 <cstring>InstrumentNrComboBox</cstring>  
             </property>  
         </widget>  
         <widget class="QGroupBox" row="3" column="1" rowspan="1" colspan="2">  
             <property name="name">  
                 <cstring>MidiGroupBox</cstring>  
             </property>  
             <property name="sizePolicy">  
                 <sizepolicy>  
                     <hsizetype>7</hsizetype>  
                     <vsizetype>5</vsizetype>  
                     <horstretch>0</horstretch>  
                     <verstretch>0</verstretch>  
                 </sizepolicy>  
             </property>  
             <property name="title">  
                 <string>MIDI / Input</string>  
             </property>  
             <grid>  
                 <property name="name">  
                     <cstring>unnamed</cstring>  
                 </property>  
                 <property name="margin">  
                     <number>8</number>  
                 </property>  
                 <property name="spacing">  
                     <number>8</number>  
                 </property>  
                 <widget class="QLabel" row="0" column="0">  
                     <property name="name">  
                         <cstring>MidiDriverTextLabel</cstring>  
                     </property>  
                     <property name="text">  
                         <string>&amp;Type:</string>  
                     </property>  
                     <property name="alignment">  
                         <set>AlignVCenter</set>  
                     </property>  
                     <property name="buddy" stdset="0">  
                         <cstring>MidiDriverComboBox</cstring>  
                     </property>  
                 </widget>  
                 <widget class="QLabel" row="1" column="0">  
                     <property name="name">  
                         <cstring>MidiDeviceTextLabel</cstring>  
                     </property>  
                     <property name="text">  
                         <string>&amp;Device:</string>  
                     </property>  
                     <property name="alignment">  
                         <set>AlignVCenter</set>  
                     </property>  
                     <property name="buddy" stdset="0">  
                         <cstring>MidiDeviceComboBox</cstring>  
                     </property>  
                 </widget>  
                 <widget class="QLayoutWidget" row="0" column="1">  
                     <property name="name">  
                         <cstring>layout11</cstring>  
                     </property>  
                     <hbox>  
                         <property name="name">  
                             <cstring>unnamed</cstring>  
                         </property>  
                         <widget class="QComboBox">  
                             <property name="name">  
                                 <cstring>MidiDriverComboBox</cstring>  
                             </property>  
                             <property name="sizePolicy">  
                                 <sizepolicy>  
                                     <hsizetype>5</hsizetype>  
                                     <vsizetype>0</vsizetype>  
                                     <horstretch>0</horstretch>  
                                     <verstretch>0</verstretch>  
                                 </sizepolicy>  
                             </property>  
                             <property name="toolTip" stdset="0">  
                                 <string>MIDI input driver type</string>  
                             </property>  
                         </widget>  
                         <spacer>  
                             <property name="name">  
                                 <cstring>spacer1</cstring>  
                             </property>  
                             <property name="orientation">  
                                 <enum>Horizontal</enum>  
                             </property>  
                             <property name="sizeType">  
                                 <enum>Expanding</enum>  
                             </property>  
                             <property name="sizeHint">  
                                 <size>  
                                     <width>20</width>  
                                     <height>20</height>  
                                 </size>  
                             </property>  
                         </spacer>  
                         <widget class="QLabel">  
                             <property name="name">  
                                 <cstring>MidiPortTextLabel</cstring>  
                             </property>  
                             <property name="text">  
                                 <string>&amp;Port:</string>  
                             </property>  
                             <property name="alignment">  
                                 <set>AlignVCenter|AlignRight</set>  
                             </property>  
                             <property name="buddy" stdset="0">  
                                 <cstring>MidiPortSpinBox</cstring>  
                             </property>  
                         </widget>  
                         <widget class="QSpinBox">  
                             <property name="name">  
                                 <cstring>MidiPortSpinBox</cstring>  
                             </property>  
                             <property name="toolTip" stdset="0">  
                                 <string>MIDI input port number</string>  
                             </property>  
                         </widget>  
                         <widget class="QLabel">  
                             <property name="name">  
                                 <cstring>MidiChannelTextLabel</cstring>  
                             </property>  
                             <property name="text">  
                                 <string>&amp;Channel:</string>  
                             </property>  
                             <property name="alignment">  
                                 <set>AlignVCenter|AlignRight</set>  
                             </property>  
                             <property name="buddy" stdset="0">  
                                 <cstring>MidiChannelComboBox</cstring>  
                             </property>  
                         </widget>  
                         <widget class="QComboBox">  
                             <item>  
                                 <property name="text">  
                                     <string>1</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>2</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>3</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>4</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>5</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>6</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>7</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>8</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>9</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>10</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>11</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>12</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>13</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>14</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>15</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>16</string>  
                                 </property>  
                             </item>  
                             <item>  
                                 <property name="text">  
                                     <string>All</string>  
                                 </property>  
                             </item>  
                             <property name="name">  
                                 <cstring>MidiChannelComboBox</cstring>  
                             </property>  
                             <property name="toolTip" stdset="0">  
                                 <string>MIDI input channel</string>  
                             </property>  
                         </widget>  
                     </hbox>  
                 </widget>  
                 <widget class="QLayoutWidget" row="1" column="1">  
                     <property name="name">  
                         <cstring>layout12</cstring>  
                     </property>  
                     <hbox>  
                         <property name="name">  
                             <cstring>unnamed</cstring>  
                         </property>  
                         <widget class="QComboBox">  
                             <property name="name">  
                                 <cstring>MidiDeviceComboBox</cstring>  
                             </property>  
                             <property name="sizePolicy">  
                                 <sizepolicy>  
                                     <hsizetype>7</hsizetype>  
                                     <vsizetype>0</vsizetype>  
                                     <horstretch>0</horstretch>  
                                     <verstretch>0</verstretch>  
                                 </sizepolicy>  
                             </property>  
                             <property name="toolTip" stdset="0">  
                                 <string>MIDI input device</string>  
                             </property>  
                         </widget>  
                         <widget class="QToolButton">  
                             <property name="name">  
                                 <cstring>MidiDeviceToolButton</cstring>  
                             </property>  
                             <property name="sizePolicy">  
                                 <sizepolicy>  
                                     <hsizetype>0</hsizetype>  
                                     <vsizetype>0</vsizetype>  
                                     <horstretch>0</horstretch>  
                                     <verstretch>0</verstretch>  
                                 </sizepolicy>  
                             </property>  
                             <property name="minimumSize">  
                                 <size>  
                                     <width>24</width>  
                                     <height>24</height>  
                                 </size>  
                             </property>  
                             <property name="maximumSize">  
                                 <size>  
                                     <width>26</width>  
                                     <height>26</height>  
                                 </size>  
                             </property>  
                                                         <property name="focusPolicy">  
                                                                 <enum>TabFocus</enum>  
                                                         </property>  
                             <property name="text">  
                                 <string></string>  
                             </property>  
                             <property name="pixmap">  
                                 <pixmap>midi1.png</pixmap>  
                             </property>  
                             <property name="toolTip" stdset="0">  
                                 <string>MIDI input device setup</string>  
                             </property>  
                         </widget>  
                     </hbox>  
                 </widget>  
             </grid>  
         </widget>  
         <widget class="QLayoutWidget" row="5" column="0" rowspan="1" colspan="3">  
             <property name="name">  
                 <cstring>layout01</cstring>  
             </property>  
             <hbox>  
                 <property name="name">  
                     <cstring>unnamed</cstring>  
                 </property>  
                 <spacer>  
                     <property name="name">  
                         <cstring>spacer3</cstring>  
                     </property>  
                     <property name="orientation">  
                         <enum>Horizontal</enum>  
                     </property>  
                     <property name="sizeType">  
                         <enum>Expanding</enum>  
                     </property>  
                     <property name="sizeHint">  
                         <size>  
                             <width>8</width>  
                             <height>8</height>  
                         </size>  
                     </property>  
                 </spacer>  
                 <widget class="QPushButton">  
                     <property name="name">  
                         <cstring>OkPushButton</cstring>  
                     </property>  
                     <property name="text">  
                         <string>OK</string>  
                     </property>  
                     <property name="iconSet">  
                         <iconset>formAccept.png</iconset>  
                     </property>  
                 </widget>  
                 <widget class="QPushButton">  
                     <property name="name">  
                         <cstring>CancelPushButton</cstring>  
                     </property>  
                     <property name="text">  
                         <string>Cancel</string>  
                     </property>  
                     <property name="iconSet">  
                         <iconset>formReject.png</iconset>  
                     </property>  
                 </widget>  
             </hbox>  
         </widget>  
         <widget class="QGroupBox" row="4" column="1" rowspan="1" colspan="2">  
             <property name="name">  
                 <cstring>AudioGroupBox</cstring>  
             </property>  
             <property name="sizePolicy">  
                 <sizepolicy>  
                     <hsizetype>7</hsizetype>  
                     <vsizetype>5</vsizetype>  
                     <horstretch>0</horstretch>  
                     <verstretch>0</verstretch>  
                 </sizepolicy>  
             </property>  
             <property name="title">  
                 <string>Audio / Output</string>  
             </property>  
             <property name="alignment">  
                 <set>AlignAuto</set>  
             </property>  
             <grid>  
                 <property name="name">  
                     <cstring>unnamed</cstring>  
                 </property>  
                 <property name="margin">  
                     <number>8</number>  
                 </property>  
                 <property name="spacing">  
                     <number>8</number>  
                 </property>  
                 <widget class="QLabel" row="0" column="0">  
                     <property name="name">  
                         <cstring>AudioDriverTextLabel</cstring>  
                     </property>  
                     <property name="text">  
                         <string>&amp;Type:</string>  
                     </property>  
                     <property name="alignment">  
                         <set>AlignVCenter</set>  
                     </property>  
                     <property name="buddy" stdset="0">  
                         <cstring>AudioDriverComboBox</cstring>  
                     </property>  
                 </widget>  
                 <widget class="QLayoutWidget" row="0" column="1">  
                     <property name="name">  
                         <cstring>layout21</cstring>  
                     </property>  
                     <hbox>  
                         <property name="name">  
                             <cstring>unnamed</cstring>  
                         </property>  
                         <widget class="QComboBox">  
                             <property name="name">  
                                 <cstring>AudioDriverComboBox</cstring>  
                             </property>  
                             <property name="sizePolicy">  
                                 <sizepolicy>  
                                     <hsizetype>5</hsizetype>  
                                     <vsizetype>0</vsizetype>  
                                     <horstretch>0</horstretch>  
                                     <verstretch>0</verstretch>  
                                 </sizepolicy>  
                             </property>  
                             <property name="toolTip" stdset="0">  
                                 <string>Audio output driver type</string>  
                             </property>  
                         </widget>  
                         <spacer>  
                             <property name="name">  
                                 <cstring>spacer2</cstring>  
                             </property>  
                             <property name="orientation">  
                                 <enum>Horizontal</enum>  
                             </property>  
                             <property name="sizeType">  
                                 <enum>Expanding</enum>  
                             </property>  
                             <property name="sizeHint">  
                                 <size>  
                                     <width>20</width>  
                                     <height>20</height>  
                                 </size>  
                             </property>  
                         </spacer>  
                     </hbox>  
                 </widget>  
                 <widget class="QLayoutWidget" row="1" column="1">  
                     <property name="name">  
                         <cstring>layout22</cstring>  
                     </property>  
                     <hbox>  
                         <property name="name">  
                             <cstring>unnamed</cstring>  
                         </property>  
                         <widget class="QComboBox">  
                             <property name="name">  
                                 <cstring>AudioDeviceComboBox</cstring>  
                             </property>  
                             <property name="sizePolicy">  
                                 <sizepolicy>  
                                     <hsizetype>7</hsizetype>  
                                     <vsizetype>0</vsizetype>  
                                     <horstretch>0</horstretch>  
                                     <verstretch>0</verstretch>  
                                 </sizepolicy>  
                             </property>  
                             <property name="toolTip" stdset="0">  
                                 <string>Audio output device</string>  
                             </property>  
                         </widget>  
                         <widget class="QToolButton">  
                             <property name="name">  
                                 <cstring>AudioDeviceToolButton</cstring>  
                             </property>  
                             <property name="sizePolicy">  
                                 <sizepolicy>  
                                     <hsizetype>0</hsizetype>  
                                     <vsizetype>0</vsizetype>  
                                     <horstretch>0</horstretch>  
                                     <verstretch>0</verstretch>  
                                 </sizepolicy>  
                             </property>  
                             <property name="minimumSize">  
                                 <size>  
                                     <width>24</width>  
                                     <height>24</height>  
                                 </size>  
                             </property>  
                             <property name="maximumSize">  
                                 <size>  
                                     <width>26</width>  
                                     <height>26</height>  
                                 </size>  
                             </property>  
                                                         <property name="focusPolicy">  
                                                                 <enum>TabFocus</enum>  
                                                         </property>  
                             <property name="text">  
                                 <string></string>  
                             </property>  
                             <property name="pixmap">  
                                 <pixmap>audio1.png</pixmap>  
                             </property>  
                             <property name="toolTip" stdset="0">  
                                 <string>Audio output device setup</string>  
                             </property>  
                         </widget>  
                     </hbox>  
                 </widget>  
                 <widget class="QLabel" row="1" column="0">  
                     <property name="name">  
                         <cstring>AudioDeviceTextLabel</cstring>  
                     </property>  
                     <property name="text">  
                         <string>&amp;Device:</string>  
                     </property>  
                     <property name="alignment">  
                         <set>AlignVCenter</set>  
                     </property>  
                     <property name="buddy" stdset="0">  
                         <cstring>AudioDeviceComboBox</cstring>  
                     </property>  
                 </widget>  
                 <widget class="qsamplerChannelRoutingTable" row="2" column="1">  
                     <property name="name">  
                         <cstring>AudioRoutingTable</cstring>  
                     </property>  
                     <property name="minimumSize">  
                         <size>  
                             <width>0</width>  
                             <height>100</height>  
                         </size>  
                     </property>  
                     <property name="focusPolicy">  
                         <enum>StrongFocus</enum>  
                     </property>  
                     <property name="toolTip" stdset="0">  
                         <string>Audio output channel routing</string>  
                     </property>  
                 </widget>  
             </grid>  
         </widget>  
     </grid>  
 </widget>  
 <customwidgets>  
     <customwidget>  
         <class>qsamplerChannelRoutingTable</class>  
         <header location="local">qsamplerChannel.h</header>  
         <sizehint>  
             <width>-1</width>  
             <height>-1</height>  
         </sizehint>  
         <container>0</container>  
         <sizepolicy>  
             <hordata>7</hordata>  
             <verdata>7</verdata>  
             <horstretch>0</horstretch>  
             <verstretch>0</verstretch>  
128          </sizepolicy>          </sizepolicy>
129      </customwidget>         </property>
130  </customwidgets>         <property name="minimumSize">
131  <connections>          <size>
132      <connection>           <width>320</width>
133          <sender>EngineNameComboBox</sender>           <height>0</height>
134          <signal>activated(int)</signal>          </size>
135          <receiver>qsamplerChannelForm</receiver>         </property>
136          <slot>optionsChanged()</slot>         <property name="toolTip">
137      </connection>          <string>Instrument filename</string>
138      <connection>         </property>
139          <sender>InstrumentFileComboBox</sender>         <property name="editable">
140          <signal>activated(const QString&amp;)</signal>          <bool>true</bool>
141          <receiver>qsamplerChannelForm</receiver>         </property>
142          <slot>updateInstrumentName()</slot>        </widget>
143      </connection>       </item>
144      <connection>       <item row="1" column="3">
145          <sender>InstrumentFileToolButton</sender>        <widget class="QToolButton" name="InstrumentFileToolButton">
146          <signal>clicked()</signal>         <property name="sizePolicy">
147          <receiver>qsamplerChannelForm</receiver>          <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
148          <slot>openInstrumentFile()</slot>           <horstretch>0</horstretch>
149      </connection>           <verstretch>0</verstretch>
150      <connection>          </sizepolicy>
151          <sender>InstrumentNrComboBox</sender>         </property>
152          <signal>activated(int)</signal>         <property name="minimumSize">
153          <receiver>qsamplerChannelForm</receiver>          <size>
154          <slot>optionsChanged()</slot>           <width>24</width>
155      </connection>           <height>24</height>
156      <connection>          </size>
157          <sender>MidiDriverComboBox</sender>         </property>
158          <signal>activated(const QString&amp;)</signal>         <property name="maximumSize">
159          <receiver>qsamplerChannelForm</receiver>          <size>
160          <slot>selectMidiDriver(const QString&amp;)</slot>           <width>26</width>
161      </connection>           <height>26</height>
162      <connection>          </size>
163          <sender>MidiDeviceComboBox</sender>         </property>
164          <signal>activated(int)</signal>         <property name="focusPolicy">
165          <receiver>qsamplerChannelForm</receiver>          <enum>Qt::TabFocus</enum>
166          <slot>selectMidiDevice(int)</slot>         </property>
167      </connection>         <property name="toolTip">
168      <connection>          <string>Browse for instrument filename</string>
169          <sender>MidiPortSpinBox</sender>         </property>
170          <signal>valueChanged(int)</signal>         <property name="text">
171          <receiver>qsamplerChannelForm</receiver>          <string/>
172          <slot>optionsChanged()</slot>         </property>
173      </connection>         <property name="icon">
174      <connection>          <iconset resource="qsampler.qrc">:/images/fileOpen.png</iconset>
175          <sender>MidiChannelComboBox</sender>         </property>
176          <signal>activated(int)</signal>        </widget>
177          <receiver>qsamplerChannelForm</receiver>       </item>
178          <slot>optionsChanged()</slot>       <item row="2" column="0">
179      </connection>        <widget class="QLabel" name="InstrumentNrTextLabel">
180      <connection>         <property name="text">
181          <sender>AudioDriverComboBox</sender>          <string>&amp;Instrument:</string>
182          <signal>activated(const QString&amp;)</signal>         </property>
183          <receiver>qsamplerChannelForm</receiver>         <property name="alignment">
184          <slot>selectAudioDriver(const QString&amp;)</slot>          <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
185      </connection>         </property>
186      <connection>         <property name="wordWrap">
187          <sender>AudioDeviceComboBox</sender>          <bool>false</bool>
188          <signal>activated(int)</signal>         </property>
189          <receiver>qsamplerChannelForm</receiver>         <property name="buddy">
190          <slot>selectAudioDevice(int)</slot>          <cstring>InstrumentNrComboBox</cstring>
191      </connection>         </property>
192      <connection>        </widget>
193          <sender>OkPushButton</sender>       </item>
194          <signal>clicked()</signal>       <item row="2" column="1" colspan="2">
195          <receiver>qsamplerChannelForm</receiver>        <widget class="QComboBox" name="InstrumentNrComboBox">
196          <slot>accept()</slot>         <property name="sizePolicy">
197      </connection>          <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
198      <connection>           <horstretch>0</horstretch>
199          <sender>CancelPushButton</sender>           <verstretch>0</verstretch>
200          <signal>clicked()</signal>          </sizepolicy>
201          <receiver>qsamplerChannelForm</receiver>         </property>
202          <slot>reject()</slot>         <property name="minimumSize">
203      </connection>          <size>
204      <connection>           <width>320</width>
205          <sender>MidiDeviceToolButton</sender>           <height>0</height>
206          <signal>clicked()</signal>          </size>
207          <receiver>qsamplerChannelForm</receiver>         </property>
208          <slot>setupMidiDevice()</slot>         <property name="toolTip">
209      </connection>          <string>Instrument name</string>
210      <connection>         </property>
211          <sender>AudioDeviceToolButton</sender>        </widget>
212          <signal>clicked()</signal>       </item>
213          <receiver>qsamplerChannelForm</receiver>      </layout>
214          <slot>setupAudioDevice()</slot>     </item>
215      </connection>     <item>
216  </connections>      <widget class="QGroupBox" name="MidiGroupBox">
217  <tabstops>       <property name="title">
218      <tabstop>EngineNameComboBox</tabstop>        <string>MIDI / Input</string>
219      <tabstop>InstrumentFileComboBox</tabstop>       </property>
220      <tabstop>InstrumentFileToolButton</tabstop>       <layout class="QGridLayout">
221      <tabstop>InstrumentNrComboBox</tabstop>        <item row="0" column="0">
222      <tabstop>MidiDriverComboBox</tabstop>         <widget class="QLabel" name="MidiDriverTextLabel">
223      <tabstop>MidiPortSpinBox</tabstop>          <property name="minimumSize">
224      <tabstop>MidiChannelComboBox</tabstop>           <size>
225      <tabstop>MidiDeviceComboBox</tabstop>            <width>62</width>
226      <tabstop>MidiDeviceToolButton</tabstop>            <height>0</height>
227      <tabstop>AudioDriverComboBox</tabstop>           </size>
228      <tabstop>AudioDeviceComboBox</tabstop>          </property>
229      <tabstop>AudioDeviceToolButton</tabstop>          <property name="maximumSize">
230      <tabstop>AudioRoutingTable</tabstop>           <size>
231      <tabstop>OkPushButton</tabstop>            <width>62</width>
232      <tabstop>CancelPushButton</tabstop>            <height>16777215</height>
233  </tabstops>           </size>
234  <includes>          </property>
235      <include location="local" impldecl="in declaration">qsamplerDevice.h</include>          <property name="text">
236      <include location="local" impldecl="in declaration">qsamplerChannel.h</include>           <string>T&amp;ype:</string>
237      <include location="local" impldecl="in implementation">qsamplerChannelForm.ui.h</include>          </property>
238  </includes>          <property name="alignment">
239  <forwards>           <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
240      <forward>class qsamplerDeviceForm;</forward>          </property>
241  </forwards>          <property name="wordWrap">
242  <variables>           <bool>false</bool>
243      <variable access="private">qsamplerChannel *m_pChannel;</variable>          </property>
244      <variable access="private">int m_iDirtySetup;</variable>          <property name="buddy">
245      <variable access="private">int m_iDirtyCount;</variable>           <cstring>MidiDriverComboBox</cstring>
246      <variable access="private">QPtrList &lt; qsamplerDevice &gt; m_audioDevices;</variable>          </property>
247      <variable access="private">QPtrList &lt; qsamplerDevice &gt; m_midiDevices;</variable>         </widget>
248      <variable access="private">qsamplerDeviceForm *m_pDeviceForm;</variable>        </item>
249      <variable access="private">qsamplerChannelRoutingMap m_audioRouting;</variable>        <item row="0" column="1">
250  </variables>         <widget class="QComboBox" name="MidiDriverComboBox">
251  <slots>          <property name="sizePolicy">
252      <slot specifier="non virtual">accept()</slot>           <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
253      <slot specifier="non virtual">reject()</slot>            <horstretch>0</horstretch>
254      <slot specifier="non virtual">openInstrumentFile()</slot>            <verstretch>0</verstretch>
255      <slot specifier="non virtual">updateInstrumentName()</slot>           </sizepolicy>
256      <slot specifier="non virtual">selectMidiDriver( const QString &amp; sMidiDriver )</slot>          </property>
257      <slot specifier="non virtual">selectMidiDevice( int iMidiItem )</slot>          <property name="minimumSize">
258      <slot specifier="non virtual">setupMidiDevice()</slot>           <size>
259      <slot specifier="non virtual">selectAudioDriver( const QString &amp; sAudioDriver )</slot>            <width>92</width>
260      <slot specifier="non virtual">selectAudioDevice( int iAudioItem )</slot>            <height>0</height>
261      <slot specifier="non virtual">setupAudioDevice()</slot>           </size>
262      <slot specifier="non virtual">changeAudioRouting( int iRow, int iCol )</slot>          </property>
263      <slot specifier="non virtual">updateDevices()</slot>          <property name="maximumSize">
264      <slot specifier="non virtual">optionsChanged()</slot>           <size>
265      <slot specifier="non virtual">stabilizeForm()</slot>            <width>92</width>
266  </slots>            <height>16777215</height>
267  <functions>           </size>
268      <function access="private" specifier="non virtual">init()</function>          </property>
269      <function access="private" specifier="non virtual">destroy()</function>          <property name="toolTip">
270      <function specifier="non virtual">setup( qsamplerChannel *pChannel )</function>           <string>MIDI input driver type</string>
271      <function specifier="non virtual">setupDevice( qsamplerDevice *pDevice, qsamplerDevice::qsamplerDeviceType deviceTypeMode, const QString &amp; sDriverName )</function>          </property>
272      <function specifier="non virtual">selectMidiDriverItem( const QString &amp; sMidiDriver )</function>         </widget>
273      <function specifier="non virtual">selectMidiDeviceItem( int iMidiItem )</function>        </item>
274      <function specifier="non virtual">selectAudioDriverItem( const QString &amp; sAudioDriver )</function>        <item row="0" column="2">
275      <function specifier="non virtual">selectAudioDeviceItem( int iAudioItem )</function>         <spacer>
276  </functions>          <property name="orientation">
277  <pixmapinproject/>           <enum>Qt::Horizontal</enum>
278  <layoutdefaults spacing="4" margin="4"/>          </property>
279  </UI>          <property name="sizeType">
280             <enum>QSizePolicy::Expanding</enum>
281            </property>
282            <property name="sizeHint">
283             <size>
284              <width>20</width>
285              <height>20</height>
286             </size>
287            </property>
288           </spacer>
289          </item>
290          <item row="0" column="3">
291           <widget class="QLabel" name="MidiPortTextLabel">
292            <property name="text">
293             <string>&amp;Port:</string>
294            </property>
295            <property name="alignment">
296             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
297            </property>
298            <property name="wordWrap">
299             <bool>false</bool>
300            </property>
301            <property name="buddy">
302             <cstring>MidiPortSpinBox</cstring>
303            </property>
304           </widget>
305          </item>
306          <item row="0" column="4">
307           <widget class="QSpinBox" name="MidiPortSpinBox">
308            <property name="toolTip">
309             <string>MIDI input port number</string>
310            </property>
311           </widget>
312          </item>
313          <item row="0" column="5">
314           <widget class="QLabel" name="MidiChannelTextLabel">
315            <property name="text">
316             <string>&amp;Channel:</string>
317            </property>
318            <property name="alignment">
319             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
320            </property>
321            <property name="wordWrap">
322             <bool>false</bool>
323            </property>
324            <property name="buddy">
325             <cstring>MidiChannelComboBox</cstring>
326            </property>
327           </widget>
328          </item>
329          <item row="0" column="6">
330           <widget class="QComboBox" name="MidiChannelComboBox">
331            <property name="toolTip">
332             <string>MIDI input channel</string>
333            </property>
334            <item>
335             <property name="text">
336              <string>1</string>
337             </property>
338            </item>
339            <item>
340             <property name="text">
341              <string>2</string>
342             </property>
343            </item>
344            <item>
345             <property name="text">
346              <string>3</string>
347             </property>
348            </item>
349            <item>
350             <property name="text">
351              <string>4</string>
352             </property>
353            </item>
354            <item>
355             <property name="text">
356              <string>5</string>
357             </property>
358            </item>
359            <item>
360             <property name="text">
361              <string>6</string>
362             </property>
363            </item>
364            <item>
365             <property name="text">
366              <string>7</string>
367             </property>
368            </item>
369            <item>
370             <property name="text">
371              <string>8</string>
372             </property>
373            </item>
374            <item>
375             <property name="text">
376              <string>9</string>
377             </property>
378            </item>
379            <item>
380             <property name="text">
381              <string>10</string>
382             </property>
383            </item>
384            <item>
385             <property name="text">
386              <string>11</string>
387             </property>
388            </item>
389            <item>
390             <property name="text">
391              <string>12</string>
392             </property>
393            </item>
394            <item>
395             <property name="text">
396              <string>13</string>
397             </property>
398            </item>
399            <item>
400             <property name="text">
401              <string>14</string>
402             </property>
403            </item>
404            <item>
405             <property name="text">
406              <string>15</string>
407             </property>
408            </item>
409            <item>
410             <property name="text">
411              <string>16</string>
412             </property>
413            </item>
414            <item>
415             <property name="text">
416              <string>All</string>
417             </property>
418            </item>
419           </widget>
420          </item>
421          <item row="0" column="7">
422           <spacer>
423            <property name="orientation">
424             <enum>Qt::Horizontal</enum>
425            </property>
426            <property name="sizeType">
427             <enum>QSizePolicy::Expanding</enum>
428            </property>
429            <property name="sizeHint">
430             <size>
431              <width>20</width>
432              <height>20</height>
433             </size>
434            </property>
435           </spacer>
436          </item>
437          <item row="1" column="0">
438           <widget class="QLabel" name="MidiDeviceTextLabel">
439            <property name="text">
440             <string>De&amp;vice:</string>
441            </property>
442            <property name="alignment">
443             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
444            </property>
445            <property name="wordWrap">
446             <bool>false</bool>
447            </property>
448            <property name="buddy">
449             <cstring>MidiDeviceComboBox</cstring>
450            </property>
451           </widget>
452          </item>
453          <item row="1" column="1" colspan="6">
454           <widget class="QComboBox" name="MidiDeviceComboBox">
455            <property name="sizePolicy">
456             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
457              <horstretch>0</horstretch>
458              <verstretch>0</verstretch>
459             </sizepolicy>
460            </property>
461            <property name="toolTip">
462             <string>MIDI input device</string>
463            </property>
464           </widget>
465          </item>
466          <item row="1" column="7">
467           <widget class="QToolButton" name="MidiDeviceToolButton">
468            <property name="sizePolicy">
469             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
470              <horstretch>0</horstretch>
471              <verstretch>0</verstretch>
472             </sizepolicy>
473            </property>
474            <property name="minimumSize">
475             <size>
476              <width>24</width>
477              <height>24</height>
478             </size>
479            </property>
480            <property name="maximumSize">
481             <size>
482              <width>26</width>
483              <height>26</height>
484             </size>
485            </property>
486            <property name="focusPolicy">
487             <enum>Qt::TabFocus</enum>
488            </property>
489            <property name="toolTip">
490             <string>MIDI input device setup</string>
491            </property>
492            <property name="text">
493             <string/>
494            </property>
495            <property name="icon">
496             <iconset resource="qsampler.qrc">:/images/midi1.png</iconset>
497            </property>
498           </widget>
499          </item>
500          <item row="2" column="0">
501           <widget class="QLabel" name="MidiMapTextLabel">
502            <property name="text">
503             <string>&amp;Map:</string>
504            </property>
505            <property name="alignment">
506             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
507            </property>
508            <property name="wordWrap">
509             <bool>false</bool>
510            </property>
511            <property name="buddy">
512             <cstring>MidiMapComboBox</cstring>
513            </property>
514           </widget>
515          </item>
516          <item row="2" column="1" colspan="2">
517           <widget class="QComboBox" name="MidiMapComboBox">
518            <property name="sizePolicy">
519             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
520              <horstretch>0</horstretch>
521              <verstretch>0</verstretch>
522             </sizepolicy>
523            </property>
524            <property name="toolTip">
525             <string>Instrument map</string>
526            </property>
527           </widget>
528          </item>
529          <item row="2" column="3" colspan="5">
530           <spacer>
531            <property name="orientation">
532             <enum>Qt::Horizontal</enum>
533            </property>
534            <property name="sizeType">
535             <enum>QSizePolicy::Expanding</enum>
536            </property>
537            <property name="sizeHint">
538             <size>
539              <width>20</width>
540              <height>20</height>
541             </size>
542            </property>
543           </spacer>
544          </item>
545         </layout>
546        </widget>
547       </item>
548       <item>
549        <widget class="QGroupBox" name="AudioGroupBox">
550         <property name="title">
551          <string>Audio / Output</string>
552         </property>
553         <layout class="QGridLayout">
554          <item row="0" column="0">
555           <widget class="QLabel" name="AudioDriverTextLabel">
556            <property name="minimumSize">
557             <size>
558              <width>62</width>
559              <height>0</height>
560             </size>
561            </property>
562            <property name="maximumSize">
563             <size>
564              <width>62</width>
565              <height>16777215</height>
566             </size>
567            </property>
568            <property name="text">
569             <string>T&amp;ype:</string>
570            </property>
571            <property name="alignment">
572             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
573            </property>
574            <property name="wordWrap">
575             <bool>false</bool>
576            </property>
577            <property name="buddy">
578             <cstring>AudioDriverComboBox</cstring>
579            </property>
580           </widget>
581          </item>
582          <item row="0" column="1">
583           <widget class="QComboBox" name="AudioDriverComboBox">
584            <property name="sizePolicy">
585             <sizepolicy hsizetype="Preferred" vsizetype="Fixed">
586              <horstretch>0</horstretch>
587              <verstretch>0</verstretch>
588             </sizepolicy>
589            </property>
590            <property name="minimumSize">
591             <size>
592              <width>92</width>
593              <height>0</height>
594             </size>
595            </property>
596            <property name="maximumSize">
597             <size>
598              <width>92</width>
599              <height>16777215</height>
600             </size>
601            </property>
602            <property name="toolTip">
603             <string>Audio output driver type</string>
604            </property>
605           </widget>
606          </item>
607          <item row="0" column="2" colspan="2">
608           <spacer>
609            <property name="orientation">
610             <enum>Qt::Horizontal</enum>
611            </property>
612            <property name="sizeType">
613             <enum>QSizePolicy::Expanding</enum>
614            </property>
615            <property name="sizeHint">
616             <size>
617              <width>20</width>
618              <height>20</height>
619             </size>
620            </property>
621           </spacer>
622          </item>
623          <item row="1" column="0">
624           <widget class="QLabel" name="AudioDeviceTextLabel">
625            <property name="text">
626             <string>De&amp;vice:</string>
627            </property>
628            <property name="alignment">
629             <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
630            </property>
631            <property name="wordWrap">
632             <bool>false</bool>
633            </property>
634            <property name="buddy">
635             <cstring>AudioDeviceComboBox</cstring>
636            </property>
637           </widget>
638          </item>
639          <item row="1" column="1" colspan="2">
640           <widget class="QComboBox" name="AudioDeviceComboBox">
641            <property name="sizePolicy">
642             <sizepolicy hsizetype="Expanding" vsizetype="Fixed">
643              <horstretch>0</horstretch>
644              <verstretch>0</verstretch>
645             </sizepolicy>
646            </property>
647            <property name="toolTip">
648             <string>Audio output device</string>
649            </property>
650           </widget>
651          </item>
652          <item row="1" column="3">
653           <widget class="QToolButton" name="AudioDeviceToolButton">
654            <property name="sizePolicy">
655             <sizepolicy hsizetype="Fixed" vsizetype="Fixed">
656              <horstretch>0</horstretch>
657              <verstretch>0</verstretch>
658             </sizepolicy>
659            </property>
660            <property name="minimumSize">
661             <size>
662              <width>24</width>
663              <height>24</height>
664             </size>
665            </property>
666            <property name="maximumSize">
667             <size>
668              <width>26</width>
669              <height>26</height>
670             </size>
671            </property>
672            <property name="focusPolicy">
673             <enum>Qt::TabFocus</enum>
674            </property>
675            <property name="toolTip">
676             <string>Audio output device setup</string>
677            </property>
678            <property name="text">
679             <string/>
680            </property>
681            <property name="icon">
682             <iconset resource="qsampler.qrc">:/images/audio1.png</iconset>
683            </property>
684           </widget>
685          </item>
686          <item row="2" column="0" colspan="4">
687           <widget class="QTableView" name="AudioRoutingTable">
688            <property name="sizePolicy">
689             <sizepolicy hsizetype="Expanding" vsizetype="Expanding">
690              <horstretch>0</horstretch>
691              <verstretch>0</verstretch>
692             </sizepolicy>
693            </property>
694            <property name="minimumSize">
695             <size>
696              <width>320</width>
697              <height>80</height>
698             </size>
699            </property>
700            <property name="toolTip">
701             <string>Audio routing table</string>
702            </property>
703           </widget>
704          </item>
705         </layout>
706        </widget>
707       </item>
708       <item>
709        <widget class="QDialogButtonBox" name="DialogButtonBox">
710         <property name="orientation">
711          <enum>Qt::Horizontal</enum>
712         </property>
713         <property name="standardButtons">
714          <set>QDialogButtonBox::Cancel|QDialogButtonBox::Ok</set>
715         </property>
716        </widget>
717       </item>
718      </layout>
719     </widget>
720     <layoutdefault spacing="4" margin="8"/>
721     <tabstops>
722      <tabstop>EngineNameComboBox</tabstop>
723      <tabstop>InstrumentFileComboBox</tabstop>
724      <tabstop>InstrumentFileToolButton</tabstop>
725      <tabstop>InstrumentNrComboBox</tabstop>
726      <tabstop>DialogButtonBox</tabstop>
727     </tabstops>
728     <resources>
729      <include location="qsampler.qrc"/>
730     </resources>
731     <connections/>
732    </ui>

Legend:
Removed from v.824  
changed lines
  Added in v.3555

  ViewVC Help
Powered by ViewVC