This commit is contained in:
Chenwenxuan
2024-03-06 14:54:30 +08:00
commit edac2715f0
1525 changed files with 809982 additions and 0 deletions

147
ui/lg_dimzerosbox.cpp Normal file
View File

@@ -0,0 +1,147 @@
#include "lg_dimzerosbox.h"
#include <QTableView>
#include <QListWidgetItem>
LG_DimzerosBox::LG_DimzerosBox(QWidget *parent) : QComboBox(parent) {
dimLine = false;
view = new QListView();
model = new QStandardItemModel(3, 1);
QStandardItem* item = new QStandardItem(tr("select:"));
item->setFlags(Qt::ItemIsEnabled | Qt::ItemIsSelectable);
model->setItem(0,0,item);
item = new QStandardItem(tr("remove left"));
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
item->setData(Qt::Unchecked, Qt::CheckStateRole);
model->setItem(1,0,item);
item = new QStandardItem(tr("remove right"));
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
item->setData(Qt::Unchecked, Qt::CheckStateRole);
model->setItem(2,0,item);
setModel(model);
setView(view);
setEditable(false);
setEditText("selectar:");
}
LG_DimzerosBox::~LG_DimzerosBox() {
delete model;
delete view;
}
void LG_DimzerosBox::setLinear(){
dimLine = true;
QStandardItem* item = new QStandardItem(tr("remove 0'"));
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
item->setData(Qt::Unchecked, Qt::CheckStateRole);
model->appendRow(item);
item = new QStandardItem(tr("remove 0\""));
item->setFlags(Qt::ItemIsUserCheckable | Qt::ItemIsEnabled);
item->setData(Qt::Unchecked, Qt::CheckStateRole);
model->appendRow(item);
}
void LG_DimzerosBox::setData(int i){
if (dimLine) {
if (i & 1) {
if (i&2)
model->item(3)->setCheckState(Qt::Checked);
} else {
model->item(4)->setCheckState(Qt::Checked);
if (!(i&2))
model->item(3)->setCheckState(Qt::Checked);
}
if (i&4)
model->item(1)->setCheckState(Qt::Checked);
if (i&8)
model->item(2)->setCheckState(Qt::Checked);
} else {
if (i & 1)
model->item(1)->setCheckState(Qt::Checked);
if (i & 2)
model->item(2)->setCheckState(Qt::Checked);
}
}
int LG_DimzerosBox::getData(){
int ret = 0;
if (dimLine){
if (model->item(1)->checkState() == Qt::Checked)
ret |= 4;
if (model->item(2)->checkState() == Qt::Checked)
ret |= 8;
//imperial:
if (model->item(3)->checkState() == Qt::Checked){
if (model->item(4)->checkState() == Qt::Unchecked)
ret |= 3;
} else {
if (model->item(4)->checkState() == Qt::Checked)
ret |= 2;
else
ret |= 1;
}
} else {
if (model->item(1)->checkState() == Qt::Checked)
ret |= 1;
if (model->item(2)->checkState() == Qt::Checked)
ret |= 2;
}
return ret;
}
/**
* helper function for DIMZIN var.
*/
int LG_DimzerosBox::convertDimZin(int v, bool toIdx){
if (toIdx){
if (v < 5)
return 0;
int res = 0;
if (v & 4)
res = 3;
if (v & 8)
return (res==3) ? 5 :4;
}
//toIdx false
switch (v) {
case 3:
return 4;
break;
case 4:
return 8;
break;
case 5:
return 12;
break;
default:
break;
}
return 1;
}
/*MyModel::MyModel(QObject *parent)
:QAbstractTableModel(parent)
{
}
int MyModel::rowCount(const QModelIndex & parent) const
{
return 2;
}
int MyModel::columnCount(const QModelIndex & parent) const
{
return 3;
}
QVariant MyModel::data(const QModelIndex &index, int role) const
{
if (role == Qt::DisplayRole)
{
return QString("Row%1, Column%2")
.arg(index.row() + 1)
.arg(index.column() +1);
}
return QVariant();
}*/