[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: koffice/krita/ui
From: Boudewijn Rempt <boud () valdyas ! org>
Date: 2010-10-31 14:51:29
Message-ID: 20101031145130.013AFAC89B () svn ! kde ! org
[Download RAW message or body]
SVN commit 1191580 by rempt:
Do not calculate filter thumbs if the filter list is hidden
BUG:243691
M +10 -3 forms/wdgfilterselector.ui
M +0 -5 kis_filters_model.cc
M +1 -1 widgets/kis_filter_selector_widget.cc
M +50 -1 widgets/kis_filter_selector_widget.h
--- trunk/koffice/krita/ui/forms/wdgfilterselector.ui #1191579:1191580
@@ -6,8 +6,8 @@
<rect>
<x>0</x>
<y>0</y>
- <width>333</width>
- <height>128</height>
+ <width>390</width>
+ <height>137</height>
</rect>
</property>
<property name="windowTitle">
@@ -29,7 +29,7 @@
</widget>
</item>
<item>
- <widget class="QTreeView" name="filtersSelector">
+ <widget class="KisFilterTree" name="filtersSelector">
<property name="sizePolicy">
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
<horstretch>0</horstretch>
@@ -130,6 +130,13 @@
</item>
</layout>
</widget>
+ <customwidgets>
+ <customwidget>
+ <class>KisFilterTree</class>
+ <extends>QTreeView</extends>
+ <header>kis_filter_selector_widget.h</header>
+ </customwidget>
+ </customwidgets>
<resources/>
<connections/>
</ui>
--- trunk/koffice/krita/ui/kis_filters_model.cc #1191579:1191580
@@ -163,12 +163,10 @@
{
if (index.isValid()) {
if (role == Qt::DecorationRole) {
-#if 1
Private::Node* node = static_cast<Private::Node*>(index.internalPointer());
Private::Filter* filter = dynamic_cast<Private::Filter*>(node);
if (filter) {
if (!d->previewCache.contains(filter->filter)) {
-// KisPaintDeviceSP target = new KisPaintDevice( d->thumb->colorSpace() );
KisPaintDeviceSP target = new KisPaintDevice(*d->thumb);
QRect rc = target->exactBounds();
@@ -183,11 +181,8 @@
}
return d->previewCache[ filter->filter ];
} else {
-#endif
return QVariant();
-#if 1
}
-#endif
} else if (role == Qt::DisplayRole) {
Private::Node* node = static_cast<Private::Node*>(index.internalPointer());
return QVariant(node->displayRole());
--- trunk/koffice/krita/ui/widgets/kis_filter_selector_widget.cc #1191579:1191580
@@ -94,7 +94,7 @@
d->paintDevice = _paintDevice;
d->thumb = d->paintDevice->createThumbnailDevice(100, 100);
d->filtersModel = new KisFiltersModel(d->thumb);
- d->uiFilterSelector.filtersSelector->setModel(d->filtersModel);
+ d->uiFilterSelector.filtersSelector->setFilterModel(d->filtersModel);
d->uiFilterSelector.filtersSelector->header()->setVisible(false);
}
--- trunk/koffice/krita/ui/widgets/kis_filter_selector_widget.h #1191579:1191580
@@ -21,14 +21,21 @@
#define _KIS_FILTER_SELECTOR_WIDGET_H_
#include <QWidget>
+#include <QTreeView>
+#include <QDebug>
+#include <QResizeEvent>
+#include <QSize>
#include <kis_types.h>
class QModelIndex;
class KisFilterConfiguration;
+class QAbstractItemModel;
+class QHideEvent;
+class QShowEvent;
/**
- *
+ * XXX
*/
class KisFilterSelectorWidget : public QWidget
{
@@ -53,4 +60,46 @@
Private* const d;
};
+
+class KisFilterTree: public QTreeView {
+
+public:
+
+ KisFilterTree(QWidget *parent) : QTreeView(parent) {}
+
+ void setFilterModel(QAbstractItemModel * model)
+ {
+ m_model = model;
+ }
+
+protected:
+
+ void resizeEvent(QResizeEvent *event)
+ {
+ if (event->size().width() > 10) {
+ setModel(m_model);
+ }
+ else {
+ setModel(0);
+ }
+ }
+
+ void showEvent(QShowEvent * event)
+ {
+ setModel(m_model);
+ QTreeView::showEvent(event);
+ }
+
+ void hideEvent(QHideEvent * event)
+ {
+ setModel(0);
+ QTreeView::hideEvent(event);
+ }
+
+private:
+
+ QAbstractItemModel *m_model;
+
+};
+
#endif
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic