[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-07-18 9:39:23
Message-ID: 1216373963.780153.25384.nullmailer () svn ! kde ! org
[Download RAW message or body]

SVN commit 834160 by adiaferia:

Fixed bug in recents action list. Added remove-from-history feature

 M  +32 -5     plasma-previewer.cpp  
 M  +2 -0      plasma-previewer.h  


--- trunk/playground/base/plasma/applets/previewer/plasma-previewer.cpp #834159:834160
@@ -59,6 +59,7 @@
 
 Previewer::Previewer(QObject *parent, const QVariantList &args) : Plasma::Applet(parent, args),
                                                                 close_i(0),
+                                                                remove_i(0),
                                                                 base(0),
                                                                 m_dialog(0),
                                                                 m_part(0),
@@ -102,7 +103,6 @@
 {
   setupPreviewDialog();
 
-  connect(close_i, SIGNAL(clicked()), this, SLOT(closeFile()));
   //connect(m_icon, SIGNAL(clicked()), this, SLOT(showHide()));
 
   setAcceptDrops( true ); 
@@ -178,8 +178,8 @@
 
  
   m_dialog->installEventFilter(filter);
+  m_dialog->setAttribute(Qt::WA_AlwaysShowToolTips);
 
-
   d_lay = new QVBoxLayout(m_dialog);
   d_lay->setSpacing(1);
   d_lay->setMargin(0);
@@ -192,13 +192,23 @@
   m_label->nativeWidget()->setAlignment(Qt::AlignLeft | Qt::AlignVCenter);
   mime_icon = new QLabel();
   mime_icon->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Fixed);
+
+  remove_i = new QToolButton(m_dialog);
+  remove_i->setAutoRaise(true);
+  remove_i->setIcon(KIcon("user-trash"));
+  remove_i->setToolTip(i18n("Close and remove from history"));
+
   close_i = new QToolButton(m_dialog);
   close_i->setAutoRaise(true);
   close_i->setIcon(KIcon("dialog-close"));
 
+  connect(remove_i, SIGNAL(clicked()), this, SLOT(closeNRemoveCurrent()));
+  connect(close_i, SIGNAL(clicked()), this, SLOT(closeFile()));
+
   QHBoxLayout *n_lay = new QHBoxLayout();
   n_lay->addWidget(mime_icon);
   n_lay->addWidget(m_label->nativeWidget());
+  n_lay->addWidget(remove_i);
   n_lay->addWidget(close_i);
 
   d_lay->addLayout(n_lay);
@@ -303,6 +313,22 @@
   m_dialog->hide();
 }
 
+void Previewer::closeNRemoveCurrent()
+{
+   closeFile();
+   delete m_part;
+   m_part = 0;
+   KUrl cur(currentFile());
+   int index = previewHistory().indexOf(cur);
+   
+   if ( index != -1 ){
+      kDebug()<<"index valid!"<<index;
+      
+      delete recents->actions().at(index);
+      recents->actions().removeAt(index);
+   }
+   
+}
 void Previewer::dropEvent(QGraphicsSceneDragDropEvent *event)
 {
 
@@ -359,9 +385,10 @@
 QList<QUrl> Previewer::previewHistory()
 {
   QList<QUrl> history;
-  for(int i = 0; i < actions.count(); i++){
-    if(actions[i]->data().canConvert(QVariant::Url))
-      history<<actions[i]->data().toUrl();
+  //for(int i = 0; i < actions.count(); i++){
+   for(int i = 0; i < recents->actions().count(); i++){
+    if(recents->actions()[i]->data().canConvert(QVariant::Url))
+      history<<recents->actions()[i]->data().toUrl();
  }
  return history;
 }
--- trunk/playground/base/plasma/applets/previewer/plasma-previewer.h #834159:834160
@@ -64,6 +64,7 @@
     private:
        //Plasma::Icon *m_icon;
        QToolButton *close_i;
+       QToolButton *remove_i;
        QWidget *base;
        KMenu *m_menu;
        Plasma::Dialog *m_dialog;
@@ -98,6 +99,7 @@
       virtual void reopenPreview();
       virtual void stayOnTop(bool);
       virtual void openFile(KUrl u = KUrl());
+      virtual void closeNRemoveCurrent();
 
     public slots:
        virtual void openFile(QString);
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic