Branch: master

588b1440 2019-06-18 13:59:34 Michele Calgaro
tdefilereplace:
1) fixed delete button logic
2) added remove entry functionality

Signed-off-by: Michele Calgaro <michele.calgaro@...>
M tdefilereplace/tdefilereplacepart.cpp
M tdefilereplace/tdefilereplacepartui.rc
M tdefilereplace/tdefilereplaceview.cpp
M tdefilereplace/tdefilereplaceview.h

tdefilereplace/tdefilereplacepart.cpp

diff --git a/tdefilereplace/tdefilereplacepart.cpp b/tdefilereplace/tdefilereplacepart.cpp
index 455b69c..7d0da75 100644
--- a/tdefilereplace/tdefilereplacepart.cpp
+++ b/tdefilereplace/tdefilereplacepart.cpp
@@ -501,9 +501,13 @@
   // Results
   actionCollection()->action("results_infos")->setEnabled(hasItems);
   actionCollection()->action("results_openfile")->setEnabled(hasItems);
+  actionCollection()->action("results_openfilewith")->setEnabled(hasItems);
   if (actionCollection()->action("results_editfile"))
+  {
       actionCollection()->action("results_editfile")->setEnabled(hasItems);
+  }
   actionCollection()->action("results_opendir")->setEnabled(hasItems);
+  actionCollection()->action("results_removeentry")->setEnabled(hasItems);
   actionCollection()->action("results_delete")->setEnabled(hasItems);
   actionCollection()->action("results_treeexpand")->setEnabled(hasItems);
   actionCollection()->action("results_treereduce")->setEnabled(hasItems);
@@ -606,13 +610,15 @@
 
   // Results
   (void)new TDEAction(i18n("&Properties"), "informations", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultProperties()), actionCollection(), "results_infos");
-  (void)new TDEAction(i18n("&Open"), "document-new", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultOpen()), actionCollection(), "results_openfile");
+  (void)new TDEAction(i18n("&Open"), "document-open", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultOpen()), actionCollection(), "results_openfile");
+  (void)new TDEAction(i18n("Open &With..."), "document-open", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultOpen()), actionCollection(), "results_openfilewith");
 
   if(quantaFound)
     {
       (void)new TDEAction(i18n("&Edit in Quanta"), "quanta", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultEdit()), actionCollection(), "results_editfile");
     }
-  (void)new TDEAction(i18n("Open Parent &Folder"), "document-open", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultDirOpen()), actionCollection(), "results_opendir");
+  (void)new TDEAction(i18n("Open Parent &Folder"), "go-up", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultDirOpen()), actionCollection(), "results_opendir");
+  (void)new TDEAction(i18n("Remove &Entry"), "edit-clear", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultRemoveEntry()), actionCollection(), "results_removeentry");
   (void)new TDEAction(i18n("&Delete"), "edit-delete", 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultDelete()), actionCollection(), "results_delete");
   (void)new TDEAction(i18n("E&xpand Tree"), 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultTreeExpand()), actionCollection(), "results_treeexpand");
   (void)new TDEAction(i18n("&Reduce Tree"), 0, TQT_TQOBJECT(m_view), TQT_SLOT(slotResultTreeReduce()), actionCollection(), "results_treereduce");
@@ -659,8 +665,11 @@
   actionCollection()->action("results_infos")->setEnabled(false);
   actionCollection()->action("results_openfile")->setEnabled(false);
   if (actionCollection()->action("results_editfile"))
+  {
       actionCollection()->action("results_editfile")->setEnabled(false);
+  }
   actionCollection()->action("results_opendir")->setEnabled(false);
+  actionCollection()->action("results_removeentry")->setEnabled(false);
   actionCollection()->action("results_delete")->setEnabled(false);
   actionCollection()->action("results_treeexpand")->setEnabled(false);
   actionCollection()->action("results_treereduce")->setEnabled(false);

tdefilereplace/tdefilereplacepartui.rc

diff --git a/tdefilereplace/tdefilereplacepartui.rc b/tdefilereplace/tdefilereplacepartui.rc
index e946144..7616165 100644
--- a/tdefilereplace/tdefilereplacepartui.rc
+++ b/tdefilereplace/tdefilereplacepartui.rc
@@ -1,5 +1,5 @@
 <!DOCTYPE kpartgui SYSTEM "kpartgui.dtd">
-<kpartgui name="tdefilereplace" version="6">
+<kpartgui name="tdefilereplace" version="7">
 <MenuBar>
     <Menu name="tdefilerepace"><text>Search/&amp;Replace</text>
         <Action name="new_project"/>
@@ -23,8 +23,10 @@
         </Menu>
         <Menu name="results"><text>&amp;Results</text>
             <Action name="results_openfile"/>
-            <Action name="results_opendir"/>
+            <Action name="results_openfilewith"/>
             <Action name="results_editfile"/>
+            <Action name="results_opendir"/>
+            <Action name="results_removeentry"/>
             <Action name="results_delete"/>
             <Action name="results_infos"/>
             <Separator/>

tdefilereplace/tdefilereplaceview.cpp

diff --git a/tdefilereplace/tdefilereplaceview.cpp b/tdefilereplace/tdefilereplaceview.cpp
index 4bf7319..dd23ad5 100644
--- a/tdefilereplace/tdefilereplaceview.cpp
+++ b/tdefilereplace/tdefilereplaceview.cpp
@@ -74,17 +74,31 @@
   whatsThis();
 }
 
-TQString TDEFileReplaceView::currentPath()
+TQString TDEFileReplaceView::getItemPath(const TQListViewItem *lvi)
+{
+  if (!lvi)
+  {
+    return TQString::null;
+  }
+  return TQString(lvi->text(1)+"/"+lvi->text(0));
+}
+
+TQListViewItem* TDEFileReplaceView::getCurrItemTopLevelParent()
 {
   TQListViewItem *lvi;
-
-  if(! m_lviCurrent) lvi = m_rv->currentItem();
-  else lvi = (TQListViewItem*) m_lviCurrent;
-
+  if (!m_lviCurrent)
+  {
+    lvi = m_rv->currentItem();
+  }
+  else
+  {
+    lvi = (TQListViewItem*)m_lviCurrent;
+  }
   while (lvi->parent())
+  {
     lvi = lvi->parent();
-
-  return TQString(lvi->text(1)+"/"+lvi->text(0));
+  }
+  return lvi;
 }
 
 void TDEFileReplaceView::showSemaphore(TQString s)
@@ -216,10 +230,10 @@
 
 void TDEFileReplaceView::slotResultProperties()
 {
-  TQString currItem = currentPath();
-  if(! currItem.isEmpty())
+  TQString currItemPath = getItemPath(getCurrItemTopLevelParent());
+  if (!currItemPath.isEmpty())
     {
-      KURL url(currItem);
+      KURL url(currItemPath);
       (void) new KPropertiesDialog(url);
       m_lviCurrent = 0;
     }
@@ -227,21 +241,21 @@
 
 void TDEFileReplaceView::slotResultOpen()
 {
-  TQString currItem = currentPath();
-  if(!currItem.isEmpty())
+  TQString currItemPath = getItemPath(getCurrItemTopLevelParent());
+  if (!currItemPath.isEmpty())
     {
-      (void) new KRun(KURL(currItem), 0, true, true);
+      (void) new KRun(KURL(currItemPath), 0, true, true);
       m_lviCurrent = 0;
     }
 }
 
 void TDEFileReplaceView::slotResultOpenWith()
 {
-  TQString currItem = currentPath();
-  if(!currItem.isEmpty())
+  TQString currItemPath = getItemPath(getCurrItemTopLevelParent());
+  if (!currItemPath.isEmpty())
     {
       KURL::List kurls;
-      kurls.append(KURL(currItem));
+      kurls.append(KURL(currItemPath));
       KRun::displayOpenWithDialog(kurls);
       m_lviCurrent = 0;
     }
@@ -249,11 +263,11 @@
 
 void TDEFileReplaceView::slotResultDirOpen()
 {
-  TQString currItem = currentPath();
-  if(!currItem.isEmpty())
+  TQString currItemPath = getItemPath(getCurrItemTopLevelParent());
+  if (!currItemPath.isEmpty())
     {
       TQFileInfo fi;
-      fi.setFile(currItem);
+      fi.setFile(currItemPath);
       (void) new KRun (KURL::fromPathOrURL(fi.dirPath()), 0, true, true);
       m_lviCurrent = 0;
     }
@@ -304,21 +318,32 @@
   m_lviCurrent = 0;
 }
 
+void TDEFileReplaceView::slotResultRemoveEntry()
+{
+  TQListViewItem *currItem = getCurrItemTopLevelParent();
+  if (currItem)
+    {
+        delete currItem;
+        m_lviCurrent = 0;
+    }
+}
+
 void TDEFileReplaceView::slotResultDelete()
 {
-  TQString currItem = currentPath();
-  if (!currItem.isEmpty())
+  TQListViewItem *currItem = getCurrItemTopLevelParent();
+  TQString currItemPath = getItemPath(currItem);
+  if (currItem)
     {
       TQFile fi;
-      int answer = KMessageBox::warningContinueCancel(this, i18n("Do you really want to delete %1?").arg(currItem),
+      int answer = KMessageBox::warningContinueCancel(this, i18n("Do you really want to delete %1?").arg(currItemPath),
                                                       TQString(),KStdGuiItem::del());
 
       if(answer == KMessageBox::Continue)
         {
-          fi.setName(currItem);
+          fi.setName(currItemPath);
           fi.remove();
 
-          delete m_lviCurrent;
+          delete currItem;
           m_lviCurrent = 0;
         }
     }
@@ -549,12 +574,10 @@
                            i18n("&Open"),
                            this,
                            TQT_SLOT(slotResultOpen()));
-  if(!quantaFound)
-    {
-      m_menuResult->insertItem(i18n("Open &With..."),
-                               this,
-                               TQT_SLOT(slotResultOpenWith()));
-    }
+  m_menuResult->insertItem(SmallIconSet(TQString::fromLatin1("document-open")),
+                           i18n("Open &With..."),
+                           this,
+                           TQT_SLOT(slotResultOpenWith()));
 
   if(quantaFound)
     {
@@ -568,6 +591,10 @@
                            i18n("Open Parent &Folder"),
                            this,
                            TQT_SLOT(slotResultDirOpen()));
+  m_menuResult->insertItem(SmallIconSet(TQString::fromLatin1("edit-clear")),
+                           i18n("Remove &Entry"),
+                           this,
+                           TQT_SLOT(slotResultRemoveEntry()));
   m_menuResult->insertItem(SmallIconSet(TQString::fromLatin1("edit-delete")),
                            i18n("&Delete"),
                            this,

tdefilereplace/tdefilereplaceview.h

diff --git a/tdefilereplace/tdefilereplaceview.h b/tdefilereplace/tdefilereplaceview.h
index 6eae3d4..9a4721f 100644
--- a/tdefilereplace/tdefilereplaceview.h
+++ b/tdefilereplace/tdefilereplaceview.h
@@ -62,7 +62,8 @@
     TDEFileReplaceView(RCOptions* info, TQWidget *parent,const char *name);
 
   public:
-    TQString currentPath();
+    TQString getItemPath(const TQListViewItem *lvi);
+    TQListViewItem* getCurrItemTopLevelParent();
     void showSemaphore(TQString s);
     void displayScannedFiles(int foldersNumber, int filesNumber);
** Diff limit reached (max: 250 lines) **