diff options
author | 2021-04-10 21:53:23 +0530 | |
---|---|---|
committer | 2021-04-10 21:53:23 +0530 | |
commit | f76785697562b0ce75d4874735e02219160e322f (patch) | |
tree | fa65bcdfd02067547507a62f3b625999f9822f64 /src/permissiondialog.cpp | |
parent | b1a49292c732a2402a87da00309661e42f22d7c3 (diff) | |
download | whatsie-f76785697562b0ce75d4874735e02219160e322f.tar.gz whatsie-f76785697562b0ce75d4874735e02219160e322f.zip |
added permission dialog to project
Diffstat (limited to 'src/permissiondialog.cpp')
-rw-r--r-- | src/permissiondialog.cpp | 76 |
1 files changed, 76 insertions, 0 deletions
diff --git a/src/permissiondialog.cpp b/src/permissiondialog.cpp new file mode 100644 index 0000000..4cd77c8 --- /dev/null +++ b/src/permissiondialog.cpp @@ -0,0 +1,76 @@ +#include "permissiondialog.h" +#include "ui_permissiondialog.h" + +#include <QCheckBox> +#include <QMetaEnum> +#include <QWebEnginePage> + + +PermissionDialog::PermissionDialog(QWidget *parent) : + QWidget(parent), + ui(new Ui::PermissionDialog) +{ + ui->setupUi(this); + + ui->featuresTableWidget->horizontalHeader()->setSectionResizeMode(QHeaderView::Stretch); + ui->featuresTableWidget->verticalHeader()->setVisible(true); + ui->featuresTableWidget->horizontalHeader()->setVisible(true); + ui->featuresTableWidget->setSelectionMode(QAbstractItemView::NoSelection); + ui->featuresTableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers); + ui->featuresTableWidget->setFocusPolicy(Qt::NoFocus); + + QMetaEnum en = QMetaEnum::fromType<QWebEnginePage::Feature>(); + for (int i = 0; i < en.keyCount(); i++ ) { + QWebEnginePage::Feature feature = (QWebEnginePage::Feature) en.value(i); + QString featureName = QVariant::fromValue(feature).toString(); + addToFeaturesTable(feature,featureName); + } +} + +void PermissionDialog::addToFeaturesTable(QWebEnginePage::Feature feature, QString & featureName) +{ + if(featureName.isEmpty()== false){ + int nextRow; + int row = ui->featuresTableWidget->rowCount(); + if(row==0){ + nextRow = 0; + }else{ + nextRow = row++; + } + + QStringList columnData; + columnData<<featureName<<"status"; + + //insertRow + ui->featuresTableWidget->insertRow(nextRow); + settings.beginGroup("permissions"); + //add column + for (int i = 0; i < columnData.count(); i++) { + + if(columnData.at(i)=="status"){ + QCheckBox *featureCheckBox = new QCheckBox(0); + featureCheckBox->setStyleSheet("border:0px;margin-left:50%; margin-right:50%;"); + featureCheckBox->setChecked(settings.value(featureName,false).toBool()); + connect(featureCheckBox,&QCheckBox::toggled,[=](bool checked){ + //save permission + settings.setValue("permissions/"+featureName,checked); + emit webPageFeatureChanged(feature); + }); + ui->featuresTableWidget->setCellWidget(nextRow,i,featureCheckBox); + }else{ + QTableWidgetItem *item = new QTableWidgetItem(); + item->setText(columnData.at(i)); + item->setFlags(item->flags() & ~Qt::ItemIsSelectable); + ui->featuresTableWidget->setItem(nextRow, i,item); + } + this->update(); + } + settings.endGroup(); + } +} + + +PermissionDialog::~PermissionDialog() +{ + delete ui; +} |