[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