Commit 32588848 authored by Boudewijn Rempt's avatar Boudewijn Rempt

* Fix crash when filling wet

* Use digikam's squeezed combobox for profiles
* temporarily disable threading in filters listview -- see whether that
  helps with the number of crashes we experience
* Text tool now works when current layer is group layer

svn path=/trunk/koffice/; revision=516336
parent c5b69cb2
......@@ -11,6 +11,8 @@ After 1.5 cleanups
to a channels box
* Make set of filter categories extensible
* BUG 121975: selections and group layers.
* Add end poly entry to the popup menu when the poly tool is active (note:
make this more generically useful for tools. Great idea by David Herman
Code organization
......
......@@ -45,6 +45,8 @@ public:
virtual void cancel() { m_canceled = true; }
virtual bool isCanceled() { return m_canceled; }
void runDirectly() { run(); }
protected:
bool m_canceled;
......
This diff is collapsed.
......@@ -71,10 +71,6 @@ void KisToolText::buttonRelease(KisButtonReleaseEvent *e)
{
if (m_subject && e->button() == QMouseEvent::LeftButton) {
KisImageSP img = m_subject->currentImg();
KisPaintDeviceSP dev;
if (!img || !(dev = img->activeDevice()))
return;
bool ok;
QString text = KInputDialog::getText(i18n("Font Tool"), i18n("Enter text:"),
......
......@@ -48,6 +48,7 @@
#include <kis_paint_device.h>
#include <kis_colorspace_factory_registry.h>
#include <kis_cmb_idlist.h>
#include <squeezedcombobox.h>
#include "colorspaceconversion.h"
#include "dlg_colorspaceconversion.h"
......
......@@ -34,6 +34,7 @@
#include "kis_colorspace.h"
#include <kis_id.h>
#include <kis_cmb_idlist.h>
#include <squeezedcombobox.h>
#include "wdgconvertcolorspace.h"
#include "dlg_colorspaceconversion.h"
......
......@@ -43,7 +43,7 @@
</sizepolicy>
</property>
</widget>
<widget class="QComboBox" row="1" column="1">
<widget class="SqueezedComboBox" row="1" column="1">
<item>
<property name="text">
<string>Default</string>
......@@ -189,11 +189,30 @@ colors (Pantone, TruMatch, logo colors, ...)</string>
</sizepolicy>
<pixmap>image0</pixmap>
</customwidget>
<customwidget>
<class>SqueezedComboBox</class>
<header location="local">squeezedcombobox.h</header>
<sizehint>
<width>-1</width>
<height>i24</height>
</sizehint>
<container>0</container>
<sizepolicy>
<hordata>3</hordata>
<verdata>0</verdata>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<pixmap>image1</pixmap>
</customwidget>
</customwidgets>
<images>
<image name="image0">
<data format="PNG" length="870">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000032d49444154388db59531681c4714863f892dde8004b320c32e3870020b74458a6b0f5458e581c016a809a8496b42208454098604d2c4904a6954a410511ae752085b858c1208dc35221244b00119f60ac12ee860062c980719708a95a248f129459cd7cceeccf0edb76fff61a706830197d5ed765ff3166a30184c4d5d829fed3c7bdd5e6ce3bda71a5738ef301802e1d6d179477152303c1842bc822797a64fbf7b4a9a43be00ada817cb0e12011c2611205ccd73755f9c087c6b19bef0d7c100f5b8267d07caf10fe8ab9210156320fc01be16aa5a11043307f30b20a21041019985f48ef2f7fa0becc68e80475fd584e831b396f210f67795c3831a4940a3228925bb27f4d652ba4b01a199b73342f3981be0ca57745042ac30c632d853b6373d44b056c8ef0922508d94d14be59b2f4aeaf58cd5751069e06f3436890114332b9487d0bf80f61e64dc5f813c3790045453f67703fd4d4f7f6b4496b5597e689044af194f5f5e841800210478bee3d1a8f41e64acbe0f69ae6852e1cf0ccf7f74f4d652defbc042226c6f55e8f89f91bb6e9c387c9d521c9558db988a3416fe3c67e32b4779ec7167f0e8939ce19ea7fc5d298a80c875f03563930855ed2081bc05e91d5014ef53363eaf288e3d6285ee520a338e76c7a251a94e41e30470d3631004a262672e3eca59cec6978ef2b889979d11f2bb904af3be92081a416e28dfe831983920b1142345d5b0ff2234a6334276d7321ad53c795c511ca654a5a251996f19b83d158ef602b45a423d52f67703abeb29ee4ce9de4fc93378f218462f6b3efdb042cf3d59666977a0aa6fe9310888d25b13342afd4dcffeaee3d147399da540ab13f8f8b39c2cb3f8710d11ba2b96f9c57fcd7180287497a03ecde86f8dd8fe1a867b9ef6bb1612a84a871f6bd35b94e217a53832589970f2dcd85d9c7d4580d57521cbdaf4bfaf288e95e268d4ec8e60e72ccb0f2dbffea454e71e8d29f57882717152509482a48d8924b0bc12e82ee51445a03a6da079cbd0eec0fc22142b06620e89a3fc8d3783870743d814d2bc8994aa6ff286472e764902e5a96f72bbd3b4c37b280e95aa9e604c84e1cf978b37c74935797d7ae2ca7fac6968fe51ff0bf86dc30783c1d49f0baa9bb819e612310000000049454e44ae426082</data>
</image>
<image name="image1">
<data format="PNG" length="1003">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b249444154388db5944d4c5c5518869f73ce9db9cc40f929cc30300e18129a50685268a28291982e1a2175212eaab1c49d3f8971e7aec6aedb54a32b435dd8685cb8c0c4b8b0feb421b7bd8186a069d23209144b18cb0c02f3732ff3c3ccbdd705a571941213f1dd9d93739ef37e6fbeef08d334d9d5d0d090c701c8344d2176c1a6697a5d5d5dd8b64d2a95c2b2ac7f05b12c8b783c8e6118d8b6fd685fdb753a39394928e2a7c55724d693a7e214104220242805520a84d8b9e4790f0b1302c7751958f1e30534be9fa41a0c60db362dbe227f64af91b6e7719c2dfc0117a71c603da591de2882a7d3d4ec27122b10acad50aeb88044d542b84de3af7ab44aa55274f4e449dbf354bc347aa096fbf37e7efa2ecbad1b36907d78b289de8120232f37726250c3f52cf0a026a0f6065b9645d929e038167aa096d91b307171059034b5f8e9e9eb44fa052b4b25eeccd9dc99cb71f6ad082fbea2e351c075bdbdc13b9109fc01b83fef63e2e232e03076b68393231a0dcd024daf502c1e66e67a89cb971ef0e5a74bb4b61e6378248094b92ab0ac024b70ca017ef8360394187b2dc6d8b89ffa500e4d4f93d9083275d5e6f9913ade3dd70ee87c7d25c95646a25415aadab152b09ed4f8c5cc130a853839eac3951b684a61e70ef3f9c739668c24eba912afbfddc6d4d506e6a6d7b8b7d082aa8eb8dab19482cdcd220e36dd3dc19df23545de0a71f952861923493456cfd3cf36123c54a0b7bf0e8064621b21f7712c040857071ca4eea0f40a99f510573ec971cb48030e811a1faded3e94be85f2fb00703d1ff26f96ab9f011a5b04d0c4f26fdb948a754c1b25668c2491483d5d5d611617d6b8f0fe32cb779b492ce65168b4c774a4701eefd8f3a02d56e6e8f13aeefe9a63fa5a89d1970e91d908f3d46003e1480d173e28b37827c9b977348ab92ce16890237d1ec907ee3e8e3d8f60d0e1f4583d009f7d9860662acff89bad1c1faad0717493f7ce7713ed8cb0995c255f2a317a26427b67198f6a70f51c0a41b902279ed1187f23cc17130b7c74de65eac77a7a8f05517e41e2deefa4930576db60fa7a8ee1535134df3e93e7b82e0817476439fd6a9070a49f6fbe4a3077739db99b15c001146dd13a46cf1cc1f83943c62e51de76b0738fc9381e8f3390f0236b252e124999e11724fd833196164bacadb87848224fe874f779b43fe9f2dca928956d505a96dbb3f9bdc18661e00534c26d1a7a40e13912a11c9454280da41048a9915c75585df500074d53d816dc9edd229528ef0db66dbbea3ffdaffa471f1f28d8344df1bf800f1a6e9aa6f813c39885bc050f269c0000000049454e44ae426082</data>
</image>
</images>
<layoutdefaults spacing="6" margin="11"/>
</UI>
......@@ -18,6 +18,7 @@ Colorspaces
B * Implement the last few colorspace dependencies in KisAbstractColorSpace
? * Optimize colorspace functions at least in 8 and 16 bit rgb where possible
R * Fix drying the wet colorspace
R * Fix fill in wet
Core
......@@ -27,7 +28,8 @@ User interface
P * Try to optimize histogram docker
P * Try to fix display glitches in selection creation.
R * Use squeezed text box for profiles
R * Make it possible to change only the colorspace of the image, without
conversions. (I think this can be done without adding new gui strings)
Files and Import/Export
......
......@@ -40,7 +40,7 @@ libkritaui_la_SOURCES = kis_histogram_view.cc imageviewer.cc kcurve.cc \
wdgtextbrush.ui kis_dlg_adjustment_layer.cc kis_filters_listview.cc \
wdgpalettechooser.ui wdggridsettings.ui kis_grid_manager.cpp \
wdgtabletdevicesettings.ui wdgtabletsettings.ui kis_input_device.cc \
kis_part_layer_handler.cc kis_dlg_adj_layer_props.cc
kis_part_layer_handler.cc kis_dlg_adj_layer_props.cc squeezedcombobox.cpp
noinst_HEADERS = kis_aboutdata.h imageviewer.h layerlist.h kcurve.h \
kis_autobrush.h kis_autogradient.h kis_birdeye_box.h kis_brush_chooser.h \
......@@ -51,7 +51,7 @@ noinst_HEADERS = kis_aboutdata.h imageviewer.h layerlist.h kcurve.h \
kis_part_layer.h kis_pattern_chooser.h kis_resource_mediator.h kis_resourceserver.h \
kis_ruler.h kis_selection_manager.h kis_selection_options.h kis_view_iface.h \
kis_custom_brush.h kis_custom_pattern.h kis_custom_image_widget.h \
kis_dlg_adjustment_layer.h kis_grid_manager.h kis_dlg_adj_layer_props.h
kis_dlg_adjustment_layer.h kis_grid_manager.h kis_dlg_adj_layer_props.h squeezedcombobox.h
include_HEADERS = kis_cmb_composite.h kis_cmb_idlist.h kis_color_cup.h kis_config.h \
kis_cursor.h kis_doc.h kis_doc_iface.h \
......
......@@ -25,6 +25,7 @@
#include "kis_colorspace.h"
#include "kis_id.h"
#include "kis_cmb_idlist.h"
#include "squeezedcombobox.h"
#include "kis_color.h"
#include <kcolorcombo.h>
......
......@@ -30,6 +30,7 @@
#include "kis_id.h"
#include <kis_meta_registry.h>
#include "kis_cmb_idlist.h"
#include "squeezedcombobox.h"
#include "wdgapplyprofile.h"
// XXX: Hardcode RGBA name. This should be a constant, somewhere.
......
......@@ -35,13 +35,14 @@
#include "kis_meta_registry.h"
#include "kis_colorspace_factory_registry.h"
#include "kis_dlg_image_properties.h"
#include "wdgnewimage.h"
#include "kis_profile.h"
#include "kis_types.h"
#include "kis_image.h"
#include "kis_config.h"
#include "kis_id.h"
#include "kis_cmb_idlist.h"
#include "squeezedcombobox.h"
#include "wdgnewimage.h"
KisDlgImageProperties::KisDlgImageProperties(KisImageSP image, QWidget *parent, const char *name)
: super(parent, name, true, "", Ok | Cancel)
......
......@@ -26,6 +26,7 @@
#include <kpushbutton.h>
#include <knuminput.h>
#include "kis_global.h"
#include "squeezedcombobox.h"
#include "wdglayerproperties.h"
#include "kis_dlg_layer_properties.h"
#include "kis_cmb_composite.h"
......
......@@ -31,6 +31,7 @@
#include "kis_global.h"
#include "kis_cmb_composite.h"
#include "kis_cmb_idlist.h"
#include "squeezedcombobox.h"
#include "kis_dlg_new_layer.h"
#include <kis_meta_registry.h>
#include "kis_colorspace_factory_registry.h"
......
......@@ -50,6 +50,7 @@
#include <knuminput.h>
#include <kurlrequester.h>
#include "squeezedcombobox.h"
#include "kis_cmb_idlist.h"
#include "kis_colorspace.h"
#include "kis_colorspace_factory_registry.h"
......
......@@ -197,7 +197,8 @@ void KisFiltersListView::buildPreview()
itc++)
{
KisFiltersIconViewItem * icon = new KisFiltersIconViewItem( this, (*it).name(), pm, *it, f, *itc, m_thumb, bounds, m_profile );
KisThreadPool::instance()->enqueue(icon->thread());
//KisThreadPool::instance()->enqueue(icon->thread());
icon->thread()->runDirectly();
}
}
}
......
......@@ -188,7 +188,8 @@ void KisToolManager::setCurrentTool(KisTool *tool)
}
QWidget * w = tool->optionWidget();
m_paletteManager->addWidget(w, krita::TOOL_OPTION_WIDGET, krita::CONTROL_PALETTE );
if (w)
m_paletteManager->addWidget(w, krita::TOOL_OPTION_WIDGET, krita::CONTROL_PALETTE );
m_inputDeviceToolMap[m_controller->currentInputDevice()] = tool;
m_controller->setCanvasCursor(tool->cursor());
......
/* ============================================================
* Author: Tom Albers <tomalbers@kde.nl>
* Date : 2005-01-01
* Description :
*
* Copyright 2005 by Tom Albers
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* This program 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 General Public License for more details.
*
* ============================================================ */
/** @file squeezedcombobox.cpp */
// Qt includes.
#include <qlistbox.h>
#include <qcombobox.h>
#include <qpair.h>
#include <qtimer.h>
#include <qvaluelist.h>
#include <qstyle.h>
#include <qapplication.h>
#include <qtooltip.h>
// Local includes.
#include "squeezedcombobox.h"
SqueezedComboBoxTip::SqueezedComboBoxTip( QWidget * parent, SqueezedComboBox* name )
: QToolTip( parent )
{
m_originalWidget = name;
}
void SqueezedComboBoxTip::maybeTip( const QPoint &pos )
{
QListBox* listBox = m_originalWidget->listBox();
if (!listBox)
return;
QListBoxItem* selectedItem = listBox->itemAt( pos );
if (selectedItem)
{
QRect positionToolTip = listBox->itemRect( selectedItem );
QString toolTipText = m_originalWidget->itemHighlighted();
if (!toolTipText.isNull())
tip(positionToolTip, toolTipText);
}
}
SqueezedComboBox::SqueezedComboBox( QWidget *parent, const char *name )
: QComboBox( parent, name )
{
setMinimumWidth(100);
m_timer = new QTimer(this);
m_tooltip = new SqueezedComboBoxTip( listBox()->viewport(), this );
connect(m_timer, SIGNAL(timeout()),
SLOT(slotTimeOut()));
connect(this, SIGNAL(activated( int )),
SLOT(slotUpdateToolTip( int )));
}
SqueezedComboBox::~SqueezedComboBox()
{
delete m_tooltip;
delete m_timer;
}
bool SqueezedComboBox::contains( const QString& _text ) const
{
if ( _text.isEmpty() )
return false;
const int itemCount = count();
for (int i = 0; i < itemCount; ++i )
{
if ( text(i) == _text )
return true;
}
return false;
}
QSize SqueezedComboBox::sizeHint() const
{
constPolish();
QFontMetrics fm = fontMetrics();
int maxW = count() ? 18 : 7 * fm.width(QChar('x')) + 18;
int maxH = QMAX( fm.lineSpacing(), 14 ) + 2;
return style().sizeFromContents(QStyle::CT_ComboBox, this,
QSize(maxW, maxH)).
expandedTo(QApplication::globalStrut());
}
void SqueezedComboBox::insertSqueezedItem(const QString& newItem, int index)
{
m_originalItems[index] = newItem;
insertItem( squeezeText(newItem), index );
// if this is the first item, set the tooltip.
if (index == 0)
slotUpdateToolTip(0);
}
void SqueezedComboBox::resizeEvent ( QResizeEvent * )
{
m_timer->start(200, true);
}
void SqueezedComboBox::slotTimeOut()
{
QMapIterator<int,QString> it;
for (it = m_originalItems.begin() ; it != m_originalItems.end();
++it)
{
changeItem( squeezeText( it.data() ), it.key() );
}
}
QString SqueezedComboBox::squeezeText( const QString& original)
{
// not the complete widgetSize is usable. Need to compensate for that.
int widgetSize = width()-30;
QFontMetrics fm( fontMetrics() );
// If we can fit the full text, return that.
if (fm.width(original) < widgetSize)
return(original);
// We need to squeeze.
QString sqItem = original; // prevent empty return value;
widgetSize = widgetSize-fm.width("...");
for (uint i = 0 ; i != original.length(); ++i)
{
if ( (int)fm.width(original.right(i)) > widgetSize)
{
sqItem = QString("..." + original.right(--i));
break;
}
}
return sqItem;
}
void SqueezedComboBox::slotUpdateToolTip( int index )
{
QToolTip::remove(this);
QToolTip::add(this, m_originalItems[index]);
}
QString SqueezedComboBox::itemHighlighted()
{
int curItem = this->listBox()->currentItem();
return m_originalItems[curItem];
}
#include "squeezedcombobox.moc"
/* ============================================================
* Author: Tom Albers <tomalbers@kde.nl>
* Date : 2005-01-01
* Description :
*
* Copyright 2005 by Tom Albers
*
* This program is free software; you can redistribute it
* and/or modify it under the terms of the GNU General
* Public License as published by the Free Software Foundation;
* either version 2, or (at your option)
* any later version.
*
* This program 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 General Public License for more details.
*
* ============================================================ */
/** @file squeezedcombobox.h */
#ifndef SQUEEZEDCOMBOBOX_H
#define SQUEEZEDCOMBOBOX_H
class QTimer;
// Qt includes.
#include <qcombobox.h>
#include <qtooltip.h>
class SqueezedComboBox;
/** @class SqueezedComboBoxTip
* This class shows a tooltip for a SqueezedComboBox
* the tooltip will contain the full text and helps
* the user find the correct entry. It is automatically
* activated when starting a SqueezedComboBox. This is
* inherited from QToolTip
*
* @author Tom Albers
*/
class SqueezedComboBoxTip : public QToolTip
{
public:
/**
* Constructor. An example call (as done in
* SqueezedComboBox::SqueezedComboBox):
* @code
* t = new SqueezedComboBoxTip( this->listBox()->viewport(), this );
* @endcode
*
* @param parent parent widget (viewport)
* @param name parent widget
*/
SqueezedComboBoxTip( QWidget *parent, SqueezedComboBox *name );
protected:
/**
* Reimplemented version from QToolTip which shows the
* tooltip when needed.
* @param pos the point where the mouse currently is
*/
void maybeTip( const QPoint& pos );
private:
SqueezedComboBox* m_originalWidget;
};
/** @class SqueezedComboBox
*
* This widget is a QComboBox, but then a little bit
* different. It only shows the right part of the items
* depending on de size of the widget. When it is not
* possible to show the complete item, it will be shortened
* and "..." will be prepended.
*
* @image html squeezedcombobox.png "This is how it looks"
* @author Tom Albers
*/
class SqueezedComboBox : public QComboBox
{
Q_OBJECT
public:
/**
* Constructor
* @param parent parent widget
* @param name name to give to the widget
*/
SqueezedComboBox(QWidget *parent = 0, const char *name = 0 );
/**
* destructor
*/
virtual ~SqueezedComboBox();
bool contains(const QString & text) const;
/**
* This inserts a item to the list. See QComboBox::insertItem()
* for detaills. Please do not use QComboBox::insertItem() to this
* widget, as that will fail.
* @param newItem the original (long version) of the item which needs
* to be added to the combobox
* @param index the position in the widget.
*/
void insertSqueezedItem(const QString& newItem, int index);
/**
* This method returns the full text (not squeezed) of the currently
* highlighted item.
* @return full text of the highlighted item
*/
QString itemHighlighted( );
/**
* Sets the sizeHint() of this widget.
*/
virtual QSize sizeHint() const;
private slots:
void slotTimeOut();
void slotUpdateToolTip( int index );
private:
void resizeEvent ( QResizeEvent * );
QString squeezeText( const QString& original);
QMap<int,QString> m_originalItems;
QTimer* m_timer;
SqueezedComboBoxTip* m_tooltip;
};
#endif // SQUEEZEDCOMBOBOX_H
......@@ -46,7 +46,7 @@
<cstring>cmbProfile</cstring>
</property>
</widget>
<widget class="QComboBox" row="1" column="1">
<widget class="SqueezedComboBox" row="1" column="1">
<item>
<property name="text">
<string>None</string>
......@@ -142,6 +142,29 @@
</widget>
</grid>
</widget>
<customwidgets>
<customwidget>
<class>SqueezedComboBox</class>
<header location="local">squeezedcombobox.h</header>
<sizehint>
<width>-1</width>
<height>i24</height>
</sizehint>
<container>0</container>
<sizepolicy>
<hordata>3</hordata>
<verdata>0</verdata>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<pixmap>image0</pixmap>
</customwidget>
</customwidgets>
<images>
<image name="image0">
<data format="PNG" length="870">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000032d49444154388db59531681c4714863f892dde8004b320c32e3870020b74458a6b0f5458e581c016a809a8496b42208454098604d2c4904a6954a410511ae752085b858c1208dc35221244b00119f60ac12ee860062c980719708a95a248f129459cd7cceeccf0edb76fff61a706830197d5ed765ff3166a30184c4d5d829fed3c7bdd5e6ce3bda71a5738ef301802e1d6d179477152303c1842bc822797a64fbf7b4a9a43be00ada817cb0e12011c2611205ccd73755f9c087c6b19bef0d7c100f5b8267d07caf10fe8ab9210156320fc01be16aa5a11043307f30b20a21041019985f48ef2f7fa0becc68e80475fd584e831b396f210f67795c3831a4940a3228925bb27f4d652ba4b01a199b73342f3981be0ca57745042ac30c632d853b6373d44b056c8ef0922508d94d14be59b2f4aeaf58cd5751069e06f3436890114332b9487d0bf80f61e64dc5f813c3790045453f67703fd4d4f7f6b4496b5597e689044af194f5f5e841800210478bee3d1a8f41e64acbe0f69ae6852e1cf0ccf7f74f4d652defbc042226c6f55e8f89f91bb6e9c387c9d521c9558db988a3416fe3c67e32b4779ec7167f0e8939ce19ea7fc5d298a80c875f03563930855ed2081bc05e91d5014ef53363eaf288e3d6285ee520a338e76c7a251a94e41e30470d3631004a262672e3eca59cec6978ef2b889979d11f2bb904af3be92081a416e28dfe831983920b1142345d5b0ff2234a6334276d7321ad53c795c511ca654a5a251996f19b83d158ef602b45a423d52f67703abeb29ee4ce9de4fc93378f218462f6b3efdb042cf3d59666977a0aa6fe9310888d25b13342afd4dcffeaee3d147399da540ab13f8f8b39c2cb3f8710d11ba2b96f9c57fcd7180287497a03ecde86f8dd8fe1a867b9ef6bb1612a84a871f6bd35b94e217a53832589970f2dcd85d9c7d4580d57521cbdaf4bfaf288e95e268d4ec8e60e72ccb0f2dbffea454e71e8d29f57882717152509482a48d8924b0bc12e82ee51445a03a6da079cbd0eec0fc22142b06620e89a3fc8d3783870743d814d2bc8994aa6ff286472e764902e5a96f72bbd3b4c37b280e95aa9e604c84e1cf978b37c74935797d7ae2ca7fac6968fe51ff0bf86dc30783c1d49f0baa9bb819e612310000000049454e44ae426082</data>
</image>
</images>
<tabstops>
<tabstop>cmbProfile</tabstop>
</tabstops>
......
......@@ -89,7 +89,7 @@
<string>The icm profile for your calibrated monitor.</string>
</property>
</widget>
<widget class="KComboBox">
<widget class="SqueezedComboBox">
<property name="name">
<cstring>cmbMonitorProfile</cstring>
</property>
......@@ -351,11 +351,31 @@
</sizepolicy>
<pixmap>image0</pixmap>
</customwidget>
<customwidget>
<class>SqueezedComboBox</class>
<header location="local">squeezedcombobox.h</header>
<sizehint>
<width>-1</width>
<height>i24</height>
</sizehint>
<container>0</container>
<sizepolicy>
<hordata>3</hordata>
<verdata>0</verdata>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<pixmap>image1</pixmap>
</customwidget>
</customwidgets>
<images>
<image name="image0">
<data format="PNG" length="870">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b0000032d49444154388db59531681c4714863f892dde8004b320c32e3870020b74458a6b0f5458e581c016a809a8496b42208454098604d2c4904a6954a410511ae752085b858c1208dc35221244b00119f60ac12ee860062c980719708a95a248f129459cd7cceeccf0edb76fff61a706830197d5ed765ff3166a30184c4d5d829fed3c7bdd5e6ce3bda71a5738ef301802e1d6d179477152303c1842bc822797a64fbf7b4a9a43be00ada817cb0e12011c2611205ccd73755f9c087c6b19bef0d7c100f5b8267d07caf10fe8ab9210156320fc01be16aa5a11043307f30b20a21041019985f48ef2f7fa0becc68e80475fd584e831b396f210f67795c3831a4940a3228925bb27f4d652ba4b01a199b73342f3981be0ca57745042ac30c632d853b6373d44b056c8ef0922508d94d14be59b2f4aeaf58cd5751069e06f3436890114332b9487d0bf80f61e64dc5f813c3790045453f67703fd4d4f7f6b4496b5597e689044af194f5f5e841800210478bee3d1a8f41e64acbe0f69ae6852e1cf0ccf7f74f4d652defbc042226c6f55e8f89f91bb6e9c387c9d521c9558db988a3416fe3c67e32b4779ec7167f0e8939ce19ea7fc5d298a80c875f03563930855ed2081bc05e91d5014ef53363eaf288e3d6285ee520a338e76c7a251a94e41e30470d3631004a262672e3eca59cec6978ef2b889979d11f2bb904af3be92081a416e28dfe831983920b1142345d5b0ff2234a6334276d7321ad53c795c511ca654a5a251996f19b83d158ef602b45a423d52f67703abeb29ee4ce9de4fc93378f218462f6b3efdb042cf3d59666977a0aa6fe9310888d25b13342afd4dcffeaee3d147399da540ab13f8f8b39c2cb3f8710d11ba2b96f9c57fcd7180287497a03ecde86f8dd8fe1a867b9ef6bb1612a84a871f6bd35b94e217a53832589970f2dcd85d9c7d4580d57521cbdaf4bfaf288e95e268d4ec8e60e72ccb0f2dbffea454e71e8d29f57882717152509482a48d8924b0bc12e82ee51445a03a6da079cbd0eec0fc22142b06620e89a3fc8d3783870743d814d2bc8994aa6ff286472e764902e5a96f72bbd3b4c37b280e95aa9e604c84e1cf978b37c74935797d7ae2ca7fac6968fe51ff0bf86dc30783c1d49f0baa9bb819e612310000000049454e44ae426082</data>
</image>
<image name="image1">
<data format="PNG" length="1003">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b249444154388db5944d4c5c5518869f73ce9db9cc40f929cc30300e18129a50685268a28291982e1a2175212eaab1c49d3f8971e7aec6aedb54a32b435dd8685cb8c0c4b8b0feb421b7bd8186a069d23209144b18cb0c02f3732ff3c3ccbdd705a571941213f1dd9d93739ef37e6fbeef08d334d9d5d0d090c701c8344d2176c1a6697a5d5d5dd8b64d2a95c2b2ac7f05b12c8b783c8e6118d8b6fd685fdb753a39394928e2a7c55724d693a7e214104220242805520a84d8b9e4790f0b1302c7751958f1e30534be9fa41a0c60db362dbe227f64af91b6e7719c2dfc0117a71c603da591de2882a7d3d4ec27122b10acad50aeb88044d542b84de3af7ab44aa55274f4e449dbf354bc347aa096fbf37e7efa2ecbad1b36907d78b289de8120232f37726250c3f52cf0a026a0f6065b9645d929e038167aa096d91b307171059034b5f8e9e9eb44fa052b4b25eeccd9dc99cb71f6ad082fbea2e351c075bdbdc13b9109fc01b83fef63e2e232e03076b68393231a0dcd024daf502c1e66e67a89cb971ef0e5a74bb4b61e6378248094b92ab0ac024b70ca017ef8360394187b2dc6d8b89ffa500e4d4f93d9083275d5e6f9913ade3dd70ee87c7d25c95646a25415aadab152b09ed4f8c5cc130a853839eac3951b684a61e70ef3f9c739668c24eba912afbfddc6d4d506e6a6d7b8b7d082aa8eb8dab19482cdcd220e36dd3dc19df23545de0a71f952861923493456cfd3cf36123c54a0b7bf0e8064621b21f7712c040857071ca4eea0f40a99f510573ec971cb48030e811a1faded3e94be85f2fb00703d1ff26f96ab9f011a5b04d0c4f26fdb948a754c1b25668c2491483d5d5d611617d6b8f0fe32cb779b492ce65168b4c774a4701eefd8f3a02d56e6e8f13aeefe9a63fa5a89d1970e91d908f3d46003e1480d173e28b37827c9b977348ab92ce16890237d1ec907ee3e8e3d8f60d0e1f4583d009f7d9860662acff89bad1c1faad0717493f7ce7713ed8cb0995c255f2a317a26427b67198f6a70f51c0a41b902279ed1187f23cc17130b7c74de65eac77a7a8f05517e41e2deefa4930576db60fa7a8ee1535134df3e93e7b82e0817476439fd6a9070a49f6fbe4a3077739db99b15c001146dd13a46cf1cc1f83943c62e51de76b0738fc9381e8f3390f0236b252e124999e11724fd833196164bacadb87848224fe874f779b43fe9f2dca928956d505a96dbb3f9bdc18661e00534c26d1a7a40e13912a11c9454280da41048a9915c75585df500074d53d816dc9edd229528ef0db66dbbea3ffdaffa471f1f28d8344df1bf800f1a6e9aa6f813c39885bc050f269c0000000049454e44ae426082</data>
</image>
</images>
<layoutdefaults spacing="6" margin="11"/>
<includehints>
......
......@@ -32,7 +32,7 @@
<cstring>intOpacity</cstring>
</property>
</widget>
<widget class="QComboBox" row="2" column="1">
<widget class="SqueezedComboBox" row="2" column="1">
<property name="name">
<cstring>cmbProfile</cstring>
</property>
......@@ -138,6 +138,22 @@
</sizepolicy>
<pixmap>image1</pixmap>
</customwidget>
<customwidget>
<class>SqueezedComboBox</class>
<header location="local">squeezedcombobox.h</header>
<sizehint>
<width>-1</width>
<height>i24</height>
</sizehint>
<container>0</container>
<sizepolicy>
<hordata>3</hordata>
<verdata>0</verdata>
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
<pixmap>image2</pixmap>
</customwidget>
</customwidgets>
<images>
<image name="image0">
......@@ -146,6 +162,9 @@
<image name="image1">
<data format="PNG" length="1002">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b149444154388dad945f4c5b551cc73fe7dc4b7b4bcba0762d45c43114323599ee6192609c51d883892ce083f1718b3ebb185f8dc91e972cf39d2d2a2f1af664b6f1e0fe3863a0718969700eb0c52142da0242a1bd6d696f7bcff101585203ceb8fd9ece39f99dcff9fe7edf939f88c562ec465f5f9fe609442c161362173c3e3eae7b7a7ac8e7f36432196cdbfe4f907c3e4f2291201e8fe338cec3737357e9e8e828aded1e229d650e1f2d51754b082110124c13a4dc5ea341eb9dc284c0558a853f3ce8cb0677ef500fde7d39d2596679e326597b8e9abb85d7a770ab16ab6983ec5a05b487a70e36f0f4e10afe408d6a558310980108478dba4a1e8233990c5d474b64ed39aa3a8fe5f3317fbf81dbd70bccfeb205947632fd74f6589c1c6ea2f70d03a58ba0c1f2c9bdc1b66de3b8256a6e11cbe7e3ee1d181b590124fe2693aeee08d223c82c3a2c24b7b874bec8f26288774f7bd054504aef0dde6e99c0eb83f9fb266323cb80a27fb0958141836044605a2ee5523393371cc646fee2da37195aa35d0c0c5b4859ac03d7e91712dcaac5adab3650a3ff9d08ef7dd8404bb48869e5d958b5b87dadc4c9a1464e9f0d0326df7ebd86bd2e310cb1bf62d384d59441f2d70a070e1c60e09489929b988681bdd9cc97170bcc4c65595f71f8e0e3301337fc24a7732467831875a47f289652b0be5e4151e6d07316c1b0c0340d8ab92023e76d66a6b2840e36d2fb7a13fee632475e6edc367ea98a90fb98b7dd6310ca0328a44761582e1bab41befabcc0ec940d28bc5e93b68e064cab84e1d9beaeb48934eac1f53b01c1b000fca496aa54b61a99fcde61662a4b4b4b23d1680be9d426173e4df3602a48ea411989a4fd590f52a8fd156b05ed9d350e3defe3cfdf4b4c7ce770ea7d3fb9f520afbe1620daeee5c26735d20b9b9cfb6811a754a439e4e5c5639a4caa1e5caf586bfc0197b78702005cb9b4cae4cd3267ce8638fe964bd72b393e39d74928d242617303a756a37f284447770dcdbffc6384a05a85de1306e9a52057c7527c7131c3c42d3f475eb2303c82d4fc3276d6811db37efeb148723082d9b08f79f97c1e5729109a9a28307cc622d2d6cdf52b2b24efe548dedb00142009862cfa879ee1a71f6cec928353511472fbf4389148b0b0e0c108081412458dfe21c9f11351e67e7358595468246d1d1e5e38a6e9e851bc39d84ab502a669331dafec0d8ec7e3e8cb06e1a881d727d1ae40180a434a8c9db129a54126ad48a7358c2b4c5352c8c374bcccdab2bb37d8719cba79fab8211f9df218e0582c261e95f8bfc04f1a1e8bc5c4dfe0a190172af6a9690000000049454e44ae426082</data>
</image>
<image name="image2">
<data format="PNG" length="1003">89504e470d0a1a0a0000000d4948445200000016000000160806000000c4b46c3b000003b249444154388db5944d4c5c5518869f73ce9db9cc40f929cc30300e18129a50685268a28291982e1a2175212eaab1c49d3f8971e7aec6aedb54a32b435dd8685cb8c0c4b8b0feb421b7bd8186a069d23209144b18cb0c02f3732ff3c3ccbdd705a571941213f1dd9d93739ef37e6fbeef08d334d9d5d0d090c701c8344d2176c1a6697a5d5d5dd8b64d2a95c2b2ac7f05b12c8b783c8e6118d8b6fd685fdb753a39394928e2a7c55724d693a7e214104220242805520a84d8b9e4790f0b1302c7751958f1e30534be9fa41a0c60db362dbe227f64af91b6e7719c2dfc0117a71c603da591de2882a7d3d4ec27122b10acad50aeb88044d542b84de3af7ab44aa55274f4e449dbf354bc347aa096fbf37e7efa2ecbad1b36907d78b289de8120232f37726250c3f52cf0a026a0f6065b9645d929e038167aa096d91b307171059034b5f8e9e9eb44fa052b4b25eeccd9dc99cb71f6ad082fbea2e351c075bdbdc13b9109fc01b83fef63e2e232e03076b68393231a0dcd024daf502c1e66e67a89cb971ef0e5a74bb4b61e6378248094b92ab0ac024b70ca017ef8360394187b2dc6d8b89ffa500e4d4f93d9083275d5e6f9913ade3dd70ee87c7d25c95646a25415aadab152b09ed4f8c5cc130a853839eac3951b684a61e70ef3f9c739668c24eba912afbfddc6d4d506e6a6d7b8b7d082aa8eb8dab19482cdcd220e36dd3dc19df23545de0a71f952861923493456cfd3cf36123c54a0b7bf0e8064621b21f7712c040857071ca4eea0f40a99f510573ec971cb48030e811a1faded3e94be85f2fb00703d1ff26f96ab9f011a5b04d0c4f26fdb948a754c1b25668c2491483d5d5d611617d6b8f0fe32cb779b492ce65168b4c774a4701eefd8f3a02d56e6e8f13aeefe9a63fa5a89d1970e91d908f3d46003e1480d173e28b37827c9b977348ab92ce16890237d1ec907ee3e8e3d8f60d0e1f4583d009f7d9860662acff89bad1c1faad0717493f7ce7713ed8cb0995c255f2a317a26427b67198f6a70f51c0a41b902279ed1187f23cc17130b7c74de65eac77a7a8f05517e41e2deefa4930576db60fa7a8ee1535134df3e93e7b82e0817476439fd6a9070a49f6fbe4a3077739db99b15c001146dd13a46cf1cc1f83943c62e51de76b0738fc9381e8f3390f0236b252e124999e11724fd833196164bacadb87848224fe874f779b43fe9f2dca928956d505a96dbb3f9bdc18661e00534c26d1a7a40e13912a11c9454280da41048a9915c75585df500074d53d816dc9edd229528ef0db66dbbea3ffdaffa471f1f28d8344df1bf800f1a6e9aa6f813c39885bc050f269c0000000049454e44ae426082</data>
</image>
</images>
<layoutdefaults spacing="6" margin="11"/>
</UI>
......@@ -179,12 +179,7 @@
<cstring>cmbColorSpaces</cstring>
</property>
</widget>
<widget class="QComboBox" row="1" column="1">
<item>