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 <QDir>
#include <QRegExp>
#include <QSettings>
#include <QTextCodec>
@ -68,6 +69,7 @@ ExtUpgrade *ExtUpgrade::copy(const QString fileName, const int number)
item->setApiVersion(apiVersion());
item->setComment(comment());
item->setExecutable(executable());
item->setFilter(filter());
item->setInterval(interval());
item->setName(name());
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
{
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)
{
if (debug) qDebug() << PDEBUG;
@ -132,6 +151,8 @@ void ExtUpgrade::readConfiguration()
settings.beginGroup(QString("Desktop Entry"));
setExecutable(settings.value(QString("Exec"), m_executable).toString());
setNull(settings.value(QString("X-AW-Null"), m_null).toInt());
// api == 3
setFilter(settings.value(QString("X-AW-Filter"), m_filter).toString());
settings.endGroup();
}
@ -167,6 +188,7 @@ int ExtUpgrade::showConfiguration(const QVariant args)
ui->lineEdit_comment->setText(comment());
ui->label_numberValue->setText(QString("%1").arg(number()));
ui->lineEdit_command->setText(m_executable);
ui->lineEdit_filter->setText(m_filter);
ui->checkBox_active->setCheckState(isActive() ? Qt::Checked : Qt::Unchecked);
ui->spinBox_null->setValue(m_null);
ui->spinBox_interval->setValue(interval());
@ -178,6 +200,7 @@ int ExtUpgrade::showConfiguration(const QVariant args)
setNumber(ui->label_numberValue->text().toInt());
setApiVersion(AWEUAPI);
setExecutable(ui->lineEdit_command->text());
setFilter(ui->lineEdit_filter->text());
setActive(ui->checkBox_active->checkState() == Qt::Checked);
setNull(ui->spinBox_null->value());
setInterval(ui->spinBox_interval->value());
@ -197,6 +220,7 @@ void ExtUpgrade::writeConfiguration() const
settings.beginGroup(QString("Desktop Entry"));
settings.setValue(QString("Exec"), m_executable);
settings.setValue(QString("X-AW-Filter"), m_filter);
settings.setValue(QString("X-AW-Null"), m_null);
settings.endGroup();
@ -212,7 +236,9 @@ void ExtUpgrade::updateValue()
if (debug) qDebug() << PDEBUG << ":" << "Error" << process->readAllStandardError();
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_number->setText(i18n("Tag"));
ui->label_command->setText(i18n("Command"));
ui->label_filter->setText(i18n("Filter"));
ui->checkBox_active->setText(i18n("Active"));
ui->label_null->setText(i18n("Null"));
ui->label_interval->setText(i18n("Interval"));

View File

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

View File

@ -104,6 +104,29 @@
</item>
</layout>
</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>
<layout class="QHBoxLayout" name="layout_active">
<item>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: PACKAGE VERSION\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"
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
"Language-Team: LANGUAGE <LL@li.org>\n"
@ -448,6 +448,9 @@ msgstr ""
msgid "Wrap spaces"
msgstr ""
msgid "Filter"
msgstr ""
msgid "Null"
msgstr ""

View File

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

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \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"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Spanish <kde-russian@lists.kde.ru>\n"
@ -467,6 +467,9 @@ msgstr "Color de la swap"
msgid "Wrap spaces"
msgstr ""
msgid "Filter"
msgstr ""
msgid "Null"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \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"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\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"
msgstr ""
msgid "Filter"
msgstr ""
msgid "Null"
msgstr ""

View File

@ -8,7 +8,7 @@ msgid ""
msgstr ""
"Project-Id-Version: Awesome widgets\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"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Dutch <kde-i18n-nl@kde.org>\n"
@ -471,6 +471,9 @@ msgstr "Swap-kleur"
msgid "Wrap spaces"
msgstr ""
msgid "Filter"
msgstr ""
msgid "Null"
msgstr ""

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \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"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@ -462,6 +462,9 @@ msgstr "Cor da swap"
msgid "Wrap spaces"
msgstr ""
msgid "Filter"
msgstr ""
msgid "Null"
msgstr ""

View File

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

View File

@ -6,7 +6,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \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"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Ukrainian <kde-russian@lists.kde.ru>\n"
@ -467,6 +467,9 @@ msgstr "Колір swap"
msgid "Wrap spaces"
msgstr ""
msgid "Filter"
msgstr ""
msgid "Null"
msgstr ""

View File

@ -7,7 +7,7 @@ msgid ""
msgstr ""
"Project-Id-Version: \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"
"Last-Translator: Evgeniy Alekseev <esalexeev@gmail.com>\n"
"Language-Team: Russian <kde-russian@lists.kde.ru>\n"
@ -469,6 +469,9 @@ msgstr "虚拟内存颜色"
msgid "Wrap spaces"
msgstr ""
msgid "Filter"
msgstr ""
msgid "Null"
msgstr ""

View File

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