Хранилища Subversion OpenInventory

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

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

/trunk/ClassEditor/classeditor.h
11,6 → 11,7
#include "settingform.h"
 
#include <QTreeView>
#include <QFileDialog>
 
 
namespace Ui {
70,6 → 71,7
DelegateForClassesTable classTableDelegate;
SpinBoxDelegate delegateForDefaultValueColomn;
 
 
// void addNewClass(); // äîáàâèì íîâûé êëàññ
void addNewClass_new();
void addNewField(); // äîáàâëÿåì íîâîå ïîëå ê êëàññó
88,6 → 90,7
void on_pushButton_3_clicked(); // îáðàáîò÷èê íàæàòèÿ êíîïêè "Íîâîå ïîëå"
void on_pushButton_4_clicked(); // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü ïîëå"
void on_pushButton_5_clicked(); // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü âñå ïîëÿ"
void on_pushButton_6_clicked(); // îáðàáîò÷èê íàæàòèÿ êíîïêè "Çàãðóçèòü" (èêîíêó äëÿ êëàññà)
void on_action_ID_triggered(bool is_checked); // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü ID"
void on_action_showAlias_triggered(bool is_checked); // îáðàáàòûâàåì âûáîð â ìåíþ "Ïîêàçûâàòü ïñåâäîíèì"
void on_action_showInstance_triggered(bool is_checked); // ... ïîêàçûâàòü õðàíèëèùà îáúåêòîâ
/trunk/ClassEditor/mysql.cpp
262,19 → 262,27
fld->setDefaultValue(tr("New class alias")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó
 
fld = new TableField(tr("TableWhithInstance"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
fld = new TableField(tr("TableWhithInstance"), tbl); // ýòî ÷åòâåðòîå ïîëå òàáëèöû áóäåò õðàíèòü èìÿ òàáëèöû - õðàíèëèùà îáúåêòîâ êëàññà
fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
fld->setDefaultValue(tr("New class instance")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó
 
fld = new TableField(tr("Comment"), tbl); // ýòî òðåòüå ïîëå òàáëèöû áóäåò õðàíèòü ïñåâäîíèìû êëàññîâ
fld = new TableField(tr("Comment"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü êîììåíòàðèé
fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
fld->setType(tr("CHAR(30)")); // òèï ïîëÿ - ñòðîêà èç 30 ñèìâîëîâ
fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó
 
fld = new TableField(tr("Icon"), tbl); // ýòî ïÿòîå ïîëå òàáëèöû áóäåò õðàíèòü èêîíêó äëÿ êëàññà
// fld->setNotNull(true); // ïîëå íå ìîæåò áûòü ïóñòûì
fld->setType(tr("BLOB")); // òèï ïîëÿ - "BLOB"
// fld->setDefaultValue(tr("without comments")); // çíà÷åíèå ïîëÿ ïî óìîë÷àíèþ
tbl->append(fld); // äîáàâëÿåì ïîëå â òàáëèöó
 
 
 
 
if(!MySql::createTable(tbl)){ // åñëè íå óäàåòñÿ ñîçäàòü òàáëèöó
 
// delete fld;
/trunk/ClassEditor/mymodel.cpp
9,13 → 9,13
Qt::ItemFlags MyModel::flags(
const QModelIndex &index) const {
Qt::ItemFlags flags = QSqlTableModel::flags(index);
if ((index.column() != 3) && (index.column() != 0))
if ((index.column() != 3) && (index.column() != 0) && (index.column() != 5))
flags |= Qt::ItemIsEditable;
//if (index.column() == 4)
// flags |= Qt::ItemIsUserCheckable;
else
{
if ((index.column() == 3) || (index.column() == 0)) flags &= ~Qt::ItemIsEditable; // çàïðåùàåì ðåäàêòèðîâàíèå òðåòüåãî ñòîëáöà
if ((index.column() == 3) || (index.column() == 0) || (index.column() == 5)) flags &= ~Qt::ItemIsEditable; // çàïðåùàåì ðåäàêòèðîâàíèå 0, 3 è 5 ñòîëáöà
}
return flags;
}
/trunk/ClassEditor/classeditor.ui
169,6 → 169,35
<string>Поля для указателей на классы-контейнеры</string>
</property>
</widget>
<widget class="QLabel" name="label_4">
<property name="geometry">
<rect>
<x>790</x>
<y>100</y>
<width>78</width>
<height>71</height>
</rect>
</property>
<property name="text">
<string/>
</property>
<property name="pixmap">
<pixmap>../DBViewer/pc.png</pixmap>
</property>
</widget>
<widget class="QPushButton" name="pushButton_6">
<property name="geometry">
<rect>
<x>850</x>
<y>140</y>
<width>111</width>
<height>31</height>
</rect>
</property>
<property name="text">
<string>Загрузить</string>
</property>
</widget>
</widget>
<widget class="QMenuBar" name="menuBar">
<property name="geometry">
/trunk/ClassEditor/delegate.cpp
272,3 → 272,67
}
 
 
 
CPictureDelegate::CPictureDelegate( QObject * parent ) : QItemDelegate(parent)
{
}
 
void CPictureDelegate::paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
{
m_pxPicture.fill( QColor(Qt::white) );
 
const QAbstractItemModel * model = index.model();
QString sFileName = model->data( index, Qt::DisplayRole ).toString();
 
QVariant currentImage = model->data(index,0);
 
 
QByteArray bytes = currentImage.toByteArray();
// QImage image;
// image.loadFromData(bytes);
 
 
if (currentImage.isValid()) {
m_pxPicture.loadFromData(bytes);
}
else {
//QItemDelegate::paint(painter, option, index);
return;
}
 
 
/*
 
if ( !sFileName.isEmpty() )
m_pxPicture.load( sFileName );
else {
//QItemDelegate::paint(painter, option, index);
return;
}
*/
 
 
QPalette::ColorGroup cg = (option.state & QStyle::State_Enabled) ?
((option.state & QStyle::State_Active) ? QPalette::Normal : QPalette::Inactive ) :
QPalette::Disabled;
 
if (option.state & QStyle::State_Selected)
painter->fillRect(option.rect, option.palette.color(cg, QPalette::Highlight));
 
int nX = option.rect.x() + ( ( option.rect.width() - m_pxPicture.rect().width() ) / 2 );
int nY = option.rect.y() + ( ( option.rect.height() - m_pxPicture.rect().height() ) / 2 );
painter->drawPixmap( nX, nY, m_pxPicture );
 
 
//// drawFocus(painter, option, option.rect.adjusted(0, 0, -1, -1)); // since we draw the grid ourselves
 
/*
QPen pen = painter->pen();
painter->setPen(option.palette.color(QPalette::Mid));
painter->drawLine(option.rect.bottomLeft(), option.rect.bottomRight());
painter->drawLine(option.rect.topRight(), option.rect.bottomRight());
painter->setPen(pen);
*/
}
 
 
/trunk/ClassEditor/classeditor.cpp
783,6 → 783,29
ClassEditor::modelForDescription->submitAll();
}
 
void ClassEditor::on_pushButton_6_clicked(){ // îáðàáîò÷èê íàæàòèÿ êíîïêè "Óäàëèòü âñå ïîëÿ"
QString fileName;
QPixmap pixmap;
fileName = QFileDialog::getOpenFileName(this,
tr("Open Image"), "", tr("Image Files (*.png *.jpg *.bmp)"));
pixmap.load(fileName);
ui->label_4->setPixmap(pixmap);
QImage currentImage = pixmap.toImage();
QByteArray bytes;
QBuffer buffer(&bytes);
buffer.open(QIODevice::WriteOnly);
currentImage.save(&buffer, "PNG");
 
if (currIndexOfClassesTable.isValid()) {
bool ok;
 
ok = mymodel->setData(mymodel->index(currIndexOfClassesTable.row(), 5), QVariant (bytes), Qt::EditRole);
mymodel->submitAll();
}
 
 
}
 
void ClassEditor::on_myModel_dataChanged( const QModelIndex & topLeft, const QModelIndex & bottomRight ){
 
int i;
1111,6 → 1134,7
mymodel->setHeaderData(1, Qt::Horizontal, tr("Èìÿ êëàññà"));
mymodel->setHeaderData(2, Qt::Horizontal, tr("Ïñåâäîíèì êëàññà"));
mymodel->setHeaderData(4, Qt::Horizontal, tr("Êîìåíòàðèé"));
mymodel->setHeaderData(5, Qt::Horizontal, tr("Èêîíêà"));
ui->tableView->setModel(mymodel);
ui->tableView->setAlternatingRowColors(true);
ui->tableView->resizeColumnsToContents();
1118,6 → 1142,16
ui->tableView->hideColumn(0);
ui->tableView->hideColumn(3);
ui->tableView->hideColumn(2);
CPictureDelegate *pictureDelegate;
pictureDelegate = new CPictureDelegate(this);
ui->tableView->setItemDelegateForColumn(5, pictureDelegate);
 
/*
for (int i=0; i < mymodel->rowCount(); i++){
ui->tableView->setRowHeight(i, 100);
}
*/
 
}
 
 
/trunk/ClassEditor/delegate.h
57,4 → 57,20
bool m_calpopup;
};
 
 
class CPictureDelegate : public QItemDelegate
{
mutable QPixmap m_pxPicture;
public:
CPictureDelegate( QObject *parent );
 
void paint(QPainter *painter, const QStyleOptionViewItem &option,
const QModelIndex &index) const;
 
//QSize sizeHint(const QStyleOptionViewItem &option, const QModelIndex &index) const;
};
 
 
 
 
#endif // DELEGATE_H