git-svn-id: svn://db.shs.com.ru/libs@167 a8b55f48-bf90-11e4-a774-851b48703e85
This commit is contained in:
@@ -192,8 +192,6 @@ void CDCore::K_Send() {
|
|||||||
piCoutObj << "K_Send";
|
piCoutObj << "K_Send";
|
||||||
PIByteArray ba;
|
PIByteArray ba;
|
||||||
PIIOByteArray iob(&ba, PIIODevice::ReadWrite);
|
PIIOByteArray iob(&ba, PIIODevice::ReadWrite);
|
||||||
// PIIOByteArray iob;
|
|
||||||
// iob.open(&ba, PIIODevice::ReadWrite);
|
|
||||||
k_write(&iob);
|
k_write(&iob);
|
||||||
//piCoutObj << PIString(ba);
|
//piCoutObj << PIString(ba);
|
||||||
if (sendt.isRunning()) {
|
if (sendt.isRunning()) {
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ public:
|
|||||||
const CDType operator [](const PIDeque<int> & path_) const {return (*this)[path_];}
|
const CDType operator [](const PIDeque<int> & path_) const {return (*this)[path_];}
|
||||||
CDSection & section(int v);
|
CDSection & section(int v);
|
||||||
const CDSection section(int v) const;
|
const CDSection section(int v) const;
|
||||||
CDSection & section(const PIDeque<int> &path);
|
CDSection & section(const PIDeque<int> & path);
|
||||||
CDSection & root();
|
CDSection & root();
|
||||||
const CDSection root() const;
|
const CDSection root() const;
|
||||||
|
|
||||||
|
|||||||
@@ -8,6 +8,7 @@ namespace CDUtils {
|
|||||||
enum CDPacketType {CD_Ping, CD_Pong, CD_KQuery, CD_KSend, CD_Command, CD_XData, CD_XQuery};
|
enum CDPacketType {CD_Ping, CD_Pong, CD_KQuery, CD_KSend, CD_Command, CD_XData, CD_XQuery};
|
||||||
|
|
||||||
# pragma pack(push,1)
|
# pragma pack(push,1)
|
||||||
|
|
||||||
struct PacketHeader {
|
struct PacketHeader {
|
||||||
int type; // CDPacketType
|
int type; // CDPacketType
|
||||||
int session_id;
|
int session_id;
|
||||||
|
|||||||
@@ -441,12 +441,15 @@ bool BlockView::eventFilter(QObject * o, QEvent * e) {
|
|||||||
blockSignals(true);
|
blockSignals(true);
|
||||||
if (moved) {
|
if (moved) {
|
||||||
QList<BlockItem*> ci;
|
QList<BlockItem*> ci;
|
||||||
|
QList<BlockBusItem*> bi;
|
||||||
foreach (QGraphicsItem * b, sel_items)
|
foreach (QGraphicsItem * b, sel_items)
|
||||||
if (b->data(1006) == "item") {
|
if (b->data(1006) == "item") {
|
||||||
ci << qgraphicsitem_cast<BlockItem*>(b);
|
ci << qgraphicsitem_cast<BlockItem*>(b);
|
||||||
ai << qgraphicsitem_cast<QGraphicsItem*>(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);
|
qDeleteAll(copy_items);
|
||||||
copy_items.clear();
|
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() {
|
void BlockView::adjustThumb() {
|
||||||
if (!scene()) return;
|
if (!scene()) return;
|
||||||
QSizeF sr = sceneRect().size(), tr;
|
QSizeF sr = sceneRect().size(), tr;
|
||||||
|
|||||||
@@ -99,11 +99,13 @@ protected:
|
|||||||
void markPins(int bus_type);
|
void markPins(int bus_type);
|
||||||
void unmarkPins(bool to_normal = false);
|
void unmarkPins(bool to_normal = false);
|
||||||
void moveBuses(const QList<QGraphicsItem * > & items, QPointF dp);
|
void moveBuses(const QList<QGraphicsItem * > & items, QPointF dp);
|
||||||
|
QList<BlockBusItem * > internalBuses(const QList<BlockItem * > & items);
|
||||||
double _thumb() const {return _talpha;}
|
double _thumb() const {return _talpha;}
|
||||||
void scrollFromThumb();
|
void scrollFromThumb();
|
||||||
|
|
||||||
virtual void loadBus(BlockBusItem * bus) {}
|
virtual void loadBus(BlockBusItem * bus) {}
|
||||||
virtual void copyBlocks(QList<BlockItem * > items, QPointF offset) {}
|
virtual void copyBlocks(QList<BlockItem * > items, QPointF offset) {}
|
||||||
|
virtual void copyBuses(QList<BlockBusItem * > items, QPointF offset) {}
|
||||||
virtual void newBusStarted(int bus_type) {}
|
virtual void newBusStarted(int bus_type) {}
|
||||||
|
|
||||||
QGraphicsScene * scene_;
|
QGraphicsScene * scene_;
|
||||||
|
|||||||
Reference in New Issue
Block a user