Хранилища Subversion OpenInventory

Сравнить редакции

Не учитывать пробелы Редакция 146 → Редакция 147

/trunk/DBViewer/mainwindow.ui
24,7 → 24,7
</rect>
</property>
<property name="currentIndex">
<number>0</number>
<number>1</number>
</property>
<widget class="QWidget" name="tab">
<attribute name="title">
91,14 → 91,19
</column>
<column>
<property name="text">
<string>Номер строки в файле</string>
<string>Ном. стр.</string>
</property>
</column>
<column>
<property name="text">
<string>Уровень вложения</string>
<string>Ур. вл.</string>
</property>
</column>
<column>
<property name="text">
<string>row</string>
</property>
</column>
</widget>
<widget class="QComboBox" name="comboBox">
<property name="enabled">
/trunk/DBViewer/mainwindow.cpp
116,7 → 116,7
model_str = QString(tr(file.readAll()));
}
 
setupModelData(model_str.split(QString("\n")), rootItem1);
setupModelData(model_str.split(QString("\n")), rootItem1, -1);
 
 
return result;
124,7 → 124,7
}
 
 
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent)
void MainWindow::setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row)
{
QList<QTreeWidgetItem*> parents;
QList<int> indentations;
180,6 → 180,7
itm_tmp->setText(1, QString(columnData.at(2).toString()));
itm_tmp->setText(2, QVariant(number).toString()); // íîìåð ñòðîêè â ôàéëå-ìîäåëè îòîáðàæåíèÿ
itm_tmp->setText(3, QVariant(indentations.size()).toString());
itm_tmp->setText(4, QVariant(row).toString());
}
}
 
387,7 → 388,7
rootItem2->setText(1, rootClassID);
rootItem2->setCheckState(0,Qt::Checked);
 
addChildsItems(rootItem2);
addChildsItems(rootItem2, -1);
 
 
/*
424,7 → 425,7
}
 
 
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID){
bool MainWindow::rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row){
QSqlQuery q;
QString sql_str;
QString field_name_str;
448,6 → 449,7
if (root_item->childCount()==0){ // íåò êîðíåâîãî êëàññà, ñîçäàäèì åãî
QTreeWidgetItem* item_tmp;
item_tmp = new QTreeWidgetItem (root_item);
item_tmp->setText(4, QVariant(row).toString());
 
}
 
454,10 → 456,13
if (root_item->childCount()==1){ // êîðíåâîé êëàññ åñòü è îí ïóñòîé, î÷èùàòü åãî íå íàäî
root_item->child(0)->setText(0, root_class_name);
root_item->child(0)->setText(1, rootClassID);
root_item->child(0)->setCheckState(0,Qt::Checked);}
root_item->child(0)->setCheckState(0,Qt::Checked);
root_item->setText(4, QVariant(row).toString());
 
}
 
 
 
//delete rootItem2;
 
 
477,7 → 482,7
}
 
child_count = root_item->child(0)->childCount();
addChildsItems(root_item->child(0));
addChildsItems(root_item->child(0), row);
/*
sql_str = tr("select * "
" from DescriptionOfClasses where DescriptionOfClasses.DefaultValue = '" //îïðåäåëèì êëàññû, äëÿ êîòîðûõ êîðíåâîé ÿâëÿåòñÿ êîíòåéíåðîì
547,7 → 552,7
 
}
 
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
void MainWindow::addChildsItems(QTreeWidgetItem *perent_class_item, int row){ // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
QStringList chields_list;
QString parent_ID;
QTreeWidgetItem *Item_tmp;
565,7 → 570,8
Item_tmp->setText(0, chield_class_name);
Item_tmp->setText(1, chield_id);
Item_tmp->setCheckState(0, Qt::Checked);
MainWindow::addChildsItems(Item_tmp);
Item_tmp->setText(4, QVariant(row).toString());
MainWindow::addChildsItems(Item_tmp, row);
}
 
i++;
695,6 → 701,7
QStringList classesID_list;
QString ID_str;
if (index == -1) return;
int row;
 
classesID_list = class_list_map.keys();
classesNameList = class_list_map.values();
702,9 → 709,12
ui->label->setText(ID_str);
if (root_items_list.indexOf(ui->treeWidget->currentItem()) != -1)
{
row = QVariant(ui->treeWidget->currentItem()->text(4)).toInt();
model_is_build = false; // ÷òîáû íå âûçûâàëîñü ñîáûòèå on_treeWidget_itemChanged
rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str);
rebuildPreviewModel(ui->treeWidget->currentItem(), ID_str, row);
model_is_build = true; // òåïåðü ïóñòü âûçûâàåòñÿ
QString mdl_str = MainWindow::creatModelString(ui->treeWidget->currentItem()); //
model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row, 2), QVariant(mdl_str));
}
getDatabaseData();
 
714,9 → 724,45
void MainWindow::on_treeWidget_itemChanged ( QTreeWidgetItem * item, int column ){
int i;
i++;
QTreeWidgetItem * item_tmp;
QString mdl_str;
QString row; // íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé èçìåíåííîé ìîäåëå
QList <int> rows_list;
 
 
if ((column) == 0 && (model_is_build)) {
// if (!model_is_build) return; // ìîäåëü åù¸ íå ïîñòðîåíà
rows_list = models_items.keys();
 
row= item->text(4);
if (!row.isEmpty()){
 
 
int row_int;
row_int = QVariant(row).toInt();
if (rows_list.indexOf(row_int) != -1)
{
item_tmp = models_items[row_int];
mdl_str = MainWindow::creatModelString(item_tmp);
model_for_ListModelsTable->setData(model_for_ListModelsTable->index(row_int, 2), QVariant(mdl_str));
}
 
 
}
 
 
}
 
/*
QTreeWidgetItem * item_tmp;
item_tmp = item;
while (item_tmp ){
item_tmp = item_tmp->parent();
}
*/
if ((column) == 0 && (model_is_build)) getDatabaseData();
 
 
}
 
 
/trunk/DBViewer/mainwindow.h
21,6 → 21,7
#include <QFont>
#include <QColor>
#include <QItemDelegate>
#include <QList>
 
 
/*
80,7 → 81,7
QTreeWidgetItem *rootItem1, *rootItem2;
void openBase();
bool readModel();
void setupModelData(const QStringList &lines, QTreeWidgetItem *parent);
void setupModelData(const QStringList &lines, QTreeWidgetItem *parent, int row); // row - íîìåð ñòðîêè â òàáëèöå ìîäåëåé, ñîîòâåòñòâóþùèé äàííîé ìîäåëè
QString creatModelString(QTreeWidgetItem* model);
QString modelString; // ñòðîêà, îïèñûâàþùàÿ ìîäåëü ïðåäñòàâëåíèÿ
void addChildsString(QTreeWidgetItem *parentItem, int level);
91,10 → 92,10
bool openDataBase();
bool buildPreviewModel(QString modelName, QString rootClassID);
 
bool rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID);
bool rebuildPreviewModel(QTreeWidgetItem* root_item, QString rootClassID, int row);
 
QString ClassName(QString class_id); //âîçâðàùàåò èìÿ êëàññà ïî åãî ID
void addChildsItems(QTreeWidgetItem *perent_class_item); // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
void addChildsItems(QTreeWidgetItem *perent_class_item, int row); // äîáîâëÿåì ê ýëåìåíòó äåðåâà â êà÷åñòâå äî÷åðíèõ ýëåìåíòîâ âñå êëàññû, äëÿ êîòîðûõ êëàññ ýëåìåíòà ÿâëÿåòñÿ êîíòåéíåðîì
QStringList classChields(QString class_id);
QMap <QString, QString> getClassList(); // ïîëó÷àåì ñïèñîê êëàññîâ
QMap <QString, QString> getFieldsList(QString class_id); // ïîëó÷àåì ñïèñîê ïîëåé êëàññà
114,6 → 115,7
 
 
QMap <QString, QString> class_list_map;
QMap <int, QTreeWidgetItem*> models_items; // ñïèñîê èòåìîâ (êîðíåâûõ )ìîäåëåé è ñîîòâåòñòâóþùèõ èì ñòðîê â òàáëèöå ìîäåëåé
void getDatabaseData();
void buildTree(QTreeWidgetItem * model_item);
QString getClassInctance(QString class_id); // ïîëó÷àåì èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà
124,6 → 126,9
 
QMap <QString, QString> getPointersList(QString class_id); // ïîëó÷àåì ñïèñîê âñåõ ïîëåé-óêàçàòåëåé, â êà÷åñòâå êëþ÷åé ïîëó÷èì èìåíà ïîëåé-óêàçàòåëåé
// â êà÷åñòâå çíà÷åíèé ïîëó÷èì ñïèñîê òàáëèö-õðàíèëèù îáúåêòîâ ðîäèòåëüñêèõ êëàññîâ
 
 
 
SpinBoxDelegate spinDelegate;
QItemDelegate standart_delegate;
CPictureDelegate * picture_delegate;
/trunk/DBViewer/database.cpp
829,17 → 829,32
void MainWindow::readModels(){
 
int row = model_for_ListModelsTable->rowCount();
QList <QTreeWidgetItem*> modelsItemsList;
QList <int> row_list;
modelsItemsList = models_items.values();
 
row_list = models_items.keys();
 
 
 
rootItems.clear();
ui->treeWidget->clear();
for (int i=0; i < row; i++){
QTreeWidgetItem * item_tmp;
QString modelName;
QString modelString;
 
bool enabled;
 
 
 
//models_items.values();
// modelString =
 
modelName = model_for_ListModelsTable->data(model_for_ListModelsTable->index(i, 1)).toString();
enabled = model_for_ListModelsTable->data(model_for_ListModelsTable->index(i, 3)).toBool();
item_tmp = new QTreeWidgetItem(ui->treeWidget);
item_tmp->setText(0, modelName);
item_tmp->setText(4, QVariant(i).toString()); // çàïèøåì â 4 êîëîíêó íîìåðñòðîêè ìîäåëè â òàáëèöå ìîäåëåé
if (enabled) item_tmp->setCheckState(0,Qt::Checked);
else item_tmp->setCheckState(0,Qt::Unchecked);
 
846,9 → 861,13
root_items_list << item_tmp;
 
rootItems.append(item_tmp);
 
models_items[i] =item_tmp ;
 
 
modelString = model_for_ListModelsTable->data(model_for_ListModelsTable->index(i, 2)).toString();
if (modelString.isEmpty()) continue;
else setupModelData(modelString.split(QString("\n")), item_tmp); // ñòðîèì ìîäåëü
else setupModelData(modelString.split(QString("\n")), item_tmp, i); // ñòðîèì ìîäåëü
 
}
}