<ui version="4.0" >
 <comment>*********************************************************************
**
** Copyright (C) 2011 Nokia Corporation and/or its subsidiary(-ies).
** All rights reserved.
** Contact: Nokia Corporation (qt-info@nokia.com)
**
** This file is part of the Qt Designer of the Qt Toolkit.
**
** $QT_BEGIN_LICENSE:LGPL$
** GNU Lesser General Public License Usage
** This file may be used under the terms of the GNU Lesser General Public
** License version 2.1 as published by the Free Software Foundation and
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
**
** GNU General Public License Usage
** Alternatively, this file may be used under the terms of the GNU General
** Public License version 3.0 as published by the Free Software Foundation
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
** http://www.gnu.org/copyleft/gpl.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
** conditions contained in a signed written agreement between you and Nokia.
**
**
**
**
**
** $QT_END_LICENSE$
**
*********************************************************************</comment>
 <class>qdesigner_internal::PaletteEditor</class>
 <widget class="QDialog" name="qdesigner_internal::PaletteEditor" >
  <property name="geometry" >
   <rect>
    <x>0</x>
    <y>0</y>
    <width>365</width>
    <height>409</height>
   </rect>
  </property>
  <property name="sizePolicy" >
   <sizepolicy>
    <hsizetype>7</hsizetype>
    <vsizetype>7</vsizetype>
    <horstretch>0</horstretch>
    <verstretch>0</verstretch>
   </sizepolicy>
  </property>
  <property name="windowTitle" >
   <string>Edit Palette</string>
  </property>
  <layout class="QVBoxLayout" >
   <property name="margin" >
    <number>9</number>
   </property>
   <property name="spacing" >
    <number>6</number>
   </property>
   <item>
    <widget class="QGroupBox" name="advancedBox" >
     <property name="minimumSize" >
      <size>
       <width>0</width>
       <height>0</height>
      </size>
     </property>
     <property name="maximumSize" >
      <size>
       <width>16777215</width>
       <height>16777215</height>
      </size>
     </property>
     <property name="title" >
      <string>Tune Palette</string>
     </property>
     <layout class="QGridLayout" >
      <property name="margin" >
       <number>9</number>
      </property>
      <property name="spacing" >
       <number>6</number>
      </property>
      <item row="0" column="1" >
       <widget class="QtColorButton" name="buildButton" >
        <property name="sizePolicy" >
         <sizepolicy>
          <hsizetype>7</hsizetype>
          <vsizetype>13</vsizetype>
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
        <property name="text" >
         <string/>
        </property>
       </widget>
      </item>
      <item row="1" column="0" colspan="4" >
       <widget class="QTreeView" name="paletteView" >
        <property name="minimumSize" >
         <size>
          <width>0</width>
          <height>200</height>
         </size>
        </property>
       </widget>
      </item>
      <item row="0" column="3" >
       <widget class="QRadioButton" name="detailsRadio" >
        <property name="text" >
         <string>Show Details</string>
        </property>
       </widget>
      </item>
      <item row="0" column="2" >
       <widget class="QRadioButton" name="computeRadio" >
        <property name="text" >
         <string>Compute Details</string>
        </property>
        <property name="checked" >
         <bool>true</bool>
        </property>
       </widget>
      </item>
      <item row="0" column="0" >
       <widget class="QLabel" name="label" >
        <property name="text" >
         <string>Quick</string>
        </property>
       </widget>
      </item>
     </layout>
    </widget>
   </item>
   <item>
    <widget class="QGroupBox" name="GroupBox126" >
     <property name="sizePolicy" >
      <sizepolicy>
       <hsizetype>5</hsizetype>
       <vsizetype>7</vsizetype>
       <horstretch>0</horstretch>
       <verstretch>0</verstretch>
      </sizepolicy>
     </property>
     <property name="title" >
      <string>Preview</string>
     </property>
     <layout class="QGridLayout" >
      <property name="margin" >
       <number>8</number>
      </property>
      <property name="spacing" >
       <number>6</number>
      </property>
      <item row="0" column="2" >
       <widget class="QRadioButton" name="disabledRadio" >
        <property name="text" >
         <string>Disabled</string>
        </property>
       </widget>
      </item>
      <item row="0" column="1" >
       <widget class="QRadioButton" name="inactiveRadio" >
        <property name="text" >
         <string>Inactive</string>
        </property>
       </widget>
      </item>
      <item row="0" column="0" >
       <widget class="QRadioButton" name="activeRadio" >
        <property name="text" >
         <string>Active</string>
        </property>
        <property name="checked" >
         <bool>true</bool>
        </property>
       </widget>
      </item>
      <item row="1" column="0" colspan="3" >
       <widget class="qdesigner_internal::PreviewFrame" native="1" name="previewFrame" >
        <property name="sizePolicy" >
         <sizepolicy>
          <hsizetype>7</hsizetype>
          <vsizetype>7</vsizetype>
          <horstretch>0</horstretch>
          <verstretch>0</verstretch>
         </sizepolicy>
        </property>
       </widget>
      </item>
     </layout>
    </widget>
   </item>
   <item>
    <widget class="QDialogButtonBox" name="buttonBox" >
     <property name="orientation" >
      <enum>Qt::Horizontal</enum>
     </property>
     <property name="standardButtons" >
      <set>QDialogButtonBox::Cancel|QDialogButtonBox::NoButton|QDialogButtonBox::Ok</set>
     </property>
    </widget>
   </item>
  </layout>
 </widget>
 <customwidgets>
  <customwidget>
   <class>QtColorButton</class>
   <extends>QToolButton</extends>
   <header>qtcolorbutton.h</header>
  </customwidget>
  <customwidget>
   <class>qdesigner_internal::PreviewFrame</class>
   <extends>QWidget</extends>
   <header>previewframe.h</header>
  </customwidget>
 </customwidgets>
 <resources/>
 <connections>
  <connection>
   <sender>buttonBox</sender>
   <signal>accepted()</signal>
   <receiver>qdesigner_internal::PaletteEditor</receiver>
   <slot>accept()</slot>
   <hints>
    <hint type="sourcelabel" >
     <x>180</x>
     <y>331</y>
    </hint>
    <hint type="destinationlabel" >
     <x>134</x>
     <y>341</y>
    </hint>
   </hints>
  </connection>
  <connection>
   <sender>buttonBox</sender>
   <signal>rejected()</signal>
   <receiver>qdesigner_internal::PaletteEditor</receiver>
   <slot>reject()</slot>
   <hints>
    <hint type="sourcelabel" >
     <x>287</x>
     <y>329</y>
    </hint>
    <hint type="destinationlabel" >
     <x>302</x>
     <y>342</y>
    </hint>
   </hints>
  </connection>
 </connections>
</ui>
