add configuration interface slots

This commit is contained in:
arcan1s
2014-09-02 01:10:27 +04:00
parent a65f4cb02f
commit c69957e905
4 changed files with 169 additions and 69 deletions

View File

@ -144,6 +144,7 @@ void AwesomeWidget::init()
// dataengines
extsysmonEngine = dataEngine(QString("ext-sysmon"));
sysmonEngine = dataEngine(QString("systemmonitor"));
connect(sysmonEngine, SIGNAL(sourceAdded(QString)), this, SLOT(addDiskDevice(QString)));
timeEngine = dataEngine(QString("time"));
// tooltip
@ -175,6 +176,19 @@ void AwesomeWidget::init()
}
void AwesomeWidget::addDiskDevice(const QString source)
{
if (debug) qDebug() << PDEBUG;
QRegExp diskRegexp = QRegExp(QString("disk/(?:md|sd|hd)[a-z|0-9]_.*/Rate/(?:rblk)"));
if (diskRegexp.indexIn(source) > -1) {
QStringList splitSource = source.split(QChar('/'));
QString device = splitSource[0] + QString("/") + splitSource[1];
diskDevices.append(device);
}
}
QStringList AwesomeWidget::findKeys()
{
if (debug) qDebug() << PDEBUG;
@ -284,37 +298,4 @@ QStringList AwesomeWidget::getKeys()
}
//QString DesktopPanel::parsePattern(const QString rawLine, const int num)
//{
// if (debug) qDebug() << PDEBUG;
// if (debug) qDebug() << PDEBUG << ":" << "Run function with raw line" << rawLine;
// if (debug) qDebug() << PDEBUG << ":" << "Run function with number" << num;
// QString line, mark;
// line = rawLine;
// if (currentDesktop == num + 1)
// mark = configuration[QString("mark")];
// else
// mark = QString("");
// if (line.split(QString("$mark"))[0] != line) {
// if (debug) qDebug() << PDEBUG << ":" << "Found mark";
// line = line.split(QString("$mark"))[0] + mark + line.split(QString("$mark"))[1];
// }
// if (line.split(QString("$name"))[0] != line) {
// if (debug) qDebug() << PDEBUG << ":" << "Found name";
// line = line.split(QString("$name"))[0] + desktopNames[num] + line.split(QString("$name"))[1];
// }
// if (line.split(QString("$number"))[0] != line) {
// if (debug) qDebug() << PDEBUG << ":" << "Found number";
// line = line.split(QString("$number"))[0] + QString::number(num + 1) + line.split(QString("$number"))[1];
// }
// if (line.split(QString("$total"))[0] != line) {
// if (debug) qDebug() << PDEBUG << ":" << "Found total";
// line = line.split(QString("$total"))[0] + QString::number(desktopNames.count()) + line.split(QString("$total"))[1];
// }
// return line;
//}
K_EXPORT_PLASMA_APPLET(ptm-awesome-widget, AwesomeWidget)

View File

@ -53,6 +53,7 @@ public:
public slots:
// dataengine
void addDiskDevice(const QString source);
void connectToEngine();
void dataUpdated(const QString &sourceName, const Plasma::DataEngine::Data &data);
void disconnectFromEngine();
@ -66,6 +67,14 @@ public slots:
private slots:
void reinit();
// configuration interface
void addNewCustomCommand(QTableWidgetItem *item);
void addNewPkgCommand(QTableWidgetItem *item);
void contextMenuCustomCommand(const QPoint pos);
void contextMenuPkgCommand(const QPoint pos);
void editHddItem(QListWidgetItem *item);
void editHddSpeedItem(QListWidgetItem *item);
void editMountItem(QListWidgetItem *item);
void editTempItem(QListWidgetItem *item);
protected:
void createConfigurationInterface(KConfigDialog *parent);

View File

@ -20,6 +20,7 @@
#include <KConfigDialog>
#include <KGlobal>
#include <KStandardDirs>
#include <QMenu>
#include <QNetworkInterface>
#include <QTextCodec>
@ -125,7 +126,6 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
if (debug) qDebug() << PDEBUG;
QString cmd, qoutput;
QStringList headerList;
TaskResult process;
QWidget *advWidget = new QWidget;
uiAdvancedConfig.setupUi(advWidget);
@ -169,21 +169,21 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
Qt::MatchFixedString));
cmd = QString("sensors");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
TaskResult sensorsProcess = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << sensorsProcess.exitCode;
if (sensorsProcess.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << sensorsProcess.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(sensorsProcess.output);
uiAdvancedConfig.listWidget_tempDevice->clear();
for (int i=0; i<qoutput.split(QString("\n\n")).count(); i++) {
QString sensor = qoutput.split(QString("\n\n"))[i];
for (int j=0; j<sensor.split(QChar('\n')).count(); j++) {
QString device = sensor.split(QChar('\n'))[j];
if (device.indexOf(QString("°C")) > -1) {
QListWidgetItem item = QListWidgetItem(QString("lmsensors/") + sensor.split(QChar('\n'))[0] + QString("/") +
if (device.indexOf(QChar(0260)) > -1) {
QListWidgetItem *item = new QListWidgetItem(QString("lmsensors/") + sensor.split(QChar('\n'))[0] + QString("/") +
device.split(QChar(':'))[0].replace(QChar(' '), QChar('_')));
item.setCheckState(Qt::Unchecked);
uiAdvancedConfig.listWidget_tempDevice->addItem(&item);
item->setCheckState(Qt::Unchecked);
uiAdvancedConfig.listWidget_tempDevice->addItem(item);
}
}
}
@ -195,17 +195,17 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
}
cmd = QString("mount");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
TaskResult mountProcess = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << mountProcess.exitCode;
if (mountProcess.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << mountProcess.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(mountProcess.output);
uiAdvancedConfig.listWidget_mount->clear();
for (int i=0; i<qoutput.split(QChar('\n')).count(); i++) {
QString mountPoint = qoutput.split(QChar('\n'))[i].split(QString(" on "))[1].split(QString(" type "))[0];
QListWidgetItem item = QListWidgetItem(mountPoint);
item.setCheckState(Qt::Unchecked);
uiAdvancedConfig.listWidget_mount->addItem(&item);
QListWidgetItem *item = new QListWidgetItem(mountPoint);
item->setCheckState(Qt::Unchecked);
uiAdvancedConfig.listWidget_mount->addItem(item);
}
for (int i=0; i<configuration[QString("mount")].split(QString("@@")).count(); i++) {
QList<QListWidgetItem *> items = uiAdvancedConfig.listWidget_mount
@ -215,9 +215,9 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
}
uiAdvancedConfig.listWidget_hddSpeedDevice->clear();
for (int i=0; i<diskDevices.count(); i++) {
QListWidgetItem item = QListWidgetItem(diskDevices[i]);
item.setCheckState(Qt::Unchecked);
uiAdvancedConfig.listWidget_hddSpeedDevice->addItem(&item);
QListWidgetItem *item = new QListWidgetItem(diskDevices[i]);
item->setCheckState(Qt::Unchecked);
uiAdvancedConfig.listWidget_hddSpeedDevice->addItem(item);
}
for (int i=0; i<configuration[QString("disk")].split(QString("@@")).count(); i++) {
QList<QListWidgetItem *> items = uiAdvancedConfig.listWidget_hddSpeedDevice
@ -225,18 +225,18 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
for (int j=0; j<items.count(); j++)
items[j]->setCheckState(Qt::Checked);
}
cmd = QString("find /dev -name '[hms]d[a-z]'");
cmd = QString("find /dev -name [hms]d[a-z]");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
TaskResult findProcess = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << findProcess.exitCode;
if (findProcess.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << findProcess.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(findProcess.output).trimmed();
uiAdvancedConfig.listWidget_hddDevice->clear();
for (int i=0; i<qoutput.split(QChar('\n')).count(); i++) {
QListWidgetItem item = QListWidgetItem(qoutput.split(QChar('\n'))[i]);
item.setCheckState(Qt::Unchecked);
uiAdvancedConfig.listWidget_hddDevice->addItem(&item);
QListWidgetItem *item = new QListWidgetItem(qoutput.split(QChar('\n'))[i]);
item->setCheckState(Qt::Unchecked);
uiAdvancedConfig.listWidget_hddDevice->addItem(item);
}
for (int i=0; i<configuration[QString("hdd")].split(QString("@@")).count(); i++) {
QList<QListWidgetItem *> items = uiAdvancedConfig.listWidget_hddDevice
@ -331,13 +331,13 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
uiDEConfig.lineEdit_desktopCmd->setText(deSettings[QString("DESKTOPCMD")]);
uiDEConfig.comboBox_gpudev->setCurrentIndex(
uiDEConfig.comboBox_gpudev->findText(deSettings[QString("GPUDEV")], Qt::MatchFixedString));
cmd = QString("find /dev -name '[hms]d[a-z]'");
cmd = QString("find /dev -name [hms]d[a-z]");
if (debug) qDebug() << PDEBUG << ":" << "cmd" << cmd;
process = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << process.exitCode;
if (process.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << process.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(process.output);
TaskResult hddProcess = runTask(cmd);
if (debug) qDebug() << PDEBUG << ":" << "Cmd returns" << hddProcess.exitCode;
if (hddProcess.exitCode != 0)
if (debug) qDebug() << PDEBUG << ":" << "Error" << hddProcess.error;
qoutput = QTextCodec::codecForMib(106)->toUnicode(hddProcess.output).trimmed();
uiDEConfig.comboBox_hdddev->clear();
uiDEConfig.comboBox_hdddev->addItem(QString("all"));
uiDEConfig.comboBox_hdddev->addItem(QString("disable"));
@ -361,6 +361,8 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
uiDEConfig.tableWidget_pkgCommand->setItem(i, 0, new QTableWidgetItem(deSettings[QString("PKGCMD")].split(QChar(','))[i]));
uiDEConfig.tableWidget_pkgCommand->setItem(i, 1, new QTableWidgetItem(deSettings[QString("PKGNULL")].split(QChar(','))[i]));
}
uiDEConfig.tableWidget_pkgCommand->setItem(uiDEConfig.tableWidget_pkgCommand->rowCount() - 1, 1,
new QTableWidgetItem(QString("0")));
uiDEConfig.comboBox_playerSelect->setCurrentIndex(
uiDEConfig.comboBox_playerSelect->findText(deSettings[QString("PLAYER")], Qt::MatchFixedString));
@ -370,6 +372,23 @@ void AwesomeWidget::createConfigurationInterface(KConfigDialog *parent)
parent->addPage(appWidget, i18n("Appearance"), QString("preferences-desktop-theme"));
parent->addPage(deConfigWidget, i18n("DataEngine"), QString("utilities-system-monitor"));
connect(uiAdvancedConfig.listWidget_hddDevice, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editHddItem(QListWidgetItem *)));
connect(uiAdvancedConfig.listWidget_hddSpeedDevice, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editHddSpeedItem(QListWidgetItem *)));
connect(uiAdvancedConfig.listWidget_mount, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editMountItem(QListWidgetItem *)));
connect(uiAdvancedConfig.listWidget_tempDevice, SIGNAL(itemActivated(QListWidgetItem *)),
this, SLOT(editTempItem(QListWidgetItem *)));
connect(uiDEConfig.tableWidget_customCommand, SIGNAL(itemChanged(QTableWidgetItem *)),
this, SLOT(addNewCustomCommand(QTableWidgetItem *)));
connect(uiDEConfig.tableWidget_customCommand, SIGNAL(customContextMenuRequested(QPoint)),
this, SLOT(contextMenuCustomCommand(QPoint)));
connect(uiDEConfig.tableWidget_pkgCommand, SIGNAL(itemChanged(QTableWidgetItem *)),
this, SLOT(addNewPkgCommand(QTableWidgetItem *)));
connect(uiDEConfig.tableWidget_pkgCommand, SIGNAL(customContextMenuRequested(QPoint)),
this, SLOT(contextMenuPkgCommand(QPoint)));
connect(parent, SIGNAL(okClicked()), this, SLOT(configAccepted()));
connect(parent, SIGNAL(applyClicked()), this, SLOT(configAccepted()));
}
@ -558,3 +577,88 @@ void AwesomeWidget::configChanged()
reinit();
}
void AwesomeWidget::addNewCustomCommand(QTableWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
if (item->row() == (uiDEConfig.tableWidget_customCommand->rowCount() - 1))
uiDEConfig.tableWidget_customCommand->insertRow(
uiDEConfig.tableWidget_customCommand->rowCount());
}
void AwesomeWidget::addNewPkgCommand(QTableWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
if ((item->row() == (uiDEConfig.tableWidget_pkgCommand->rowCount() - 1)) &&
(item->column() == 0)) {
uiDEConfig.tableWidget_pkgCommand->insertRow(
uiDEConfig.tableWidget_pkgCommand->rowCount());
uiDEConfig.tableWidget_pkgCommand->setItem(
uiDEConfig.tableWidget_pkgCommand->rowCount() - 1, 1,
new QTableWidgetItem(QString("0")));
}
}
void AwesomeWidget::contextMenuCustomCommand(const QPoint pos)
{
if (debug) qDebug() << PDEBUG;
if (uiDEConfig.tableWidget_customCommand->currentItem() == 0) return;
QMenu menu(uiDEConfig.tableWidget_customCommand);
QAction *remove = menu.addAction(i18n("Remove"));
QAction *action = menu.exec(uiDEConfig.tableWidget_customCommand->viewport()->mapToGlobal(pos));
if (action == remove)
uiDEConfig.tableWidget_customCommand->removeRow(
uiDEConfig.tableWidget_customCommand->currentRow());
}
void AwesomeWidget::contextMenuPkgCommand(const QPoint pos)
{
if (debug) qDebug() << PDEBUG;
if (uiDEConfig.tableWidget_pkgCommand->currentItem() == 0) return;
QMenu menu(uiDEConfig.tableWidget_pkgCommand);
QAction *remove = menu.addAction(i18n("Remove"));
QAction *action = menu.exec(uiDEConfig.tableWidget_pkgCommand->viewport()->mapToGlobal(pos));
if (action == remove)
uiDEConfig.tableWidget_pkgCommand->removeRow(
uiDEConfig.tableWidget_pkgCommand->currentRow());
}
void AwesomeWidget::editHddItem(QListWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
uiAdvancedConfig.listWidget_hddDevice->openPersistentEditor(item);
}
void AwesomeWidget::editHddSpeedItem(QListWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
uiAdvancedConfig.listWidget_hddSpeedDevice->openPersistentEditor(item);
}
void AwesomeWidget::editMountItem(QListWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
uiAdvancedConfig.listWidget_mount->openPersistentEditor(item);
}
void AwesomeWidget::editTempItem(QListWidgetItem *item)
{
if (debug) qDebug() << PDEBUG;
uiAdvancedConfig.listWidget_tempDevice->openPersistentEditor(item);
}

View File

@ -410,6 +410,9 @@
<layout class="QVBoxLayout" name="layout_pkgCommand">
<item>
<widget class="QTableWidget" name="tableWidget_pkgCommand">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="toolTip">
<string>Editable
del - remove item</string>
@ -439,6 +442,9 @@ del - remove item</string>
</item>
<item row="2" column="0">
<widget class="QTableWidget" name="tableWidget_customCommand">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
<property name="toolTip">
<string>Editable
del - remove item</string>