/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 |
/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); // ... ïîêàçûâàòü õðàíèëèùà îáúåêòîâ |