git-svn-id: svn://db.shs.com.ru/libs@167 a8b55f48-bf90-11e4-a774-851b48703e85

This commit is contained in:
2017-03-15 13:21:12 +00:00
parent 270bfffd5f
commit 67d8d3576d
5 changed files with 22 additions and 4 deletions

View File

@@ -192,8 +192,6 @@ void CDCore::K_Send() {
piCoutObj << "K_Send";
PIByteArray ba;
PIIOByteArray iob(&ba, PIIODevice::ReadWrite);
// PIIOByteArray iob;
// iob.open(&ba, PIIODevice::ReadWrite);
k_write(&iob);
//piCoutObj << PIString(ba);
if (sendt.isRunning()) {

View File

@@ -8,6 +8,7 @@ namespace CDUtils {
enum CDPacketType {CD_Ping, CD_Pong, CD_KQuery, CD_KSend, CD_Command, CD_XData, CD_XQuery};
# pragma pack(push,1)
struct PacketHeader {
int type; // CDPacketType
int session_id;

View File

@@ -441,12 +441,15 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
blockSignals(true);
if (moved) {
QList<BlockItem*> ci;
QList<BlockBusItem*> bi;
foreach (QGraphicsItem * b, sel_items)
if (b->data(1006) == "item") {
ci << qgraphicsitem_cast<BlockItem*>(b);
ai << qgraphicsitem_cast<QGraphicsItem*>(b);
}
copyBlocks(ci, copy_dp);
bi = internalBuses(ci);
if (!ci.isEmpty()) copyBlocks(ci, copy_dp);
if (!bi.isEmpty()) copyBuses(bi, copy_dp);
}
qDeleteAll(copy_items);
copy_items.clear();
@@ -1186,6 +1189,20 @@ void BlockView::moveBuses(const QList<QGraphicsItem * > & items, QPointF dp) {
}
QList<BlockBusItem * > BlockView::internalBuses(const QList<BlockItem * > & items) {
QList<BlockBusItem * > ret;
if (items.isEmpty()) return ret;
QList<BlockBusItem * > sbl = buses();
QSet<BlockItem * > sis = QSet<BlockItem * >::fromList(items);
foreach (BlockBusItem * bi, sbl) {
QSet<BlockItem * > bis = QSet<BlockItem * >::fromList(bi->connectedBlocks());
if ((bis - sis).isEmpty())
ret << bi;
}
return ret;
}
void BlockView::adjustThumb() {
if (!scene()) return;
QSizeF sr = sceneRect().size(), tr;

View File

@@ -99,11 +99,13 @@ protected:
void markPins(int bus_type);
void unmarkPins(bool to_normal = false);
void moveBuses(const QList<QGraphicsItem * > & items, QPointF dp);
QList<BlockBusItem * > internalBuses(const QList<BlockItem * > & items);
double _thumb() const {return _talpha;}
void scrollFromThumb();
virtual void loadBus(BlockBusItem * bus) {}
virtual void copyBlocks(QList<BlockItem * > items, QPointF offset) {}
virtual void copyBuses(QList<BlockBusItem * > items, QPointF offset) {}
virtual void newBusStarted(int bus_type) {}
QGraphicsScene * scene_;