Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
P
proview
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Esteban Blanc
proview
Commits
e8a986ab
Commit
e8a986ab
authored
Oct 08, 2019
by
Claes Sjofors
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master'
parents
60fe3c9d
9d5f65b3
Changes
6
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
6 changed files
with
804 additions
and
643 deletions
+804
-643
src/exp/inc/src/pwrp_rules.mk
src/exp/inc/src/pwrp_rules.mk
+3
-3
src/wbl/pwrb/src/pwrb_c_opplace.wb_load
src/wbl/pwrb/src/pwrb_c_opplace.wb_load
+47
-35
xtt/lib/xtt/gtk/xtt_op_gtk.cpp
xtt/lib/xtt/gtk/xtt_op_gtk.cpp
+697
-576
xtt/lib/xtt/gtk/xtt_op_gtk.h
xtt/lib/xtt/gtk/xtt_op_gtk.h
+1
-0
xtt/lib/xtt/qt/xtt_op_qt.cqt
xtt/lib/xtt/qt/xtt_op_qt.cqt
+55
-29
xtt/lib/xtt/qt/xtt_op_qt.h
xtt/lib/xtt/qt/xtt_op_qt.h
+1
-0
No files found.
src/exp/inc/src/pwrp_rules.mk
View file @
e8a986ab
...
...
@@ -36,7 +36,7 @@ $(pwrp_obj)/%.o : %.c
($(pwrp_obj)/%.o)
:
%.c
@
echo
"cc ar
$(
notdir
$(source)
)
"
@
$(cc)
$(cflags)
$(csetos)
$(cinc)
-c
-o
$%
$(source)
@
ar
-Ur
$(target)
$%
@
ar
rU
$(target)
$%
$(pwrp_obj)/%.o
:
%.cpp
@
echo
"cc
$(
notdir
$(source)
)
"
...
...
@@ -45,7 +45,7 @@ $(pwrp_obj)/%.o : %.cpp
($(pwrp_obj)/%.o)
:
%.cpp
@
echo
"cc ar
$(
notdir
$(source)
)
"
@
$(cxx)
$(cxxflags)
$(csetos)
$(cinc)
-c
-o
$%
$(source)
@
ar
-Ur
$(target)
$%
@
ar
rU
$(target)
$%
$(pwrp_obj)/%.o
:
%.for
@
echo
"fortran77
$(
notdir
$(source)
)
"
...
...
@@ -54,7 +54,7 @@ $(pwrp_obj)/%.o : %.for
($(pwrp_obj)/%.o)
:
%.for
@
echo
"fortran77 ar
$(
notdir
$(source)
)
"
@
$(f77)
$(f77flags)
$(f77inc)
-c
-o
$%
$(source)
@
ar
-Ur
$(target)
$%
@
ar
rU
$(target)
$%
$(pwrp_inc)/%.h
:
%.msg
@
echo
"Msg to h
$(source)
"
...
...
src/wbl/pwrb/src/pwrb_c_opplace.wb_load
View file @
e8a986ab
!
!
! ProviewR Open Source Process Control.
! Copyright (C) 2005-2019 SSAB EMEA AB.
!
!
! This file is part of ProviewR.
!
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! This program is free software; you can redistribute it and/or
! modify it under the terms of the GNU General Public License as
! published by the Free Software Foundation, either version 2 of
! the License, or (at your option) any later version.
!
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! This program is distributed in the hope that it will be useful
! but WITHOUT ANY WARRANTY; without even the implied warranty of
! MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
! GNU General Public License for more details.
!
! You should have received a copy of the GNU General Public License
! You should have received a copy of the GNU General Public License
! along with ProviewR. If not, see <http://www.gnu.org/licenses/>
!
!
! Linking ProviewR statically or dynamically with other modules is
! making a combined work based on ProviewR. Thus, the terms and
! conditions of the GNU General Public License cover the whole
! conditions of the GNU General Public License cover the whole
! combination.
!
!
! In addition, as a special exception, the copyright holders of
! ProviewR give you permission to, from the build function in the
! ProviewR Configurator, combine ProviewR with modules generated by the
! ProviewR PLC Editor to a PLC program, regardless of the license
! terms of these modules. You may copy and distribute the resulting
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! combined work under the terms of your choice, provided that every
! copy of the combined work is accompanied by a complete copy of
! the source code of ProviewR (the version used to produce the
! combined work), being distributed under the terms of the GNU
! combined work), being distributed under the terms of the GNU
! General Public License plus this exception.
!
! pwrb_c_opplace.wb_load -- Defines the class OpPlace.
...
...
@@ -43,28 +43,28 @@ SObject pwrb:Class
! Configures a logical operator station for operator
! dialogue. A logical operator station represents a work
! station, X-terminal etc.
!
!
! The object specifies where files are to be fetched and
! on which screen they are to be displayed.
! Put the object below the actual $Node object in the
! Node Configuration.
!
!
! There may be one or more OpPlace objects below a $Node
! object.
! object.
!*/
Object OpPlace $ClassDef 164
Object OpPlace $ClassDef 164
Body SysBody
Attr Editor = pwr_eEditor_AttrEd
Attr Method = pwr_eMethod_Standard
EndBody
Object RtBody $ObjBodyDef 1
Object RtBody $ObjBodyDef 1
Body SysBody
Attr StructName = "OpPlace"
EndBody
!/**
! Optional text to describe the user category etc.
!*/
Object Description $Attribute 1
Object Description $Attribute 1
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
...
...
@@ -79,9 +79,9 @@ SObject pwrb:Class
! Note! If XttUseOpsysUser is set in the Security object, this value is
! overrided, and the username is fetched from the current operator system user.
!
! The UserName is a constant value and can not be changed in runtime.
! The UserName is a constant value and can not be changed in runtime.
!*/
Object UserName $Attribute 28
Object UserName $Attribute 28
Body SysBody
Attr TypeRef = "pwrs:Type-$String32"
Attr Flags |= PWR_MASK_CONST
...
...
@@ -92,17 +92,17 @@ SObject pwrb:Class
! Only if the user has logged in to the operator system as
! one of these user he has authority to start this operator place.
!*/
Object DedicatedOpsysUser $Attribute 29
Object DedicatedOpsysUser $Attribute 29
Body SysBody
Attr TypeRef = "pwrs:Type-$String256"
Attr Flags |= PWR_MASK_CONST
EndBody
EndObject
!/**
! Specifies on which
monitor
the operator dialogue will
! Specifies on which
display
the operator dialogue will
! take place.
! If the operator communication is run on the local node
! and the display is to be displayed on the own
monitor
! and the display is to be displayed on the own
display
! ('default display') the Display attribute ought to be
! left blank.
!*/
...
...
@@ -144,7 +144,7 @@ SObject pwrb:Class
! XttGraph object which is to be activated by a function
! button in the operator window. The buttons are are ordered
! in five rows with five buttons in each row.
! The first row contains buttons for FastAvail[0] - FastAvail[4],
! The first row contains buttons for FastAvail[0] - FastAvail[4],
! the second for FastAvail[5] - FastAVail[9] etc.
!*/
Object FastAvail $Attribute 32
...
...
@@ -209,7 +209,7 @@ SObject pwrb:Class
! Operatorplace options.
! - OperatorLog will turn on the operator logging when rt_xtt is started.
! The logging is stored in $pwrp_log/xtt_'opplace'.log
! - OperatorExendedLog will also store all mouse and motion events in the
! - OperatorExendedLog will also store all mouse and motion events in the
! logfile.
!*/
Object Options $Attribute 47
...
...
@@ -228,7 +228,7 @@ SObject pwrb:Class
!/**
! Specifies the maximum number of contemporary alarms in
! the user's alarm list.
! The number should exceed the maximum number of
! The number should exceed the maximum number of
! concurrent alarms in the system.
! If the limit is exceeded, alarms might be lost.
!*/
...
...
@@ -246,7 +246,7 @@ SObject pwrb:Class
! in respective node. In each node the message handler
! has its own skyline of events (also named MaxNoOfEvents)
! defined by a MessageHandler object. In principle, the
! User object's skyline of events should be selected as
å
! User object's skyline of events should be selected as
�
! MaxNoOfEvents, added up over MaxNoOfEvents in the
! MessageHandler objects in all nodes throughout the
! ProviewR system, or make it simple and assign the
...
...
@@ -275,13 +275,13 @@ SObject pwrb:Class
! produced in an application by means of mh_ApplMessage
! (see ProviewR Programmer's Reference Manual) get an
! identity according to the calling parameter EventName.
!
!
! SelectList specifies the hierarchies from which
! messages are to be sent to the user. Up to 40 different
! hierarchies can be specified. If messages from e.g. a
! Watchdog object in a node will be received, then the
! name of the node will be specified.
!
!
! Note! If the SelectList is left blank no message at all is
! sent to the user.
!*/
...
...
@@ -296,7 +296,7 @@ SObject pwrb:Class
! Specifies the type of events that are sent to the user.
! If no type is specified, all types av events are sent.
!*/
Object EventSelectType $Attribute 49
Object EventSelectType $Attribute 49
Body SysBody
Attr TypeRef = "pwrb:Type-EventTypeMask"
EndBody
...
...
@@ -304,7 +304,7 @@ SObject pwrb:Class
!/**
! Specifies the type of events viewed in the eventlist.
!*/
Object EventListEvents $Attribute 43
Object EventListEvents $Attribute 43
Body SysBody
Attr TypeRef = "pwrb:Type-EventListMask"
EndBody
...
...
@@ -356,16 +356,28 @@ SObject pwrb:Class
Body SysBody
Attr TypeRef = "pwrs:Type-$String80"
EndBody
EndObject
!/**
! Override on what monitor the operator panel will show up. Default 0
! will use the primary monitor of the system. A value of 1 selects the first
! monitor and so on and so forth.
!*/
Object Monitor $Attribute 53
Body SysBody
Attr TypeRef = "pwrs:Type-$UInt32"
Attr Flags = 0
EndBody
EndObject
EndObject
Object Template OpPlace
Body RtBody
Attr AlarmBell = 1
Attr BellDelay = 2
Attr OpWindPop = 3
Attr OpWindPop = 3
Attr OpWindEventNameSegments = 2
Attr MaxNoOfAlarms = 200
Attr MaxNoOfEvents = 500
Attr Monitor = 0
EndBody
EndObject
Object FastAvail $ReferenceList
...
...
xtt/lib/xtt/gtk/xtt_op_gtk.cpp
View file @
e8a986ab
This diff is collapsed.
Click to expand it.
xtt/lib/xtt/gtk/xtt_op_gtk.h
View file @
e8a986ab
...
...
@@ -93,6 +93,7 @@ public:
GdkColor
green_color
;
GdkColor
gray_color
;
GdkColor
white_color
;
GdkRectangle
monitor_geometry
;
int
a_height
;
int
a_exist
[
5
];
int
a_active
[
5
];
...
...
xtt/lib/xtt/qt/xtt_op_qt.cqt
View file @
e8a986ab
...
...
@@ -145,7 +145,7 @@ void ClickableFrame::mousePressEvent(QMouseEvent* event) {
}
OpQt::OpQt(void* op_parent_ctx, char* opplace, pwr_tStatus* status)
: Op(op_parent_ctx, opplace, status), title_label(0), a_height(
2
),
: Op(op_parent_ctx, opplace, status), title_label(0), a_height(
5
),
text_size(12)
{
pwr_tStatus sts;
...
...
@@ -159,7 +159,6 @@ OpQt::OpQt(void* op_parent_ctx, char* opplace, pwr_tStatus* status)
toplevel->setWindowFlags(Qt::CustomizeWindowHint);
CoWowQt::SetWindowIcon(toplevel);
QRect xtt_monitor_geometry = QApplication::desktop()->screenGeometry();
pwr_tFileName fname;
dcli_translate_filename(fname, "$pwr_exe/xtt_alarm_active.png");
...
...
@@ -383,11 +382,11 @@ OpQt::OpQt(void* op_parent_ctx, char* opplace, pwr_tStatus* status)
if (sup_vect.size() > 10) {
padding1 = 0;
padding2 = 0;
buttonwidth = (
xtt_
monitor_geometry.width() - 350) / sup_vect.size();
buttonwidth = (monitor_geometry.width() - 350) / sup_vect.size();
} else if (sup_vect.size() > 6) {
padding1 = 8;
padding2 = 5;
buttonwidth = (
xtt_
monitor_geometry.width() - 350) / sup_vect.size()
buttonwidth = (monitor_geometry.width() - 350) / sup_vect.size()
- 2 * padding2;
} else {
padding1 = 8;
...
...
@@ -465,22 +464,14 @@ OpQt::OpQt(void* op_parent_ctx, char* opplace, pwr_tStatus* status)
aalarm_box[3]->setVisible(false);
aalarm_box[4]->setVisible(false);
balarm_box->setVisible(false);
decr_button->setVisible(false);
//
decr_button->setVisible(false);
if (layout_mask & pwr_mOpWindLayoutMask_HideCloseButton) {
tools_close->setVisible(false);
functions_close->setVisible(false);
}
if (a_height == 5) {
toplevel->activate_aalarm_decr();
}
if (a_height == 4) {
toplevel->activate_aalarm_decr();
toplevel->activate_aalarm_decr();
}
toplevel->resize(xtt_monitor_geometry.width(), OP_HEIGHT_MIN + OP_HEIGHT_STATUSBAR);
toplevel->move(0, 0);
toplevel->resize(monitor_geometry.width(), OP_HEIGHT_MIN + OP_HEIGHT_STATUSBAR + (a_height - 3) * OP_HEIGHT_INC);
toplevel->move(monitor_geometry.x(), 0);
wow = new CoWowQt(toplevel);
sup_timerid = wow->timer_new();
...
...
@@ -810,6 +801,16 @@ int OpQt::configure(char* opplace_str)
start_jop = 1;
}
int numberOfMonitors = QApplication::desktop()->screenCount();
int monitor = opplace_p->Monitor;
if (monitor > numberOfMonitors || monitor < 0) monitor = 0;
if (monitor == 0) monitor = QApplication::desktop()->primaryScreen();
else monitor = opplace_p->Monitor - 1;
monitor_geometry = QApplication::desktop()->screenGeometry(monitor);
// Examine Graph objects
for (i = 0;
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]);
...
...
@@ -885,6 +886,7 @@ int OpQt::configure(char* opplace_str)
}
// Create the application buttons
int showRow[5] = {1, 1, 1, 0, 0};
for (i = 0;
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]);
i++) {
...
...
@@ -902,21 +904,29 @@ int OpQt::configure(char* opplace_str)
for (i = 0;
i < sizeof(opplace_p->FastAvail) / sizeof(opplace_p->FastAvail[0]);
i++) {
if (
(i == 0) || ((i + 1) % 5 == 0)
) {
funcbox[
(i + 1)
/ 5] = layout_to_widget(new QHBoxLayout());
appl_form->addWidget(funcbox[
(i + 1)
/ 5]);
if (
i % 5 == 0
) {
funcbox[
i
/ 5] = layout_to_widget(new QHBoxLayout());
appl_form->addWidget(funcbox[
i
/ 5]);
}
if (cdh_ObjidIsNotNull(button_aref[i].Objid)) {
int i2 = (int)(i / 5);
add_expanding(funcbox[i2]->layout(), appl_buttons[i]);
if (i >= 15) {
a_height = i2 + 1;
}
showRow[i / 5] = 1;
add_expanding(funcbox[i / 5]->layout(), appl_buttons[i]);
}
}
appl_form->addStretch(1);
// Start checking at the last row
for (int row = (sizeof(showRow) / sizeof(showRow[0])) - 1; row >= 0; row--)
{
if (showRow[row])
{
for (int height = a_height - 1; height > row; height--)
toplevel->activate_aalarm_decr();
break;
}
}
return XNAV__SUCCESS;
}
...
...
@@ -973,13 +983,18 @@ void OpQtWidget::activate_aalarm_incr()
+ ((op->layout_mask & pwr_mOpWindLayoutMask_HideStatusBar) ? 0 : 1)
* OP_HEIGHT_STATUSBAR;
if (op->a_height
=
= 3) {
if (op->a_height
>
= 3) {
op->decr_button->setVisible(true);
} else if (op->a_height == 4) {
}
if (op->a_height >= 4) {
op->funcbox[3]->setVisible(true);
} else if (op->a_height == 5) {
}
if (op->a_height >= 5) {
op->funcbox[4]->setVisible(true);
}
for (int i = 2; i < 5; i++) {
if (i < op->a_height) {
if (op->a_exist[i]) {
...
...
@@ -988,6 +1003,8 @@ void OpQtWidget::activate_aalarm_incr()
}
}
}
resize(width, height);
}
...
...
@@ -1005,13 +1022,22 @@ void OpQtWidget::activate_aalarm_decr()
+ ((op->layout_mask & pwr_mOpWindLayoutMask_HideStatusBar) ? 0 : 1)
* OP_HEIGHT_STATUSBAR;
if (op->a_height
=
= 2) {
if (op->a_height
<
= 2) {
op->decr_button->setVisible(false);
} else if (op->a_height == 3) {
}
else
{
op->decr_button->setVisible(true);
}
if (op->a_height <= 3) {
op->funcbox[3]->setVisible(false);
} else if (op->a_height == 4) {
}
if (op->a_height <= 4) {
op->funcbox[4]->setVisible(false);
}
for (int i = 2; i < 5; i++) {
if (i >= op->a_height) {
if (op->a_exist[i]) {
...
...
xtt/lib/xtt/qt/xtt_op_qt.h
View file @
e8a986ab
...
...
@@ -97,6 +97,7 @@ public:
char
a_alarm_moretext
[
5
][
256
];
char
b_alarm_moretext
[
256
];
int
text_size
;
QRect
monitor_geometry
;
CoWowFocusTimerQt
poptimer
;
std
::
vector
<
OpCmd
>
cmd_vect
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment