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);
static pwr_tStatus logg_get_message(
logg_ctx loggctx, pwr_tUInt32* ident, char** msg);
static pwr_tStatus logg_init(logg_ctx loggctx);
static pwr_tStatus logg_free_message(void);
/****************************************************************************
* Name: exit_hdlr()
......@@ -443,7 +444,8 @@ static pwr_tStatus logg_get_message(
exit(0);
}
}
logg_free_message();
return QCOM__QEMPTY;
} else {
*ident = *(pwr_tUInt32*)remlogg_get.data;
*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
Body SysBody 01-JAN-1970 01:00:00.00
Attr NextOix = "_X163"
......@@ -4565,11 +4568,11 @@ Volume Remote $ClassVolume 0.0.1.4
! The objid's are inserted by the remotehandler.
!*/
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 Size = 200
Attr Size = 400
Attr Flags = 2066
Attr Elements = 25
Attr Elements = 50
Attr TypeRef = "pwrs:Type-$Objid"
EndBody
EndObject
......
......@@ -660,6 +660,8 @@ Edit file \$pwrp_cnf/xtt_help.dat to write this description.
EOF
cp $proot/src/cnf/xtt_help.dat $proot/bld/common/load
# Create an empty directory database
echo "Creating directory database"
cat > $proot/src/db/directory.wb_load << EOF
......
......@@ -2503,7 +2503,7 @@ pwr_tStatus gdh_RenameObject(
*/
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. */
unsigned int bufsize /**< The size in bytes of the data buffer. */
)
......@@ -2616,7 +2616,7 @@ pwr_tStatus gdh_SetObjectInfo(
}
if (gdh_log_cb && ODD(sts))
gdh_log_cb(name, bufp, bufsize);
gdh_log_cb((char *)name, bufp, bufsize);
if (ccpLocked) {
gdb_Lock;
......@@ -5411,7 +5411,7 @@ void gdh_GetStrDL(char* sp, /**< Direct link to string attribute */
* lck_Create(&sts, lck_eLock_Str).
*/
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 */
)
{
......@@ -5429,7 +5429,7 @@ void gdh_SetStrDL(char* sp, /**< Direct link to string attribute */
*
* @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 */
)
{
......@@ -5450,7 +5450,7 @@ pwr_tStatus gdh_GetObjectInfoTime(char* name, /**< Attribute name */
*
* @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 */
)
{
......@@ -5471,7 +5471,7 @@ pwr_tStatus gdh_SetObjectInfoTime(char* name, /**< Attribute name */
*
* @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 */
)
{
......@@ -5492,7 +5492,7 @@ pwr_tStatus gdh_GetObjectInfoDeltaTime(char* name, /**< Attribute name */
*
* @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 */
)
{
......@@ -5513,7 +5513,7 @@ pwr_tStatus gdh_SetObjectInfoDeltaTime(char* name, /**< Attribute name */
*
* @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 */
int size /**< String size */
)
......@@ -5535,8 +5535,8 @@ pwr_tStatus gdh_GetObjectInfoStr(char* name, /**< Attribute name */
*
* @return pwr_tStatus
*/
pwr_tStatus gdh_SetObjectInfoStr(char* name, /**< Attribute name */
char* str, /**< String to set */
pwr_tStatus gdh_SetObjectInfoStr(const char* name, /**< Attribute name */
const char* str, /**< String to set */
int size /**< String size */
)
{
......
......@@ -342,7 +342,7 @@ pwr_tStatus gdh_SetAlarmBlockLevel(
pwr_tStatus gdh_SetAlarmLevel(pwr_tObjid object, pwr_tUInt32 alarmLevel);
pwr_tStatus gdh_SetObjectInfo(
char* attributeName, void* buffer, unsigned int sizeOfBuffer);
const char* attributeName, void* buffer, unsigned int sizeOfBuffer);
pwr_tStatus gdh_SetObjectInfoAttrref(
pwr_sAttrRef* attributeReference, void* buffer, unsigned int sizeOfBuffer);
......@@ -444,13 +444,13 @@ void gdh_SetTimeDL(pwr_tTime* atp, pwr_tTime* time);
void gdh_GetDeltaTimeDL(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_SetStrDL(char* sp, char* str, int size);
pwr_tStatus gdh_GetObjectInfoTime(char* name, pwr_tTime* time);
pwr_tStatus gdh_SetObjectInfoTime(char* name, pwr_tTime* time);
pwr_tStatus gdh_GetObjectInfoDeltaTime(char* name, pwr_tDeltaTime* time);
pwr_tStatus gdh_SetObjectInfoDeltaTime(char* name, pwr_tDeltaTime* time);
pwr_tStatus gdh_GetObjectInfoStr(char* name, char* str, int size);
pwr_tStatus gdh_SetObjectInfoStr(char* name, char* str, int size);
void gdh_SetStrDL(char* sp, const char* str, int size);
pwr_tStatus gdh_GetObjectInfoTime(const char* name, pwr_tTime* time);
pwr_tStatus gdh_SetObjectInfoTime(const char* name, pwr_tTime* time);
pwr_tStatus gdh_GetObjectInfoDeltaTime(const char* name, pwr_tDeltaTime* time);
pwr_tStatus gdh_SetObjectInfoDeltaTime(const char* name, pwr_tDeltaTime* time);
pwr_tStatus gdh_GetObjectInfoStr(const char* name, char* str, int size);
pwr_tStatus gdh_SetObjectInfoStr(const char* name, const char* str, int size);
/** @} */
......
......@@ -152,7 +152,7 @@ else
endif
explinkflags := $(cross_compile) -g -L$(elib_dir)
cxxflags := $(cflags)
cxxflags := $(cflags) -Wno-deprecated-copy
clis = /lis=$(list)
dolist = /lis=$(list)
domap = -Xlinker -Map -Xlinker $(map)
......
......@@ -70,7 +70,7 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
Attr Flags |= PWR_MASK_ARRAY
Attr Elements = 20
Attr Elements = 50
EndBody
EndObject
EndObject
......
......@@ -1277,10 +1277,5 @@ int WFoeQt::view_set_entries()
int WFoeQt::get_selection(char* str, int len)
{
int sts = CoWowQt::GetSelection(str, len, "PWR_OBJID");
if (EVEN(sts)) {
sts = CoWowQt::GetSelection(str, len, "STRING");
}
return sts;
return CoWowQt::GetSelection(str, len);
}
......@@ -42,26 +42,20 @@
#include "wb_nav_qt.h"
#include <QApplication>
#include <QClipboard>
#include <QScrollArea>
#include <qlocalsocket.h>
NavQt::NavQt(void* nav_parent_ctx, const char* nav_name,
ldh_tSesContext nav_ldhses, const char* nav_root_name, QWidget** w,
pwr_tStatus* status)
: Nav(nav_parent_ctx, nav_name, nav_ldhses, nav_root_name, status)
{
trace_obj = new NavQtTraceObject(this);
QScrollArea* scrolledbrow = ((QScrollArea*)scrolledbrowwidgetqt_new(
Nav::init_brow_cb, this, &brow_widget));
form_widget = wrapInFrame(scrolledbrow);
server = new QLocalServer(trace_obj);
QObject::connect(
server, SIGNAL(newConnection()), trace_obj, SLOT(sel_convert_cb()));
set_inputfocus(0);
*w = form_widget;
......@@ -72,45 +66,27 @@ NavQt::~NavQt()
{
PalFile::config_tree_free(menu);
free_pixmaps();
delete trace_obj;
form_widget->close();
}
void NavQtTraceObject::sel_convert_cb()
void NavQt::set_selection_owner(int set)
{
char name[200];
pwr_tStatus sts;
if (!nav->selection_owner) {
selection_owner = set;
if (!selection_owner) {
return;
}
if (!nav->get_plant_select_cb) {
char name[200];
if (!get_plant_select_cb) {
strcpy(name, "");
} 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)) {
strcpy(name, "");
}
}
QByteArray block;
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;
QApplication::clipboard()->setText(name, QClipboard::Selection);
}
static void modifyBackground(QWidget* widget, QColor color)
......
......@@ -43,10 +43,6 @@
#include <QWidget>
#include <qlocalserver.h>
class NavQtTraceObject;
class NavQt : public Nav {
public:
NavQt(void* parent_ctx, const char* name, ldh_tSesContext ldhses,
......@@ -56,26 +52,8 @@ public:
QWidget* brow_widget;
QWidget* form_widget;
QLocalServer* server;
void set_inputfocus(int focus);
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
......@@ -42,26 +42,20 @@
#include "wb_pal_qt.h"
#include <QApplication>
#include <QClipboard>
#include <QScrollArea>
#include <qlocalsocket.h>
PalQt::PalQt(void* pal_parent_ctx, const char* pal_name,
ldh_tSesContext pal_ldhses, const char* pal_root_name, QWidget** w,
pwr_tStatus* status)
: Pal(pal_parent_ctx, pal_name, pal_ldhses, pal_root_name, status)
{
trace_obj = new PalQtTraceObject(this);
QScrollArea* scrolledbrow = ((QScrollArea*)scrolledbrowwidgetqt_new(
Pal::init_brow_cb, this, &brow_widget));
form_widget = wrapInFrame(scrolledbrow);
server = new QLocalServer(trace_obj);
QObject::connect(
server, SIGNAL(newConnection()), trace_obj, SLOT(sel_convert_cb()));
set_inputfocus(0);
*w = form_widget;
......@@ -70,7 +64,6 @@ PalQt::PalQt(void* pal_parent_ctx, const char* pal_name,
PalQt::~PalQt()
{
delete trace_obj;
PalFile::config_tree_free(menu);
free_pixmaps();
form_widget->close();
......@@ -107,25 +100,16 @@ void PalQt::set_inputfocus(int focus)
void PalQt::set_selection_owner()
{
if (!server->isListening()) {
QLocalServer::removeServer("STRING");
server->listen("STRING");
}
selection_owner = 1;
brow_SetInverseColor(brow_ctx, flow_eDrawType_Line);
}
if (!selection_owner) {
return;
}
void PalQtTraceObject::sel_convert_cb()
{
char name[200];
brow_tNode* node_list;
int node_count;
if (!pal->selection_owner) {
return;
}
brow_GetSelectedNodes(pal->brow_ctx, &node_list, &node_count);
brow_GetSelectedNodes(brow_ctx, &node_list, &node_count);
if (!node_count) {
strcpy(name, "");
} else {
......@@ -142,12 +126,5 @@ void PalQtTraceObject::sel_convert_cb()
}
}
QByteArray block;
QDataStream out(&block, QIODevice::WriteOnly);
out.writeRawData(name, strlen(name));
QLocalSocket* clientConnection = pal->server->nextPendingConnection();
clientConnection->write(block);
clientConnection->flush();
clientConnection->disconnectFromServer();
QApplication::clipboard()->setText(name, QClipboard::Selection);
}
......@@ -41,10 +41,6 @@
#include <QWidget>
#include <qlocalserver.h>
class PalQtTraceObject;
class PalQt : public Pal {
public:
PalQt(void* parent_ctx, const char* name, ldh_tSesContext ldhses,
......@@ -54,27 +50,9 @@ public:
QWidget* brow_widget;
QWidget* form_widget;
QLocalServer* server;
void set_inputfocus(int focus);
void set_selection_owner();
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
......@@ -66,11 +66,7 @@ WAttNavQt::~WAttNavQt()
pwr_tStatus WAttNavQt::get_selection(char* str, int size)
{
pwr_tStatus sts = CoWowQt::GetSelection(str, size, "PWR_OBJID");
if (EVEN(sts)) {
sts = CoWowQt::GetSelection(str, size, "STRING");
}
return sts;
return CoWowQt::GetSelection(str, size);
}
void WAttNavQt::set_inputfocus()
......
......@@ -60,14 +60,13 @@
#include "wb_xcrr_qt.h"
#include <QApplication>
#include <QClipboard>
#include <QColor>
#include <QInputDialog>
#include <QLayout>
#include <QMessageBox>
#include <QScrollArea>
#include <qlocalsocket.h>
void WNavQt::pop()
{
::pop(form_widget);
......@@ -94,19 +93,6 @@ WNavQt::WNavQt(void* xn_parent_ctx, QWidget* xn_parent_wid, const char* xn_name,
// Create the root item
*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);
if (root_menu && !ldhses) {
......@@ -181,36 +167,79 @@ void WNavQt::print(const char* title)
int WNavQt::get_selection(char* str, int len)
{
int sts;
sts = CoWowQt::GetSelection(str, len, "PWR_OBJID");
if (EVEN(sts)) {
sts = CoWowQt::GetSelection(str, len, "STRING");
}
return sts;
return CoWowQt::GetSelection(str, len);
}
void WNavQt::set_selection_owner()
{
if (!serverString->isListening()) {
QLocalServer::removeServer("STRING");
serverString->listen("STRING");
}
if (!serverGraph->isListening()) {
QLocalServer::removeServer("PWR_GRAPH");
serverGraph->listen("PWR_GRAPH");
selection_owner = 1;
if (!selection_owner) {
return;
}
if (!serverObjId->isListening()) {
QLocalServer::removeServer("PWR_OBJID");
serverObjId->listen("PWR_OBJID");
pwr_sAttrRef attrref;
char* buffp;
int node_count;
brow_tNode* node_list;
brow_GetSelectedNodes(brow->ctx, &node_list, &node_count);
if (!node_count) {
return;
}
if (!serverAttrRef->isListening()) {
QLocalServer::removeServer("PWR_ATTRREF");
serverAttrRef->listen("PWR_ATTRREF");
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;
}
selection_owner = 1;
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;
}
case wnav_eItemType_Object: {
attrref = cdh_ObjidToAref(item->objid);
int sts = (format_selection_cb)(
parent_ctx, attrref, &buffp, 0, 0, wnav_eSelectionFormat_User);
if (sts) {
QApplication::clipboard()->setText(buffp, QClipboard::Selection);
}
break;
}
default: {
char name[200];
brow_GetAnnotation(node_list[0], 0, name, sizeof(name));
QApplication::clipboard()->setText(name, QClipboard::Selection);
break;
}
}
free(node_list);
}
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)
}
}
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 map_window, ldh_eAccess access, pwr_tOid oid)
{
......
......@@ -41,8 +41,6 @@
#include <QTimer>
#include <qlocalserver.h>
/* wtt_wnav_qt.h -- Simple navigator */
class CoLogin;
......@@ -62,11 +60,6 @@ public:
QWidget* brow_widget;
QWidget* form_widget;
QLocalServer* serverString;
QLocalServer* serverGraph;
QLocalServer* serverObjId;
QLocalServer* serverAttrRef;
void pop();
void set_inputfocus(int focus);
void print(const char* title);
......@@ -115,7 +108,6 @@ public:
public slots:
void trace_scan();
void sel_convert_cb();
private:
WNavQt* wnav;
......
......@@ -78,7 +78,7 @@ class wb_erep {
std::vector<wb_vrep*> m_vrepbuffer;
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_volatile_idx;
int m_buffer_max;
......
......@@ -742,7 +742,7 @@ pwr_tStatus lfu_SaveDirectoryVolume(
path_file_created = 1;
for (i = 0; i < 20; i++) {
for (i = 0; i < 50; i++) {
str_trim(path, path_ptr[i]);
if (!streq(path, ""))
fprintf(fpath, "%s\n", path);
......
......@@ -3250,6 +3250,7 @@ int WItemAttrArrayElem::open_children(double x, double y)
flow_eDest_IntoLast);
}
free((char*)bd);
break;
}
case pwr_eType_Objid:
case pwr_eType_AttrRef: {
......
This diff is collapsed.
This diff is collapsed.
......@@ -52,6 +52,7 @@
#include "flow_browapi.h"
#include <QApplication>
#include <QClipboard>
#include <QDialogButtonBox>
#include <QFileDialog>
#include <QHBoxLayout>
......@@ -70,8 +71,6 @@
#include <QTimer>
#include <QVBoxLayout>
#include <qlocalsocket.h>
typedef struct {
char title[80];
flow_tCtx flow_ctx;
......@@ -413,34 +412,13 @@ void CoWowQtObject::DisplayLicense()
pop(mbox);
}
int CoWowQt::GetSelection(char* str, int size, const char* atom)
int CoWowQt::GetSelection(char* str, int size)
{
QLocalSocket* socket = new QLocalSocket();
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;
QString rcvStr = QApplication::clipboard()->text(QClipboard::Selection);
if (!rcvStr.isEmpty() && rcvStr.length() < size) {
strcpy(str, qPrintable(rcvStr));
return true;
}
return !rcvStr.isEmpty();
}
......
......@@ -223,7 +223,7 @@ public:
static void PopupPosition(
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 update_title(QWidget* w, int editmode);
......
......@@ -320,14 +320,9 @@ int GeQt::get_plant_select(char* select_name, int size)
pwr_tAName buff;
if (!ldhses) {
sts = CoWowQt::GetSelection(str, sizeof(str), "PWR_GRAPH");
sts = CoWowQt::GetSelection(str, sizeof(str));
if (ODD(sts)) {
strcpy(select_name, str);
} else {
sts = CoWowQt::GetSelection(str, sizeof(str), "STRING");
if (ODD(sts)) {
strcpy(select_name, str);
}
}
return sts;
}
......@@ -342,14 +337,9 @@ int GeQt::get_plant_select(char* select_name, int size)
strncpy(select_name, buff, size);
return 1;
} else {
sts = CoWowQt::GetSelection(str, sizeof(str), "PWR_GRAPH");
sts = CoWowQt::GetSelection(str, sizeof(str));
if (ODD(sts)) {
strncpy(select_name, str, size);
} else {
sts = CoWowQt::GetSelection(str, sizeof(str), "STRING");
if (ODD(sts)) {
strncpy(select_name, str, size);
}
}
return sts;
}
......
......@@ -11267,6 +11267,9 @@ int GeXY_Curve::scan(grow_tObject object)
dyn->parse_attr_name(
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);
sts = gdh_GetObjectInfo(parsed_name, x_value, attr_size);
......
......@@ -373,7 +373,7 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot,
for (int i = 0; i < barsegments + 1; i++) {
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;
bar_up_ur_y = bar_up_ll_y;
......@@ -467,6 +467,9 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot,
drawtype = fillcolor;
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);
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 {
glow_eDrawType f1, f2;
if (gradient_contrast >= 0) {
......@@ -498,9 +501,9 @@ void GrowBarChart::draw(GlowWind* w, GlowTransform* t, int highlight, int hot,
}
if ( min_value >= 0) {
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_height = ur_y - bar_up_ll_y;
brect_height = ur_y - int(f_bar_up_ll_y);
} else {
brect_ll_x = bar_ll_x;
brect_ll_y = bar_up_ll_y;
......
......@@ -331,8 +331,8 @@ XttGeQt::XttGeQt(void* xg_parent_ctx, const char* xg_name,
str_StrncpyCutOff(title, name, sizeof(title), 1);
// Qt
if (!(options & ge_mOptions_Embedded)) {
toplevel = new XttGeQtWidget(this);
if (!(options & ge_mOptions_Embedded)) {
toplevel->setWindowTitle(QString::fromLatin1(title));
toplevel->setAttribute(Qt::WA_DeleteOnClose);
......
......@@ -176,6 +176,11 @@ XttMultiViewQt::XttMultiViewQt(void* mv_parent_ctx, const char* mv_name,
comp_widget = std::vector<QWidget*>(rows * cols);
exchange_widget = std::vector<QWidget*>(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();
QSplitter* col_widget_pane = new QSplitter();
......@@ -680,8 +685,6 @@ XttMultiViewQt::XttMultiViewQt(void* mv_parent_ctx, const char* mv_name,
if (mv.Action[idx].Options
& pwr_mMultiViewElemOptionsMask_Exchangeable) {
exchange_widget[idx]
= layout_to_widget(exchange_widget_layout[idx]);
if (comp_widget[idx]) {
add_expanding(exchange_widget_layout[idx],
comp_widget[idx]);
......
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