Commit a238e41c authored by Claes Sjofors's avatar Claes Sjofors

Merge branch 'master'

parents 937cd88e ea8eddc5
...@@ -116,6 +116,7 @@ static pwr_tStatus logg_print(logg_ctx loggctx, pwr_tUInt32 ident, char* msg); ...@@ -116,6 +116,7 @@ static pwr_tStatus logg_print(logg_ctx loggctx, pwr_tUInt32 ident, char* msg);
static pwr_tStatus logg_get_message( static pwr_tStatus logg_get_message(
logg_ctx loggctx, pwr_tUInt32* ident, char** msg); logg_ctx loggctx, pwr_tUInt32* ident, char** msg);
static pwr_tStatus logg_init(logg_ctx loggctx); static pwr_tStatus logg_init(logg_ctx loggctx);
static pwr_tStatus logg_free_message(void);
/**************************************************************************** /****************************************************************************
* Name: exit_hdlr() * Name: exit_hdlr()
...@@ -443,7 +444,8 @@ static pwr_tStatus logg_get_message( ...@@ -443,7 +444,8 @@ static pwr_tStatus logg_get_message(
exit(0); exit(0);
} }
} }
logg_free_message();
return QCOM__QEMPTY;
} else { } else {
*ident = *(pwr_tUInt32*)remlogg_get.data; *ident = *(pwr_tUInt32*)remlogg_get.data;
*msg = (char*)remlogg_get.data + sizeof(pwr_tUInt32); *msg = (char*)remlogg_get.data + sizeof(pwr_tUInt32);
......
! Generated by wb_print_wbl 03-SEP-2019 16:34:51.52
! Volume Remote
! Version V5.6.1
Volume Remote $ClassVolume 0.0.1.4 Volume Remote $ClassVolume 0.0.1.4
Body SysBody 01-JAN-1970 01:00:00.00 Body SysBody 01-JAN-1970 01:00:00.00
Attr NextOix = "_X163" Attr NextOix = "_X163"
...@@ -4565,11 +4568,11 @@ Volume Remote $ClassVolume 0.0.1.4 ...@@ -4565,11 +4568,11 @@ Volume Remote $ClassVolume 0.0.1.4
! The objid's are inserted by the remotehandler. ! The objid's are inserted by the remotehandler.
!*/ !*/
Object RemNodeObjects $Attribute 3 23-JAN-2018 17:01:41.00 Object RemNodeObjects $Attribute 3 23-JAN-2018 17:01:41.00
Body SysBody 01-JAN-1970 01:00:00.00 Body SysBody 03-SEP-2019 16:34:40.67
Attr PgmName = "RemNodeObjects" Attr PgmName = "RemNodeObjects"
Attr Size = 200 Attr Size = 400
Attr Flags = 2066 Attr Flags = 2066
Attr Elements = 25 Attr Elements = 50
Attr TypeRef = "pwrs:Type-$Objid" Attr TypeRef = "pwrs:Type-$Objid"
EndBody EndBody
EndObject EndObject
......
...@@ -660,6 +660,8 @@ Edit file \$pwrp_cnf/xtt_help.dat to write this description. ...@@ -660,6 +660,8 @@ Edit file \$pwrp_cnf/xtt_help.dat to write this description.
EOF EOF
cp $proot/src/cnf/xtt_help.dat $proot/bld/common/load
# Create an empty directory database # Create an empty directory database
echo "Creating directory database" echo "Creating directory database"
cat > $proot/src/db/directory.wb_load << EOF cat > $proot/src/db/directory.wb_load << EOF
......
...@@ -2503,7 +2503,7 @@ pwr_tStatus gdh_RenameObject( ...@@ -2503,7 +2503,7 @@ pwr_tStatus gdh_RenameObject(
*/ */
pwr_tStatus gdh_SetObjectInfo( pwr_tStatus gdh_SetObjectInfo(
char* name, /**< The name of the object or object attribute.*/ const char* name, /**< The name of the object or object attribute.*/
void* bufp, /**< Pointer to the data. */ void* bufp, /**< Pointer to the data. */
unsigned int bufsize /**< The size in bytes of the data buffer. */ unsigned int bufsize /**< The size in bytes of the data buffer. */
) )
...@@ -2616,7 +2616,7 @@ pwr_tStatus gdh_SetObjectInfo( ...@@ -2616,7 +2616,7 @@ pwr_tStatus gdh_SetObjectInfo(
} }
if (gdh_log_cb && ODD(sts)) if (gdh_log_cb && ODD(sts))
gdh_log_cb(name, bufp, bufsize); gdh_log_cb((char *)name, bufp, bufsize);
if (ccpLocked) { if (ccpLocked) {
gdb_Lock; gdb_Lock;
...@@ -5411,7 +5411,7 @@ void gdh_GetStrDL(char* sp, /**< Direct link to string attribute */ ...@@ -5411,7 +5411,7 @@ void gdh_GetStrDL(char* sp, /**< Direct link to string attribute */
* lck_Create(&sts, lck_eLock_Str). * lck_Create(&sts, lck_eLock_Str).
*/ */
void gdh_SetStrDL(char* sp, /**< Direct link to string attribute */ void gdh_SetStrDL(char* sp, /**< Direct link to string attribute */
char* str, /**< String value to set */ const char* str, /**< String value to set */
int size /**< Size of string */ int size /**< Size of string */
) )
{ {
...@@ -5429,7 +5429,7 @@ void gdh_SetStrDL(char* sp, /**< Direct link to string attribute */ ...@@ -5429,7 +5429,7 @@ void gdh_SetStrDL(char* sp, /**< Direct link to string attribute */
* *
* @return pwr_tStatus * @return pwr_tStatus
*/ */
pwr_tStatus gdh_GetObjectInfoTime(char* name, /**< Attribute name */ pwr_tStatus gdh_GetObjectInfoTime(const char* name, /**< Attribute name */
pwr_tTime* time /**< Receives the requested time */ pwr_tTime* time /**< Receives the requested time */
) )
{ {
...@@ -5450,7 +5450,7 @@ pwr_tStatus gdh_GetObjectInfoTime(char* name, /**< Attribute name */ ...@@ -5450,7 +5450,7 @@ pwr_tStatus gdh_GetObjectInfoTime(char* name, /**< Attribute name */
* *
* @return pwr_tStatus * @return pwr_tStatus
*/ */
pwr_tStatus gdh_SetObjectInfoTime(char* name, /**< Attribute name */ pwr_tStatus gdh_SetObjectInfoTime(const char* name, /**< Attribute name */
pwr_tTime* time /**< Time to set */ pwr_tTime* time /**< Time to set */
) )
{ {
...@@ -5471,7 +5471,7 @@ pwr_tStatus gdh_SetObjectInfoTime(char* name, /**< Attribute name */ ...@@ -5471,7 +5471,7 @@ pwr_tStatus gdh_SetObjectInfoTime(char* name, /**< Attribute name */
* *
* @return pwr_tStatus * @return pwr_tStatus
*/ */
pwr_tStatus gdh_GetObjectInfoDeltaTime(char* name, /**< Attribute name */ pwr_tStatus gdh_GetObjectInfoDeltaTime(const char* name, /**< Attribute name */
pwr_tDeltaTime* time /**< Receives the requested time */ pwr_tDeltaTime* time /**< Receives the requested time */
) )
{ {
...@@ -5492,7 +5492,7 @@ pwr_tStatus gdh_GetObjectInfoDeltaTime(char* name, /**< Attribute name */ ...@@ -5492,7 +5492,7 @@ pwr_tStatus gdh_GetObjectInfoDeltaTime(char* name, /**< Attribute name */
* *
* @return pwr_tStatus * @return pwr_tStatus
*/ */
pwr_tStatus gdh_SetObjectInfoDeltaTime(char* name, /**< Attribute name */ pwr_tStatus gdh_SetObjectInfoDeltaTime(const char* name, /**< Attribute name */
pwr_tDeltaTime* time /**< Time to set */ pwr_tDeltaTime* time /**< Time to set */
) )
{ {
...@@ -5513,7 +5513,7 @@ pwr_tStatus gdh_SetObjectInfoDeltaTime(char* name, /**< Attribute name */ ...@@ -5513,7 +5513,7 @@ pwr_tStatus gdh_SetObjectInfoDeltaTime(char* name, /**< Attribute name */
* *
* @return pwr_tStatus * @return pwr_tStatus
*/ */
pwr_tStatus gdh_GetObjectInfoStr(char* name, /**< Attribute name */ pwr_tStatus gdh_GetObjectInfoStr(const char* name, /**< Attribute name */
char* str, /**< Receives the requested string */ char* str, /**< Receives the requested string */
int size /**< String size */ int size /**< String size */
) )
...@@ -5535,8 +5535,8 @@ pwr_tStatus gdh_GetObjectInfoStr(char* name, /**< Attribute name */ ...@@ -5535,8 +5535,8 @@ pwr_tStatus gdh_GetObjectInfoStr(char* name, /**< Attribute name */
* *
* @return pwr_tStatus * @return pwr_tStatus
*/ */
pwr_tStatus gdh_SetObjectInfoStr(char* name, /**< Attribute name */ pwr_tStatus gdh_SetObjectInfoStr(const char* name, /**< Attribute name */
char* str, /**< String to set */ const char* str, /**< String to set */
int size /**< String size */ int size /**< String size */
) )
{ {
......
...@@ -342,7 +342,7 @@ pwr_tStatus gdh_SetAlarmBlockLevel( ...@@ -342,7 +342,7 @@ pwr_tStatus gdh_SetAlarmBlockLevel(
pwr_tStatus gdh_SetAlarmLevel(pwr_tObjid object, pwr_tUInt32 alarmLevel); pwr_tStatus gdh_SetAlarmLevel(pwr_tObjid object, pwr_tUInt32 alarmLevel);
pwr_tStatus gdh_SetObjectInfo( pwr_tStatus gdh_SetObjectInfo(
char* attributeName, void* buffer, unsigned int sizeOfBuffer); const char* attributeName, void* buffer, unsigned int sizeOfBuffer);
pwr_tStatus gdh_SetObjectInfoAttrref( pwr_tStatus gdh_SetObjectInfoAttrref(
pwr_sAttrRef* attributeReference, void* buffer, unsigned int sizeOfBuffer); pwr_sAttrRef* attributeReference, void* buffer, unsigned int sizeOfBuffer);
...@@ -444,13 +444,13 @@ void gdh_SetTimeDL(pwr_tTime* atp, pwr_tTime* time); ...@@ -444,13 +444,13 @@ void gdh_SetTimeDL(pwr_tTime* atp, pwr_tTime* time);
void gdh_GetDeltaTimeDL(pwr_tDeltaTime* dtp, pwr_tDeltaTime* time); void gdh_GetDeltaTimeDL(pwr_tDeltaTime* dtp, pwr_tDeltaTime* time);
void gdh_SetDeltaTimeDL(pwr_tDeltaTime* dtp, pwr_tDeltaTime* time); void gdh_SetDeltaTimeDL(pwr_tDeltaTime* dtp, pwr_tDeltaTime* time);
void gdh_GetStrDL(char* sp, char* str, int size); void gdh_GetStrDL(char* sp, char* str, int size);
void gdh_SetStrDL(char* sp, char* str, int size); void gdh_SetStrDL(char* sp, const char* str, int size);
pwr_tStatus gdh_GetObjectInfoTime(char* name, pwr_tTime* time); pwr_tStatus gdh_GetObjectInfoTime(const char* name, pwr_tTime* time);
pwr_tStatus gdh_SetObjectInfoTime(char* name, pwr_tTime* time); pwr_tStatus gdh_SetObjectInfoTime(const char* name, pwr_tTime* time);
pwr_tStatus gdh_GetObjectInfoDeltaTime(char* name, pwr_tDeltaTime* time); pwr_tStatus gdh_GetObjectInfoDeltaTime(const char* name, pwr_tDeltaTime* time);
pwr_tStatus gdh_SetObjectInfoDeltaTime(char* name, pwr_tDeltaTime* time); pwr_tStatus gdh_SetObjectInfoDeltaTime(const char* name, pwr_tDeltaTime* time);
pwr_tStatus gdh_GetObjectInfoStr(char* name, char* str, int size); pwr_tStatus gdh_GetObjectInfoStr(const char* name, char* str, int size);
pwr_tStatus gdh_SetObjectInfoStr(char* name, char* str, int size); pwr_tStatus gdh_SetObjectInfoStr(const char* name, const char* str, int size);
/** @} */ /** @} */
......
...@@ -152,7 +152,7 @@ else ...@@ -152,7 +152,7 @@ else
endif endif
explinkflags := $(cross_compile) -g -L$(elib_dir) explinkflags := $(cross_compile) -g -L$(elib_dir)
cxxflags := $(cflags) cxxflags := $(cflags) -Wno-deprecated-copy
clis = /lis=$(list) clis = /lis=$(list)
dolist = /lis=$(list) dolist = /lis=$(list)
domap = -Xlinker -Map -Xlinker $(map) domap = -Xlinker -Map -Xlinker $(map)
......
...@@ -70,7 +70,7 @@ SObject pwrb:Class ...@@ -70,7 +70,7 @@ SObject pwrb:Class
Body SysBody Body SysBody
Attr TypeRef = "pwrs:Type-$String80" Attr TypeRef = "pwrs:Type-$String80"
Attr Flags |= PWR_MASK_ARRAY Attr Flags |= PWR_MASK_ARRAY
Attr Elements = 20 Attr Elements = 50
EndBody EndBody
EndObject EndObject
EndObject EndObject
......
...@@ -1277,10 +1277,5 @@ int WFoeQt::view_set_entries() ...@@ -1277,10 +1277,5 @@ int WFoeQt::view_set_entries()
int WFoeQt::get_selection(char* str, int len) int WFoeQt::get_selection(char* str, int len)
{ {
int sts = CoWowQt::GetSelection(str, len, "PWR_OBJID"); return CoWowQt::GetSelection(str, len);
if (EVEN(sts)) {
sts = CoWowQt::GetSelection(str, len, "STRING");
}
return sts;
} }
...@@ -42,26 +42,20 @@ ...@@ -42,26 +42,20 @@
#include "wb_nav_qt.h" #include "wb_nav_qt.h"
#include <QApplication>
#include <QClipboard>
#include <QScrollArea> #include <QScrollArea>
#include <qlocalsocket.h>
NavQt::NavQt(void* nav_parent_ctx, const char* nav_name, NavQt::NavQt(void* nav_parent_ctx, const char* nav_name,
ldh_tSesContext nav_ldhses, const char* nav_root_name, QWidget** w, ldh_tSesContext nav_ldhses, const char* nav_root_name, QWidget** w,
pwr_tStatus* status) pwr_tStatus* status)
: Nav(nav_parent_ctx, nav_name, nav_ldhses, nav_root_name, status) : Nav(nav_parent_ctx, nav_name, nav_ldhses, nav_root_name, status)
{ {
trace_obj = new NavQtTraceObject(this);
QScrollArea* scrolledbrow = ((QScrollArea*)scrolledbrowwidgetqt_new( QScrollArea* scrolledbrow = ((QScrollArea*)scrolledbrowwidgetqt_new(
Nav::init_brow_cb, this, &brow_widget)); Nav::init_brow_cb, this, &brow_widget));
form_widget = wrapInFrame(scrolledbrow); form_widget = wrapInFrame(scrolledbrow);
server = new QLocalServer(trace_obj);
QObject::connect(
server, SIGNAL(newConnection()), trace_obj, SLOT(sel_convert_cb()));
set_inputfocus(0); set_inputfocus(0);
*w = form_widget; *w = form_widget;
...@@ -72,45 +66,27 @@ NavQt::~NavQt() ...@@ -72,45 +66,27 @@ NavQt::~NavQt()
{ {
PalFile::config_tree_free(menu); PalFile::config_tree_free(menu);
free_pixmaps(); free_pixmaps();
delete trace_obj;
form_widget->close(); form_widget->close();
} }
void NavQtTraceObject::sel_convert_cb() void NavQt::set_selection_owner(int set)
{ {
char name[200]; selection_owner = set;
pwr_tStatus sts; if (!selection_owner) {
if (!nav->selection_owner) {
return; return;
} }
if (!nav->get_plant_select_cb) { char name[200];
if (!get_plant_select_cb) {
strcpy(name, ""); strcpy(name, "");
} else { } else {
sts = nav->get_plant_select_cb(nav->parent_ctx, name, sizeof(name)); pwr_tStatus sts = get_plant_select_cb(parent_ctx, name, sizeof(name));
if (EVEN(sts)) { if (EVEN(sts)) {
strcpy(name, ""); strcpy(name, "");
} }
} }
QByteArray block; QApplication::clipboard()->setText(name, QClipboard::Selection);
QDataStream out(&block, QIODevice::WriteOnly);
out.writeRawData(name, strlen(name));
QLocalSocket* clientConnection = nav->server->nextPendingConnection();
clientConnection->write(block);
clientConnection->flush();
clientConnection->disconnectFromServer();
}
void NavQt::set_selection_owner(int set)
{
if (!server->isListening()) {
QLocalServer::removeServer("STRING");
server->listen("STRING");
}
selection_owner = set;
} }
static void modifyBackground(QWidget* widget, QColor color) static void modifyBackground(QWidget* widget, QColor color)
......
...@@ -43,10 +43,6 @@ ...@@ -43,10 +43,6 @@
#include <QWidget> #include <QWidget>
#include <qlocalserver.h>
class NavQtTraceObject;
class NavQt : public Nav { class NavQt : public Nav {
public: public:
NavQt(void* parent_ctx, const char* name, ldh_tSesContext ldhses, NavQt(void* parent_ctx, const char* name, ldh_tSesContext ldhses,
...@@ -56,26 +52,8 @@ public: ...@@ -56,26 +52,8 @@ public:
QWidget* brow_widget; QWidget* brow_widget;
QWidget* form_widget; QWidget* form_widget;
QLocalServer* server;
void set_inputfocus(int focus); void set_inputfocus(int focus);
void set_selection_owner(int set); void set_selection_owner(int set);
private:
NavQtTraceObject* trace_obj;
};
class NavQtTraceObject : public QObject {
Q_OBJECT
public:
NavQtTraceObject(NavQt* parent) : QObject(), nav(parent) {}
public slots:
void sel_convert_cb();
private:
NavQt* nav;
}; };
#endif #endif
\ No newline at end of file
...@@ -42,26 +42,20 @@ ...@@ -42,26 +42,20 @@
#include "wb_pal_qt.h" #include "wb_pal_qt.h"
#include <QApplication>
#include <QClipboard>
#include <QScrollArea> #include <QScrollArea>
#include <qlocalsocket.h>
PalQt::PalQt(void* pal_parent_ctx, const char* pal_name, PalQt::PalQt(void* pal_parent_ctx, const char* pal_name,
ldh_tSesContext pal_ldhses, const char* pal_root_name, QWidget** w, ldh_tSesContext pal_ldhses, const char* pal_root_name, QWidget** w,
pwr_tStatus* status) pwr_tStatus* status)
: Pal(pal_parent_ctx, pal_name, pal_ldhses, pal_root_name, status) : Pal(pal_parent_ctx, pal_name, pal_ldhses, pal_root_name, status)
{ {
trace_obj = new PalQtTraceObject(this);
QScrollArea* scrolledbrow = ((QScrollArea*)scrolledbrowwidgetqt_new( QScrollArea* scrolledbrow = ((QScrollArea*)scrolledbrowwidgetqt_new(
Pal::init_brow_cb, this, &brow_widget)); Pal::init_brow_cb, this, &brow_widget));
form_widget = wrapInFrame(scrolledbrow); form_widget = wrapInFrame(scrolledbrow);
server = new QLocalServer(trace_obj);
QObject::connect(
server, SIGNAL(newConnection()), trace_obj, SLOT(sel_convert_cb()));
set_inputfocus(0); set_inputfocus(0);
*w = form_widget; *w = form_widget;
...@@ -70,7 +64,6 @@ PalQt::PalQt(void* pal_parent_ctx, const char* pal_name, ...@@ -70,7 +64,6 @@ PalQt::PalQt(void* pal_parent_ctx, const char* pal_name,
PalQt::~PalQt() PalQt::~PalQt()
{ {
delete trace_obj;
PalFile::config_tree_free(menu); PalFile::config_tree_free(menu);
free_pixmaps(); free_pixmaps();
form_widget->close(); form_widget->close();
...@@ -107,25 +100,16 @@ void PalQt::set_inputfocus(int focus) ...@@ -107,25 +100,16 @@ void PalQt::set_inputfocus(int focus)
void PalQt::set_selection_owner() void PalQt::set_selection_owner()
{ {
if (!server->isListening()) {
QLocalServer::removeServer("STRING");
server->listen("STRING");
}
selection_owner = 1; selection_owner = 1;
brow_SetInverseColor(brow_ctx, flow_eDrawType_Line); brow_SetInverseColor(brow_ctx, flow_eDrawType_Line);
} if (!selection_owner) {
return;
}
void PalQtTraceObject::sel_convert_cb()
{
char name[200]; char name[200];
brow_tNode* node_list; brow_tNode* node_list;
int node_count; int node_count;
brow_GetSelectedNodes(brow_ctx, &node_list, &node_count);
if (!pal->selection_owner) {
return;
}
brow_GetSelectedNodes(pal->brow_ctx, &node_list, &node_count);
if (!node_count) { if (!node_count) {
strcpy(name, ""); strcpy(name, "");
} else { } else {
...@@ -142,12 +126,5 @@ void PalQtTraceObject::sel_convert_cb() ...@@ -142,12 +126,5 @@ void PalQtTraceObject::sel_convert_cb()
} }
} }
QByteArray block; QApplication::clipboard()->setText(name, QClipboard::Selection);
QDataStream out(&block, QIODevice::WriteOnly);
out.writeRawData(name, strlen(name));
QLocalSocket* clientConnection = pal->server->nextPendingConnection();
clientConnection->write(block);
clientConnection->flush();
clientConnection->disconnectFromServer();
} }
...@@ -41,10 +41,6 @@ ...@@ -41,10 +41,6 @@
#include <QWidget> #include <QWidget>
#include <qlocalserver.h>
class PalQtTraceObject;
class PalQt : public Pal { class PalQt : public Pal {
public: public:
PalQt(void* parent_ctx, const char* name, ldh_tSesContext ldhses, PalQt(void* parent_ctx, const char* name, ldh_tSesContext ldhses,
...@@ -54,27 +50,9 @@ public: ...@@ -54,27 +50,9 @@ public:
QWidget* brow_widget; QWidget* brow_widget;
QWidget* form_widget; QWidget* form_widget;
QLocalServer* server;
void set_inputfocus(int focus); void set_inputfocus(int focus);
void set_selection_owner(); void set_selection_owner();
void create_popup_menu(pwr_tCid cid, int x, int y); void create_popup_menu(pwr_tCid cid, int x, int y);
private:
PalQtTraceObject* trace_obj;
};
class PalQtTraceObject : public QObject {
Q_OBJECT
public:
PalQtTraceObject(PalQt* parent) : QObject(), pal(parent) {}
public slots:
void sel_convert_cb();
private:
PalQt* pal;
}; };
#endif #endif
\ No newline at end of file
...@@ -66,11 +66,7 @@ WAttNavQt::~WAttNavQt() ...@@ -66,11 +66,7 @@ WAttNavQt::~WAttNavQt()
pwr_tStatus WAttNavQt::get_selection(char* str, int size) pwr_tStatus WAttNavQt::get_selection(char* str, int size)
{ {
pwr_tStatus sts = CoWowQt::GetSelection(str, size, "PWR_OBJID"); return CoWowQt::GetSelection(str, size);
if (EVEN(sts)) {
sts = CoWowQt::GetSelection(str, size, "STRING");
}
return sts;
} }
void WAttNavQt::set_inputfocus() void WAttNavQt::set_inputfocus()
...@@ -79,4 +75,4 @@ void WAttNavQt::set_inputfocus() ...@@ -79,4 +75,4 @@ void WAttNavQt::set_inputfocus()
return; return;
} }
brow_widget->setFocus(); brow_widget->setFocus();
} }
\ No newline at end of file
...@@ -60,14 +60,13 @@ ...@@ -60,14 +60,13 @@
#include "wb_xcrr_qt.h" #include "wb_xcrr_qt.h"
#include <QApplication> #include <QApplication>
#include <QClipboard>
#include <QColor> #include <QColor>
#include <QInputDialog> #include <QInputDialog>
#include <QLayout> #include <QLayout>
#include <QMessageBox> #include <QMessageBox>
#include <QScrollArea> #include <QScrollArea>
#include <qlocalsocket.h>
void WNavQt::pop() void WNavQt::pop()
{ {
::pop(form_widget); ::pop(form_widget);
...@@ -94,19 +93,6 @@ WNavQt::WNavQt(void* xn_parent_ctx, QWidget* xn_parent_wid, const char* xn_name, ...@@ -94,19 +93,6 @@ WNavQt::WNavQt(void* xn_parent_ctx, QWidget* xn_parent_wid, const char* xn_name,
// Create the root item // Create the root item
*w = form_widget; *w = form_widget;
serverString = new QLocalServer(trace_obj);
QObject::connect(
serverString, SIGNAL(newConnection()), trace_obj, SLOT(sel_convert_cb()));
serverGraph = new QLocalServer(trace_obj);
QObject::connect(
serverGraph, SIGNAL(newConnection()), trace_obj, SLOT(sel_convert_cb()));
serverObjId = new QLocalServer(trace_obj);
QObject::connect(
serverObjId, SIGNAL(newConnection()), trace_obj, SLOT(sel_convert_cb()));
serverAttrRef = new QLocalServer(trace_obj);
QObject::connect(serverAttrRef, SIGNAL(newConnection()), trace_obj,
SLOT(sel_convert_cb()));
gbl.load_config(this); gbl.load_config(this);
if (root_menu && !ldhses) { if (root_menu && !ldhses) {
...@@ -181,36 +167,79 @@ void WNavQt::print(const char* title) ...@@ -181,36 +167,79 @@ void WNavQt::print(const char* title)
int WNavQt::get_selection(char* str, int len) int WNavQt::get_selection(char* str, int len)
{ {
int sts; return CoWowQt::GetSelection(str, len);
sts = CoWowQt::GetSelection(str, len, "PWR_OBJID");
if (EVEN(sts)) {
sts = CoWowQt::GetSelection(str, len, "STRING");
}
return sts;
} }
void WNavQt::set_selection_owner() void WNavQt::set_selection_owner()
{ {
if (!serverString->isListening()) { selection_owner = 1;
QLocalServer::removeServer("STRING"); if (!selection_owner) {
serverString->listen("STRING"); return;
}
pwr_sAttrRef attrref;
char* buffp;
int node_count;
brow_tNode* node_list;
brow_GetSelectedNodes(brow->ctx, &node_list, &node_count);
if (!node_count) {
return;
}
WItem* item;
brow_GetUserData(node_list[0], (void**)&item);
switch (item->type) {
case wnav_eItemType_Attr:
case wnav_eItemType_AttrInput:
case wnav_eItemType_AttrInputInv:
case wnav_eItemType_AttrInputF:
case wnav_eItemType_AttrOutput:
case wnav_eItemType_AttrArray:
case wnav_eItemType_AttrArrayOutput:
case wnav_eItemType_AttrArrayElem:
case wnav_eItemType_AttrObject: {
WItemBaseAttr* aitem = (WItemBaseAttr*)item;
int size;
pwr_tAName attr_str;
int sts = ldh_ObjidToName(ldhses, item->objid, ldh_eName_Hierarchy,
attr_str, sizeof(attr_str), &size);
if (EVEN(sts)) {
break;
}
strcat(attr_str, ".");
strcat(attr_str, aitem->name);
sts = ldh_NameToAttrRef(ldhses, attr_str, &attrref);
if (EVEN(sts)) {
break;
}
sts = (format_selection_cb)(
parent_ctx, attrref, &buffp, 0, 1, wnav_eSelectionFormat_User);
if (sts) {
QApplication::clipboard()->setText(buffp, QClipboard::Selection);
}
break;
} }
if (!serverGraph->isListening()) { case wnav_eItemType_Object: {
QLocalServer::removeServer("PWR_GRAPH"); attrref = cdh_ObjidToAref(item->objid);
serverGraph->listen("PWR_GRAPH"); int sts = (format_selection_cb)(
parent_ctx, attrref, &buffp, 0, 0, wnav_eSelectionFormat_User);
if (sts) {
QApplication::clipboard()->setText(buffp, QClipboard::Selection);
}
break;
} }
if (!serverObjId->isListening()) { default: {
QLocalServer::removeServer("PWR_OBJID"); char name[200];
serverObjId->listen("PWR_OBJID"); brow_GetAnnotation(node_list[0], 0, name, sizeof(name));
QApplication::clipboard()->setText(name, QClipboard::Selection);
break;
} }
if (!serverAttrRef->isListening()) {
QLocalServer::removeServer("PWR_ATTRREF");
serverAttrRef->listen("PWR_ATTRREF");
} }
free(node_list);
selection_owner = 1;
} }
void WNavQt::create_popup_menu(pwr_tAttrRef aref, int x, int y) void WNavQt::create_popup_menu(pwr_tAttrRef aref, int x, int y)
...@@ -282,101 +311,6 @@ void WNavQt::logw_new(char* item, wlog_eCategory* categories, int show_item) ...@@ -282,101 +311,6 @@ void WNavQt::logw_new(char* item, wlog_eCategory* categories, int show_item)
} }
} }
static void selection_data_set(
WNavQt* wnav, QLocalServer* server, const char* data)
{
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out << QString(data);
QLocalSocket* clientConnection = server->nextPendingConnection();
QObject::connect(clientConnection, SIGNAL(disconnected()),
clientConnection, SLOT(deleteLater()));
clientConnection->write(block);
clientConnection->flush();
clientConnection->disconnectFromServer();
}
void WNavQtTraceObject::sel_convert_cb()
{
pwr_sAttrRef attrref;
char* buffp;
QLocalServer* server = ((QLocalServer*)sender());
wnav_eSelectionFormat format;
if (server == wnav->serverGraph) {
format = wnav_eSelectionFormat_Graph;
} else if (server == wnav->serverObjId) {
format = wnav_eSelectionFormat_Objid;
} else if (server == wnav->serverAttrRef) {
format = wnav_eSelectionFormat_Attrref;
} else {
format = wnav_eSelectionFormat_User;
}
int node_count;
brow_tNode* node_list;
brow_GetSelectedNodes(wnav->brow->ctx, &node_list, &node_count);
if (!node_count) {
return;
}
WItem* item;
brow_GetUserData(node_list[0], (void**)&item);
switch (item->type) {
case wnav_eItemType_Attr:
case wnav_eItemType_AttrInput:
case wnav_eItemType_AttrInputInv:
case wnav_eItemType_AttrInputF:
case wnav_eItemType_AttrOutput:
case wnav_eItemType_AttrArray:
case wnav_eItemType_AttrArrayOutput:
case wnav_eItemType_AttrArrayElem:
case wnav_eItemType_AttrObject: {
WItemBaseAttr* aitem = (WItemBaseAttr*)item;
int size;
pwr_tAName attr_str;
int sts = ldh_ObjidToName(wnav->ldhses, item->objid, ldh_eName_Hierarchy,
attr_str, sizeof(attr_str), &size);
if (EVEN(sts)) {
break;
}
strcat(attr_str, ".");
strcat(attr_str, aitem->name);
sts = ldh_NameToAttrRef(wnav->ldhses, attr_str, &attrref);
if (EVEN(sts)) {
break;
}
sts = (wnav->format_selection_cb)(
wnav->parent_ctx, attrref, &buffp, 0, 1, format);
if (sts) {
selection_data_set(wnav, server, buffp);
}
break;
}
case wnav_eItemType_Object: {
attrref = cdh_ObjidToAref(item->objid);
int sts = (wnav->format_selection_cb)(
wnav->parent_ctx, attrref, &buffp, 0, 0, format);
if (sts) {
selection_data_set(wnav, server, buffp);
}
break;
}
default: {
char name[200];
brow_GetAnnotation(node_list[0], 0, name, sizeof(name));
selection_data_set(wnav, server, name);
break;
}
}
free(node_list);
}
int WNavQt::open_foe(const char* name, pwr_tOid plcpgm, void** foectx, int WNavQt::open_foe(const char* name, pwr_tOid plcpgm, void** foectx,
int map_window, ldh_eAccess access, pwr_tOid oid) int map_window, ldh_eAccess access, pwr_tOid oid)
{ {
......
...@@ -41,8 +41,6 @@ ...@@ -41,8 +41,6 @@
#include <QTimer> #include <QTimer>
#include <qlocalserver.h>
/* wtt_wnav_qt.h -- Simple navigator */ /* wtt_wnav_qt.h -- Simple navigator */
class CoLogin; class CoLogin;
...@@ -62,11 +60,6 @@ public: ...@@ -62,11 +60,6 @@ public:
QWidget* brow_widget; QWidget* brow_widget;
QWidget* form_widget; QWidget* form_widget;
QLocalServer* serverString;
QLocalServer* serverGraph;
QLocalServer* serverObjId;
QLocalServer* serverAttrRef;
void pop(); void pop();
void set_inputfocus(int focus); void set_inputfocus(int focus);
void print(const char* title); void print(const char* title);
...@@ -115,11 +108,10 @@ public: ...@@ -115,11 +108,10 @@ public:
public slots: public slots:
void trace_scan(); void trace_scan();
void sel_convert_cb();
private: private:
WNavQt* wnav; WNavQt* wnav;
QTimer* trace_timerid; QTimer* trace_timerid;
}; };
#endif #endif
\ No newline at end of file
...@@ -78,7 +78,7 @@ class wb_erep { ...@@ -78,7 +78,7 @@ class wb_erep {
std::vector<wb_vrep*> m_vrepbuffer; std::vector<wb_vrep*> m_vrepbuffer;
std::map<std::string, wb_tMethod> m_methods; std::map<std::string, wb_tMethod> m_methods;
char m_dir_list[25][200]; char m_dir_list[52][200];
int m_dir_cnt; int m_dir_cnt;
int m_volatile_idx; int m_volatile_idx;
int m_buffer_max; int m_buffer_max;
......
...@@ -742,7 +742,7 @@ pwr_tStatus lfu_SaveDirectoryVolume( ...@@ -742,7 +742,7 @@ pwr_tStatus lfu_SaveDirectoryVolume(
path_file_created = 1; path_file_created = 1;
for (i = 0; i < 20; i++) { for (i = 0; i < 50; i++) {
str_trim(path, path_ptr[i]); str_trim(path, path_ptr[i]);
if (!streq(path, "")) if (!streq(path, ""))
fprintf(fpath, "%s\n", path); fprintf(fpath, "%s\n", path);
......
...@@ -3250,6 +3250,7 @@ int WItemAttrArrayElem::open_children(double x, double y) ...@@ -3250,6 +3250,7 @@ int WItemAttrArrayElem::open_children(double x, double y)
flow_eDest_IntoLast); flow_eDest_IntoLast);
} }
free((char*)bd); free((char*)bd);
break;
} }
case pwr_eType_Objid: case pwr_eType_Objid:
case pwr_eType_AttrRef: { case pwr_eType_AttrRef: {
......
This diff is collapsed.
This diff is collapsed.
...@@ -52,6 +52,7 @@ ...@@ -52,6 +52,7 @@
#include "flow_browapi.h" #include "flow_browapi.h"
#include <QApplication> #include <QApplication>
#include <QClipboard>
#include <QDialogButtonBox> #include <QDialogButtonBox>
#include <QFileDialog> #include <QFileDialog>
#include <QHBoxLayout> #include <QHBoxLayout>
...@@ -70,8 +71,6 @@ ...@@ -70,8 +71,6 @@
#include <QTimer> #include <QTimer>
#include <QVBoxLayout> #include <QVBoxLayout>
#include <qlocalsocket.h>
typedef struct { typedef struct {
char title[80]; char title[80];
flow_tCtx flow_ctx; flow_tCtx flow_ctx;
...@@ -413,34 +412,13 @@ void CoWowQtObject::DisplayLicense() ...@@ -413,34 +412,13 @@ void CoWowQtObject::DisplayLicense()
pop(mbox); pop(mbox);
} }
int CoWowQt::GetSelection(char* str, int size, const char* atom) int CoWowQt::GetSelection(char* str, int size)
{ {
QLocalSocket* socket = new QLocalSocket(); QString rcvStr = QApplication::clipboard()->text(QClipboard::Selection);
socket->connectToServer(fl(atom));
if (!socket->waitForConnected()) {
log_debug("GetSelection failed, could not connect to local server %s: %s\n", fl(atom), qPrintable(socket->errorString()));
}
QString rcvStr;
int received = 0;
while (!received) {
if (socket->waitForReadyRead(50)) {
QDataStream in(socket);
if (socket->bytesAvailable() > 0 && !in.atEnd()) {
in >> rcvStr;
}
received = 1;
}
QApplication::processEvents();
}
socket->close();
delete socket;
if (!rcvStr.isEmpty() && rcvStr.length() < size) { if (!rcvStr.isEmpty() && rcvStr.length() < size) {
strcpy(str, qPrintable(rcvStr)); strcpy(str, qPrintable(rcvStr));
return true;
} }
return !rcvStr.isEmpty(); return !rcvStr.isEmpty();
} }
......
...@@ -223,7 +223,7 @@ public: ...@@ -223,7 +223,7 @@ public:
static void PopupPosition( static void PopupPosition(
QWidget* parent, int x_event, int y_event, int* x, int* y); QWidget* parent, int x_event, int y_event, int* x, int* y);
static int GetSelection(char* str, int size, const char* atom); static int GetSelection(char* str, int size);
static void SetWindowIcon(QWidget* w); static void SetWindowIcon(QWidget* w);
static void update_title(QWidget* w, int editmode); static void update_title(QWidget* w, int editmode);
......
...@@ -320,14 +320,9 @@ int GeQt::get_plant_select(char* select_name, int size) ...@@ -320,14 +320,9 @@ int GeQt::get_plant_select(char* select_name, int size)
pwr_tAName buff; pwr_tAName buff;
if (!ldhses) { if (!ldhses) {
sts = CoWowQt::GetSelection(str, sizeof(str), "PWR_GRAPH"); sts = CoWowQt::GetSelection(str, sizeof(str));
if (ODD(sts)) { if (ODD(sts)) {
strcpy(select_name, str); strcpy(select_name, str);
} else {
sts = CoWowQt::GetSelection(str, sizeof(str), "STRING");
if (ODD(sts)) {
strcpy(select_name, str);
}
} }
return sts; return sts;
} }
...@@ -342,14 +337,9 @@ int GeQt::get_plant_select(char* select_name, int size) ...@@ -342,14 +337,9 @@ int GeQt::get_plant_select(char* select_name, int size)
strncpy(select_name, buff, size); strncpy(select_name, buff, size);
return 1; return 1;
} else { } else {
sts = CoWowQt::GetSelection(str, sizeof(str), "PWR_GRAPH"); sts = CoWowQt::GetSelection(str, sizeof(str));
if (ODD(sts)) { if (ODD(sts)) {
strncpy(select_name, str, size); strncpy(select_name, str, size);
} else {
sts = CoWowQt::GetSelection(str, sizeof(str), "STRING");
if (ODD(sts)) {
strncpy(select_name, str, size);
}
} }
return sts; return sts;
} }
......
...@@ -11267,6 +11267,9 @@ int GeXY_Curve::scan(grow_tObject object) ...@@ -11267,6 +11267,9 @@ int GeXY_Curve::scan(grow_tObject object)
dyn->parse_attr_name( dyn->parse_attr_name(
x_attr, parsed_name, &inverted, &attr_type_x, &attr_size, &attr_elem); x_attr, parsed_name, &inverted, &attr_type_x, &attr_size, &attr_elem);
} }
if (attr_elem == 0)
return 1;
x_value = calloc(MAX(attr_elem, no_of_points), attr_size / attr_elem); x_value = calloc(MAX(attr_elem, no_of_points), attr_size / attr_elem);
sts = gdh_GetObjectInfo(parsed_name, x_value, attr_size); sts = gdh_GetObjectInfo(parsed_name, x_value, attr_size);
......
...@@ -373,7 +373,7 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot, ...@@ -373,7 +373,7 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot,
for (int i = 0; i < barsegments + 1; i++) { for (int i = 0; i < barsegments + 1; i++) {
glow_eDrawType fillcolor = glow_eDrawType_Line; glow_eDrawType fillcolor = glow_eDrawType_Line;
if ( min_value > 0 || bar_values[i][j] > 0) { if ( min_value >= 0 || bar_values[i][j] > 0) {
skip = 0; skip = 0;
bar_up_ur_y = bar_up_ll_y; bar_up_ur_y = bar_up_ll_y;
...@@ -467,6 +467,9 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot, ...@@ -467,6 +467,9 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot,
drawtype = fillcolor; drawtype = fillcolor;
ctx->gdraw->rect(bar_ll_x, bar_down_ll_y, bar_ur_x - bar_ll_x, ctx->gdraw->rect(bar_ll_x, bar_down_ll_y, bar_ur_x - bar_ll_x,
bar_down_ur_y - bar_down_ll_y, drawtype, 1, 0); bar_down_ur_y - bar_down_ll_y, drawtype, 1, 0);
if (bar_up_ll_y > ll_y)
ctx->gdraw->rect(bar_ll_x, ll_y, bar_ur_x - bar_ll_x,
bar_up_ll_y - ll_y, drawtype, 1, 0);
} else { } else {
glow_eDrawType f1, f2; glow_eDrawType f1, f2;
if (gradient_contrast >= 0) { if (gradient_contrast >= 0) {
...@@ -498,9 +501,9 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot, ...@@ -498,9 +501,9 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot,
} }
if ( min_value >= 0) { if ( min_value >= 0) {
brect_ll_x = bar_ll_x; brect_ll_x = bar_ll_x;
brect_ll_y = bar_up_ll_y; brect_ll_y = int(f_bar_up_ll_y);
brect_width = bar_ur_x - bar_ll_x; brect_width = bar_ur_x - bar_ll_x;
brect_height = ur_y - bar_up_ll_y; brect_height = ur_y - int(f_bar_up_ll_y);
} else { } else {
brect_ll_x = bar_ll_x; brect_ll_x = bar_ll_x;
brect_ll_y = bar_up_ll_y; brect_ll_y = bar_up_ll_y;
......
...@@ -331,8 +331,8 @@ XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name, ...@@ -331,8 +331,8 @@ XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name,
str_StrncpyCutOff(title, name, sizeof(title), 1); str_StrncpyCutOff(title, name, sizeof(title), 1);
// Qt // Qt
toplevel = new XttGeQtWidget(this);
if (!(options & ge_mOptions_Embedded)) { if (!(options & ge_mOptions_Embedded)) {
toplevel = new XttGeQtWidget(this);
toplevel->setWindowTitle(QString::fromLatin1(title)); toplevel->setWindowTitle(QString::fromLatin1(title));
toplevel->setAttribute(Qt::WA_DeleteOnClose); toplevel->setAttribute(Qt::WA_DeleteOnClose);
......
...@@ -176,6 +176,11 @@ XttMultiViewQt::XttMultiViewQt(void* mv_parent_ctx, const char* mv_name, ...@@ -176,6 +176,11 @@ XttMultiViewQt::XttMultiViewQt(void* mv_parent_ctx, const char* mv_name,
comp_widget = std::vector<QWidget*>(rows * cols); comp_widget = std::vector<QWidget*>(rows * cols);
exchange_widget = std::vector<QWidget*>(rows * cols); exchange_widget = std::vector<QWidget*>(rows * cols);
exchange_widget_layout = std::vector<QHBoxLayout*>(rows * cols); exchange_widget_layout = std::vector<QHBoxLayout*>(rows * cols);
for (int i = 0; i < rows * cols; i++) {
exchange_widget_layout[i] = new QHBoxLayout(toplevel);
exchange_widget[i]
= layout_to_widget(exchange_widget_layout[i]);
}
QHBoxLayout* col_widget_box = new QHBoxLayout(); QHBoxLayout* col_widget_box = new QHBoxLayout();
QSplitter* col_widget_pane = new QSplitter(); QSplitter* col_widget_pane = new QSplitter();
...@@ -680,8 +685,6 @@ XttMultiViewQt::XttMultiViewQt(void* mv_parent_ctx, const char* mv_name, ...@@ -680,8 +685,6 @@ XttMultiViewQt::XttMultiViewQt(void* mv_parent_ctx, const char* mv_name,
if (mv.Action[idx].Options if (mv.Action[idx].Options
& pwr_mMultiViewElemOptionsMask_Exchangeable) { & pwr_mMultiViewElemOptionsMask_Exchangeable) {
exchange_widget[idx]
= layout_to_widget(exchange_widget_layout[idx]);
if (comp_widget[idx]) { if (comp_widget[idx]) {
add_expanding(exchange_widget_layout[idx], add_expanding(exchange_widget_layout[idx],
comp_widget[idx]); comp_widget[idx]);
...@@ -1296,4 +1299,4 @@ void XttMultiViewQt::signal_send(char* signalname) ...@@ -1296,4 +1299,4 @@ void XttMultiViewQt::signal_send(char* signalname)
((XttMultiViewQt*) views[i].data)->signal_send(signalname); ((XttMultiViewQt*) views[i].data)->signal_send(signalname);
} }
} }
} }
\ No newline at end of file
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment