Add filter feature to ExtUpgrade (ApiVer = 3)

This commit is contained in:
arcan1s 2015-08-26 00:24:55 +03:00
parent 37726370ee
commit 8228d1d06b
18 changed files with 104 additions and 18 deletions

View File

@ -22,6 +22,7 @@
#include <QDebug> #include <QDebug>
#include <QDir> #include <QDir>
#include <QRegExp>
#include <QSettings> #include <QSettings>
#include <QTextCodec> #include <QTextCodec>
@ -68,6 +69,7 @@ ExtUpgrade *ExtUpgrade::copy(const QString fileName, const int number)
item->setApiVersion(apiVersion()); item->setApiVersion(apiVersion());
item->setComment(comment()); item->setComment(comment());
item->setExecutable(executable()); item->setExecutable(executable());
item->setFilter(filter());
item->setInterval(interval()); item->setInterval(interval());
item->setName(name()); item->setName(name());
item->setNumber(number); item->setNumber(number);
@ -85,6 +87,14 @@ QString ExtUpgrade::executable() const
} }
QString ExtUpgrade::filter() const
{
if (debug) qDebug() << PDEBUG;
return m_filter;
}
int ExtUpgrade::null() const int ExtUpgrade::null() const
{ {
if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG;
@ -110,6 +120,15 @@ void ExtUpgrade::setExecutable(const QString _executable)
} }
void ExtUpgrade::setFilter(const QString _filter)
{
if (debug) qDebug() << PDEBUG;
if (debug) qDebug() << PDEBUG << ":" << "Filter" << _filter;
m_filter = _filter;
}
void ExtUpgrade::setNull(const int _null) void ExtUpgrade::setNull(const int _null)
{ {
if (debug) qDebug() << PDEBUG; if (debug) qDebug() << PDEBUG;
@ -132,6 +151,8 @@ void ExtUpgrade::readConfiguration()
settings.beginGroup(QString("Desktop Entry")); settings.beginGroup(QString("Desktop Entry"));
setExecutable(settings.value(QString("Exec"), m_executable).toString()); setExecutable(settings.value(QString("Exec"), m_executable).toString());
setNull(settings.value(QString("X-AW-Null"), m_null).toInt()); setNull(settings.value(QString("X-AW-Null"), m_null).toInt());
// api == 3
setFilter(settings.value(QString("X-AW-Filter"), m_filter).toString());
settings.endGroup(); settings.endGroup();
} }
@ -167,6 +188,7 @@ int ExtUpgrade::showConfiguration(const QVariant args)
ui->lineEdit_comment->setText(comment()); ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number())); ui->label_numberValue->setText(QString("%1").arg(number()));
ui->lineEdit_command->setText(m_executable); ui->lineEdit_command->setText(m_executable);
ui->lineEdit_filter->setText(m_filter);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked : Qt::Unchecked); ui->checkBox_active->setCheckState(isActive() ? Qt::Checked : Qt::Unchecked);
ui->spinBox_null->setValue(m_null); ui->spinBox_null->setValue(m_null);
ui->spinBox_interval->setValue(interval()); ui->spinBox_interval->setValue(interval());
@ -178,6 +200,7 @@ int ExtUpgrade::showConfiguration(const QVariant args)
setNumber(ui->label_numberValue->text().toInt()); setNumber(ui->label_numberValue->text().toInt());
setApiVersion(AWEUAPI); setApiVersion(AWEUAPI);
setExecutable(ui->lineEdit_command->text()); setExecutable(ui->lineEdit_command->text());
setFilter(ui->lineEdit_filter->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked); setActive(ui->checkBox_active->checkState() == Qt::Checked);
setNull(ui->spinBox_null->value()); setNull(ui->spinBox_null->value());
setInterval(ui->spinBox_interval->value()); setInterval(ui->spinBox_interval->value());
@ -197,6 +220,7 @@ void ExtUpgrade::writeConfiguration() const
settings.beginGroup(QString("Desktop Entry")); settings.beginGroup(QString("Desktop Entry"));
settings.setValue(QString("Exec"), m_executable); settings.setValue(QString("Exec"), m_executable);
settings.setValue(QString("X-AW-Filter"), m_filter);
settings.setValue(QString("X-AW-Null"), m_null); settings.setValue(QString("X-AW-Null"), m_null);
settings.endGroup(); settings.endGroup();
@ -212,7 +236,9 @@ void ExtUpgrade::updateValue()
if (debug) qDebug() << PDEBUG << ":" << "Error" << process->readAllStandardError(); if (debug) qDebug() << PDEBUG << ":" << "Error" << process->readAllStandardError();
QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process->readAllStandardOutput()).trimmed(); QString qoutput = QTextCodec::codecForMib(106)->toUnicode(process->readAllStandardOutput()).trimmed();
value[tag(QString("pkgcount"))] = qoutput.split(QChar('\n'), QString::SkipEmptyParts).count() - m_null; value[tag(QString("pkgcount"))] = m_filter.isEmpty() ?
qoutput.split(QChar('\n'), QString::SkipEmptyParts).count() - m_null :
qoutput.split(QChar('\n'), QString::SkipEmptyParts).filter(QRegExp(m_filter)).count();
} }
@ -224,6 +250,7 @@ void ExtUpgrade::translate()
ui->label_comment->setText(i18n("Comment")); ui->label_comment->setText(i18n("Comment"));
ui->label_number->setText(i18n("Tag")); ui->label_number->setText(i18n("Tag"));
ui->label_command->setText(i18n("Command")); ui->label_command->setText(i18n("Command"));
ui->label_filter->setText(i18n("Filter"));
ui->checkBox_active->setText(i18n("Active")); ui->checkBox_active->setText(i18n("Active"));
ui->label_null->setText(i18n("Null")); ui->label_null->setText(i18n("Null"));
ui->label_interval->setText(i18n("Interval")); ui->label_interval->setText(i18n("Interval"));

View File

@ -31,6 +31,7 @@ class ExtUpgrade : public AbstractExtItem
{ {
Q_OBJECT Q_OBJECT
Q_PROPERTY(QString executable READ executable WRITE setExecutable) Q_PROPERTY(QString executable READ executable WRITE setExecutable)
Q_PROPERTY(QString filter READ filter WRITE setFilter)
Q_PROPERTY(int null READ null WRITE setNull) Q_PROPERTY(int null READ null WRITE setNull)
public: public:
@ -41,10 +42,12 @@ public:
ExtUpgrade *copy(const QString fileName, const int number); ExtUpgrade *copy(const QString fileName, const int number);
// get methods // get methods
QString executable() const; QString executable() const;
QString filter() const;
int null() const; int null() const;
QString uniq() const; QString uniq() const;
// set methods // set methods
void setExecutable(const QString _executable = QString("/usr/bin/true")); void setExecutable(const QString _executable = QString("/usr/bin/true"));
void setFilter(const QString _filter = QString());
void setNull(const int _null = 0); void setNull(const int _null = 0);
public slots: public slots:
@ -63,6 +66,7 @@ private:
void translate(); void translate();
// properties // properties
QString m_executable = QString("/usr/bin/true"); QString m_executable = QString("/usr/bin/true");
QString m_filter = QString("");
int m_null = 0; int m_null = 0;
// internal properties // internal properties
int times = 0; int times = 0;

View File

@ -104,6 +104,29 @@
</item> </item>
</layout> </layout>
</item> </item>
<item>
<layout class="QHBoxLayout" name="layout_filter">
<item>
<widget class="QLabel" name="label_filter">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Preferred">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>Filter</string>
</property>
<property name="alignment">
<set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="lineEdit_filter"/>
</item>
</layout>
</item>
<item> <item>
<layout class="QHBoxLayout" name="layout_active"> <layout class="QHBoxLayout" name="layout_active">
<item> <item>

View File

@ -4,7 +4,8 @@ Name=default-arch
Comment=Archlinux upgrade info Comment=Archlinux upgrade info
Exec=pacman -Qu Exec=pacman -Qu
X-AW-Active=false X-AW-Active=false
X-AW-Filter=
X-AW-Null=0 X-AW-Null=0
X-AW-Interval=3600 X-AW-Interval=3600
X-AW-ApiVersion=2 X-AW-ApiVersion=3
X-AW-Number=0 X-AW-Number=0

View File

@ -4,7 +4,8 @@ Name=default-debian
Comment=Debian upgrade info Comment=Debian upgrade info
Exec=apt-show-versions -u -b Exec=apt-show-versions -u -b
X-AW-Active=false X-AW-Active=false
X-AW-Filter=
X-AW-Null=0 X-AW-Null=0
X-AW-Interval=3600 X-AW-Interval=3600
X-AW-ApiVersion=2 X-AW-ApiVersion=3
X-AW-Number=1 X-AW-Number=1

View File

@ -4,7 +4,8 @@ Name=default-fedora
Comment=Fedora upgrade info Comment=Fedora upgrade info
Exec=yum list updates Exec=yum list updates
X-AW-Active=false X-AW-Active=false
X-AW-Filter=
X-AW-Null=3 X-AW-Null=3
X-AW-Interval=3600 X-AW-Interval=3600
X-AW-ApiVersion=2 X-AW-ApiVersion=3
X-AW-Number=2 X-AW-Number=2

View File

@ -4,7 +4,8 @@ Name=default-mandriva
Comment=Mandriva upgrade info Comment=Mandriva upgrade info
Exec=urpmq --auto-select Exec=urpmq --auto-select
X-AW-Active=false X-AW-Active=false
X-AW-Filter=
X-AW-Null=0 X-AW-Null=0
X-AW-Interval=3600 X-AW-Interval=3600
X-AW-ApiVersion=2 X-AW-ApiVersion=3
X-AW-Number=3 X-AW-Number=3

View File

@ -4,7 +4,8 @@ Name=default-ubuntu
Comment=Ubuntu upgrade info Comment=Ubuntu upgrade info
Exec=aptitude search '~U' Exec=aptitude search '~U'
X-AW-Active=false X-AW-Active=false
X-AW-Filter=
X-AW-Null=0 X-AW-Null=0
X-AW-Interval=3600 X-AW-Interval=3600
X-AW-ApiVersion=2 X-AW-ApiVersion=3
X-AW-Number=4 X-AW-Number=4

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: PACKAGE VERSION\n" "Project-Id-Version: PACKAGE VERSION\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n" "Language-Team: LANGUAGE <LL@li.org>\n"
@ -448,6 +448,9 @@ msgstr ""
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "" msgstr ""
msgid "Filter"
msgstr ""
msgid "Null" msgid "Null"
msgstr "" msgstr ""

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: 2015-08-24 21:55+0300\n" "PO-Revision-Date: 2015-08-24 23:21+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: English <kde-russian@lists.kde.ru>\n" "Language-Team: English <kde-russian@lists.kde.ru>\n"
"Language: ru\n" "Language: ru\n"
@ -457,6 +457,9 @@ msgstr "Wrap colors"
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "Wrap spaces" msgstr "Wrap spaces"
msgid "Filter"
msgstr "Filter"
msgid "Null" msgid "Null"
msgstr "Null" msgstr "Null"

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: 2015-07-31 22:13+0300\n" "PO-Revision-Date: 2015-07-31 22:13+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Spanish <kde-russian@lists.kde.ru>\n" "Language-Team: Spanish <kde-russian@lists.kde.ru>\n"
@ -467,6 +467,9 @@ msgstr "Color de la swap"
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "" msgstr ""
msgid "Filter"
msgstr ""
msgid "Null" msgid "Null"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: 2015-07-31 22:16+0300\n" "PO-Revision-Date: 2015-07-31 22:16+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: French <kde-russian@lists.kde.ru>\n" "Language-Team: French <kde-russian@lists.kde.ru>\n"
@ -473,6 +473,9 @@ msgstr "Couleur de la mémoire d'échange"
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "" msgstr ""
msgid "Filter"
msgstr ""
msgid "Null" msgid "Null"
msgstr "" msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: Awesome widgets\n" "Project-Id-Version: Awesome widgets\n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: 2015-08-20 22:52+0300\n" "PO-Revision-Date: 2015-08-20 22:52+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Dutch <kde-i18n-nl@kde.org>\n" "Language-Team: Dutch <kde-i18n-nl@kde.org>\n"
@ -471,6 +471,9 @@ msgstr "Swap-kleur"
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "" msgstr ""
msgid "Filter"
msgstr ""
msgid "Null" msgid "Null"
msgstr "" msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: 2015-07-31 22:21+0300\n" "PO-Revision-Date: 2015-07-31 22:21+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n" "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@ -462,6 +462,9 @@ msgstr "Cor da swap"
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "" msgstr ""
msgid "Filter"
msgstr ""
msgid "Null" msgid "Null"
msgstr "" msgstr ""

View File

@ -6,8 +6,8 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: 2015-08-24 21:55+0300\n" "PO-Revision-Date: 2015-08-24 23:22+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n" "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
"Language: ru\n" "Language: ru\n"
@ -458,6 +458,9 @@ msgstr "Обработать цвета"
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "Обработать пробелы" msgstr "Обработать пробелы"
msgid "Filter"
msgstr "Фильтр"
msgid "Null" msgid "Null"
msgstr "Пустые строки" msgstr "Пустые строки"

View File

@ -6,7 +6,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: 2015-07-31 22:23+0300\n" "PO-Revision-Date: 2015-07-31 22:23+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Ukrainian <kde-russian@lists.kde.ru>\n" "Language-Team: Ukrainian <kde-russian@lists.kde.ru>\n"
@ -467,6 +467,9 @@ msgstr "Колір swap"
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "" msgstr ""
msgid "Filter"
msgstr ""
msgid "Null" msgid "Null"
msgstr "" msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr "" msgstr ""
"Project-Id-Version: \n" "Project-Id-Version: \n"
"Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n" "Report-Msgid-Bugs-To: https://github.com/arcan1s/awesome-widgets/issues\n"
"POT-Creation-Date: 2015-08-24 21:54+0300\n" "POT-Creation-Date: 2015-08-24 23:21+0300\n"
"PO-Revision-Date: 2015-07-31 22:24+0300\n" "PO-Revision-Date: 2015-07-31 22:24+0300\n"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n" "Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n" "Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@ -469,6 +469,9 @@ msgstr "虚拟内存颜色"
msgid "Wrap spaces" msgid "Wrap spaces"
msgstr "" msgstr ""
msgid "Filter"
msgstr ""
msgid "Null" msgid "Null"
msgstr "" msgstr ""

View File

@ -18,7 +18,7 @@
// extscript api version // extscript api version
#define AWESAPI 3 #define AWESAPI 3
// extupgrade api version // extupgrade api version
#define AWEUAPI 2 #define AWEUAPI 3
// extweather api version // extweather api version
#define AWEWAPI 1 #define AWEWAPI 1
// available time keys // available time keys