From 76ddbb9b35e11e8966a9a6b194f33f806f5539df Mon Sep 17 00:00:00 2001 From: Fred Gleason Date: Fri, 29 Apr 2022 10:07:36 -0400 Subject: [PATCH] 2022-04-29 Fred Gleason * Added a 'StayOnTop=' directive to the '[SoftKeys]' section of rd.conf(5). Signed-off-by: Fred Gleason --- ChangeLog | 3 +++ conf/rd.conf-sample | 2 ++ utils/rdsoftkeys/rdsoftkeys.cpp | 28 ++++++++++++++++++++++++---- utils/rdsoftkeys/rdsoftkeys.h | 4 +++- 4 files changed, 32 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 058592bb..28cb5b87 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20872,3 +20872,6 @@ a service name option. 2022-03-22 Fred Gleason * Incremented the package version to 3.6.5int0. +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 78a42da0..72848c0e 100644 --- a/conf/rd.conf-sample +++ b/conf/rd.conf-sample @@ -131,6 +131,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 128115f1..894bb4ad 100644 --- a/utils/rdsoftkeys/rdsoftkeys.cpp +++ b/utils/rdsoftkeys/rdsoftkeys.cpp @@ -37,15 +37,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(qApp->argc(),qApp->argv(),"rdsoftkeys",RDSOFTKEYS_USAGE); @@ -233,10 +232,31 @@ int main(int argc,char *argv[]) tests.load(tr_path+QString("rdsoftkeys_")+QTextCodec::locale(),"."); a.installTranslator(&tests); + // + // Read Command Options + // + RDConfig *config=new RDConfig(); + QString map_filename=config->filename(); + RDCmdSwitch *cmd= + new RDCmdSwitch(qApp->argc(),qApp->argv(),"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); a.setMainWidget(w); w->setGeometry(w->geometry().x(),w->geometry().y(),w->sizeHint().width(),w->sizeHint().height()); w->show(); diff --git a/utils/rdsoftkeys/rdsoftkeys.h b/utils/rdsoftkeys/rdsoftkeys.h index 5b24dcdb..494ece22 100644 --- a/utils/rdsoftkeys/rdsoftkeys.h +++ b/utils/rdsoftkeys/rdsoftkeys.h @@ -24,6 +24,8 @@ #include #include +#include + // // Settings // @@ -34,7 +36,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;