[prev in list] [next in list] [prev in thread] [next in thread]
List: kde-commits
Subject: playground/base/plasma/applets/previewer
From: Alessandro Diaferia <alediaferia () gmail ! com>
Date: 2008-08-23 17:59:10
Message-ID: 1219514350.582666.20445.nullmailer () svn ! kde ! org
[Download RAW message or body]
SVN commit 851466 by adiaferia:
file model and selection model complete for brand new previewer
M +66 -20 plasma-previewer.cpp
M +2 -0 plasma-previewer.h
--- trunk/playground/base/plasma/applets/previewer/plasma-previewer.cpp \
#851465:851466 @@ -39,7 +39,6 @@
#include <QDesktopWidget>
#include <QSplitter>
#include <QBitmap>
-#include <QLinearGradient>
// KDE
#include <KIcon>
@@ -76,7 +75,8 @@
m_label(0),
mime_icon(0),
\
currentService(QString()),
- currFile(QString())
+ currFile(QString()),
+ \
m_selectedRegion(QRect())
{
kDebug()<<"ctor";
@@ -238,8 +238,43 @@
//painter->drawRect(m_items[i]);
QList<QUrl> files = previewHistory();
KMimeType::Ptr mimeType = KMimeType::findByUrl(files[i], 0, true);
- QPixmap icon = KIconLoader::global()->loadIcon(mimeType->iconName(), \
KIconLoader::Desktop, 128);
- painter->drawPixmap(m_items[i], icon);
+ KIconLoader::States state = KIconLoader::DefaultState;
+
+ if(m_selectedRegion.intersects(m_items[i])){
+ state = KIconLoader::ActiveState;
+ QColor hilight = \
Plasma::Theme::defaultTheme()->color(Plasma::Theme::BackgroundColor); + \
hilight.setAlphaF(0.7); + painter->save();
+ painter->setPen(Qt::transparent);
+ painter->setBrush(hilight);
+ painter->drawRoundRect(m_items[i], 5,5);
+ painter->restore();
+ }
+
+ QPixmap icon = KIconLoader::global()->loadIcon(mimeType->iconName(), \
KIconLoader::Desktop, 64, state); + QRect r_icon = QRect(m_items[i].x() + 32, \
m_items[i].y(), 64,64); + QRect r_text = QRect(m_items[i].x(), m_items[i].y() + 64, \
m_items[i].width(), + \
m_items[i].height() - 64); +
+
+ painter->drawPixmap(r_icon, icon);
+ painter->save();
+
+ QPen pen(Plasma::Theme::defaultTheme()->color(Plasma::Theme::BackgroundColor).lighter());
+
+ // let's draw the text shadow
+ painter->setPen(pen);
+ painter->setRenderHint(QPainter::SmoothPixmapTransform);
+ painter->drawText(r_text.translated(1,1), Qt::AlignHCenter | Qt::TextWordWrap |
+ Qt::TextWrapAnywhere, \
KUrl(files[i]).fileName()); +
+
+ painter->restore();
+
+ // let's draw the file name
+ painter->drawText(r_text, Qt::AlignHCenter | Qt::TextWordWrap | \
Qt::TextWrapAnywhere, + \
KUrl(files[i]).fileName()); +
}
@@ -249,11 +284,6 @@
panel->resizePanel(QSize(screenRect().width() - itemsRect.right() - \
contentsRect.x(), itemsRect.height())); panel->paintPanel(painter, \
QPoint(itemsRect.right() , itemsRect.y()));
-// svgFile = "widgets/previewer-22";
-// svg->setImagePath( svgFile );
-// svg->paint(painter, QRect(itemsRect.bottomRight().x() - contentsRect.x(), \
itemsRect.y(),
-// screenRect().width() - itemsRect.bottomRight().x(), \
itemsRect.height()));
-// delete svg;
// let's draw the bottom border of the applet
panel->setEnabledBorders(Plasma::PanelSvg::BottomBorder | \
Plasma::PanelSvg::LeftBorder | Plasma::PanelSvg::RightBorder); @@ -291,9 +321,9 @@
kDebug()<<"not returned";
- int spacing = 3;
+ int spacing = 2;
int itemWidth = 128;
- int itemHeight = 128;
+ int itemHeight = 100;
int y = itemsRect.y() - m_scrollBar->value() * ((itemHeight + spacing)/50);
int j = 0;
int z = 0; // number of lines of item..
@@ -625,20 +655,36 @@
{
Q_UNUSED(event);
- if((clicked - scenePos().toPoint()).manhattanLength() < \
KGlobalSettings::dndEventDelay()) + if((clicked - \
scenePos().toPoint()).manhattanLength() < KGlobalSettings::dndEventDelay()){ + \
for (int i = 0; i < m_items.count(); i++){ + \
if(m_items[i].contains(event->pos().toPoint())){ + QRect previous = \
m_selectedRegion; + m_selectedRegion = QRect(m_items[i]);
+ update(m_items[i]);
+ update(previous);
+ break;
+ }else{
+ QRect previous = m_selectedRegion;
+ m_selectedRegion = QRect();
+ update(previous);
+ }
+ }
+ }
// if(m_part)
// m_dialog->setVisible(!m_dialog->isVisible());
// }
- // TODO: animate this behavior and restore last size..
- // and use a specific function..
+// // TODO: animate this behavior and restore last size..
+// // and use a specific function..
+//
+// if(size().height() > 58 ){
+// m_size = size().height();
+// resize(QSize(size().width(), 58));
+// }
+// else
+// resize(QSize(size().width(), m_size));
- if(size().height() > 58 ){
- m_size = size().height();
- resize(QSize(size().width(), 58));
- }
- else
- resize(QSize(size().width(), m_size));
+
}
void Previewer::openUrls(KUrl::List list)
--- trunk/playground/base/plasma/applets/previewer/plasma-previewer.h #851465:851466
@@ -94,6 +94,8 @@
QVector<QRect> m_items;
int m_size;
Plasma::ScrollBar *m_scrollBar;
+ QRect m_selectedRegion;
+ QRegion m_hoveredRegion;
protected:
void dropEvent(QGraphicsSceneDragDropEvent *);
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic