[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    KDE/kdenetwork/kget
From:       Matthias Fuchs <mat69 () gmx ! net>
Date:       2011-02-10 18:05:16
Message-ID: 20110210180516.8402DAC8BD () svn ! kde ! org
[Download RAW message or body]

SVN commit 1219743 by mfuchs:

User can choose between Wildcard (default) and RegExp2 in the conext menu of the \
LinkView's filterbar. BUG:249454

 M  +3 -0      conf/kget.kcfg  
 M  +38 -1     ui/linkview/kget_linkview.cpp  
 M  +8 -0      ui/linkview/kget_linkview.h  


--- trunk/KDE/kdenetwork/kget/conf/kget.kcfg #1219742:1219743
@@ -191,6 +191,9 @@
     <entry name="LastDirectory" type="Path">
       <default code="true">KGlobalSettings::downloadPath()</default>
     </entry>
+    <entry name="LinkViewFilterPatternSyntax" type="Int">
+        <default>0</default>
+    </entry>
   </group>
  
   <group name="Geometry">
--- trunk/KDE/kdenetwork/kget/ui/linkview/kget_linkview.cpp #1219742:1219743
@@ -11,6 +11,7 @@
 */
 
 #include "kget_linkview.h"
+#include "settings.h"
 #include "kget_sortfilterproxymodel.h"
 #include "core/kget.h"
 #include "core/linkimporter.h"
@@ -18,7 +19,7 @@
 
 #include <QApplication>
 #include <QClipboard>
-#include <QProcess>
+#include <QMenu>
 #include <QStandardItemModel>
 
 #include <KActionCollection>
@@ -70,9 +71,24 @@
     ui.treeView->setModel(m_proxyModel);
     ui.progressBar->hide();
 
+    //creates pattern syntax menu for the text filter
+    m_patternSyntaxMenu = new QMenu(i18nc("of a filter, e.g. RegExp or Wildcard", \
"Pattern Syntax"), this); +    QAction *wildcardAction = new QAction(i18n("Escape \
Sequences"), this); +    wildcardAction->setCheckable(true);
+    wildcardAction->setChecked(Settings::linkViewFilterPatternSyntax() == Wildcard);
+    QAction *regExpAction = new QAction(i18n("Regular Expression"), this);
+    regExpAction->setCheckable(true);
+    regExpAction->setChecked(Settings::linkViewFilterPatternSyntax() == RegExp);
+    QActionGroup *actionGroup = new QActionGroup(this);
+    actionGroup->addAction(wildcardAction);
+    actionGroup->addAction(regExpAction);
+    m_patternSyntaxMenu->addActions(actionGroup->actions());
+
+    connect(wildcardAction, SIGNAL(toggled(bool)), this, \
SLOT(wildcardPatternToggled(bool)));  connect(ui.treeView, SIGNAL(doubleClicked(const \
QModelIndex &)),  this, SLOT(uncheckItem(const QModelIndex &)));
     connect(ui.textFilter, SIGNAL(textChanged(QString)), \
SLOT(setTextFilter(QString))); +    connect(ui.textFilter, \
                SIGNAL(aboutToShowContextMenu(QMenu*)), this, \
                SLOT(contextMenuDisplayed(QMenu*)));
     connect(ui.filterMode, SIGNAL(currentIndexChanged(int)), m_proxyModel, \
                SLOT(setFilterMode(int)));
     connect(ui.filterButtonGroup, SIGNAL(buttonClicked(int)), m_proxyModel, \
                SLOT(setFilterType(int)));
     connect(ui.filterButtonGroup, SIGNAL(buttonClicked(int)), \
SLOT(updateSelectionButtons())); @@ -278,7 +294,12 @@
 {
     // TODO: escape user input for avoding malicious user input! (FiNEX)
     QString temp = text.isEmpty() ? ui.textFilter->text() : text;
+    if (Settings::linkViewFilterPatternSyntax() == Wildcard) {
     m_proxyModel->setFilterWildcard(temp);
+    } else {
+        QRegExp rx(temp, Qt::CaseSensitive, QRegExp::RegExp2);
+        m_proxyModel->setFilterRegExp(rx);
+    }
 
     updateSelectionButtons();
 }
@@ -406,4 +427,20 @@
     ui.importLinks->setEnabled(enabled);
 }
 
+void KGetLinkView::contextMenuDisplayed(QMenu *menu)
+{
+    menu->addSeparator();
+    menu->addMenu(m_patternSyntaxMenu);
+}
+
+
+void KGetLinkView::wildcardPatternToggled(bool enabled)
+{
+    if (enabled) {
+        Settings::setLinkViewFilterPatternSyntax(Wildcard);
+    } else {
+        Settings::setLinkViewFilterPatternSyntax(RegExp);
+    }
+}
+
 #include "kget_linkview.moc"
--- trunk/KDE/kdenetwork/kget/ui/linkview/kget_linkview.h #1219742:1219743
@@ -47,6 +47,8 @@
     void slotCheckSelected();
     void slotInvertSelection();
     void updateSelectionButtons();
+    void contextMenuDisplayed(QMenu *menu);
+    void wildcardPatternToggled(bool enabled);
 
     // import links slots
     void slotStartImport();
@@ -58,10 +60,16 @@
     void checkClipboard();
     void showLinks( const QStringList &links );
 
+private:
+    enum PatternSyntax {
+        Wildcard = 0,
+        RegExp
+    };
     Ui::ImportLinkDialog ui;
     KGetSortFilterProxyModel *m_proxyModel;
     QStringList m_links;
     LinkImporter *m_linkImporter;
+    QMenu *m_patternSyntaxMenu;
 };
 
 #endif // KGET_LINKVIEW_H


[prev in list] [next in list] [prev in thread] [next in thread] 

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