diff --git a/ChangeLog b/ChangeLog index 3492cc15..d47a5a76 100644 --- a/ChangeLog +++ b/ChangeLog @@ -22993,3 +22993,6 @@ files. 2022-04-21 Fred Gleason * Removed dead code from rdadmin(1). +2022-04-29 Fred Gleason + * Added a 'StayOnTop=' directive to the '[SoftKeys]' section of + rd.conf(5). diff --git a/conf/rd.conf-sample b/conf/rd.conf-sample index 52d6aea5..ce96245e 100644 --- a/conf/rd.conf-sample +++ b/conf/rd.conf-sample @@ -143,6 +143,8 @@ ChannelsPerPcm=-1 ; can use the --map-file= switch to configure multiple soft ; key setups on the same host. ; +; StayOnTop=No +; ; Columns=10 ; ; Command1=hithlum.srlabs.loc:GO 3 1 1 0! diff --git a/utils/rdsoftkeys/rdsoftkeys.cpp b/utils/rdsoftkeys/rdsoftkeys.cpp index ffbce1a8..6937efb8 100644 --- a/utils/rdsoftkeys/rdsoftkeys.cpp +++ b/utils/rdsoftkeys/rdsoftkeys.cpp @@ -2,7 +2,7 @@ // // A utility for sending RML Commands // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -36,15 +36,14 @@ // #include "../icons/rivendell-22x22.xpm" -MainWidget::MainWidget(QWidget *parent) - : QWidget(parent) -{ +MainWidget::MainWidget(RDConfig *config,Qt::WindowFlags f) + : QWidget(NULL,f) + { key_ysize=70; // // Read Command Options // - RDConfig *config=new RDConfig(); QString map_filename=config->filename(); RDCmdSwitch *cmd=new RDCmdSwitch("rdsoftkeys",RDSOFTKEYS_USAGE); for(unsigned i=0;ikeys();i++) { @@ -233,10 +232,30 @@ int main(int argc,char *argv[]) a.installTranslator(&tests); } + // + // Read Command Options + // + RDConfig *config=new RDConfig(); + QString map_filename=config->filename(); + RDCmdSwitch *cmd=new RDCmdSwitch("rdsoftkeys",RDSOFTKEYS_USAGE); + for(unsigned i=0;ikeys();i++) { + if(cmd->key(i)=="--map-file") { + map_filename=cmd->value(i); + } + } + delete cmd; + RDProfile *profile=new RDProfile(); + Qt::WindowFlags f=Qt::WindowFlags(); + profile->setSource(map_filename); + if(profile->boolValue("SoftKeys","StayOnTop",false)) { + f=f|Qt::WindowStaysOnTopHint; + } + delete profile; + // // Start Event Loop // - MainWidget *w=new MainWidget(); + MainWidget *w=new MainWidget(config,f); w->setGeometry(w->geometry().x(),w->geometry().y(),w->sizeHint().width(),w->sizeHint().height()); w->show(); return a.exec(); diff --git a/utils/rdsoftkeys/rdsoftkeys.h b/utils/rdsoftkeys/rdsoftkeys.h index dc415cc9..1feeacc5 100644 --- a/utils/rdsoftkeys/rdsoftkeys.h +++ b/utils/rdsoftkeys/rdsoftkeys.h @@ -2,7 +2,7 @@ // // A utility for sending RML Commands // -// (C) Copyright 2002-2021 Fred Gleason +// (C) Copyright 2002-2022 Fred Gleason // // This program is free software; you can redistribute it and/or modify // it under the terms of the GNU General Public License version 2 as @@ -25,6 +25,8 @@ #include #include +#include + // // Settings // @@ -35,7 +37,7 @@ class MainWidget : public QWidget { Q_OBJECT public: - MainWidget(QWidget *parent=0); + MainWidget(RDConfig *config,Qt::WindowFlags f=Qt::WindowFlags()); QSize sizeHint() const; QSizePolicy sizePolicy() const;