diff --git a/ChangeLog b/ChangeLog index 218c7c4d..25f1433a 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17993,3 +17993,5 @@ 2018-11-08 Fred Gleason * Fixed a regression in rddbmgr(8) that attempted to drop the 'RDAIRPLAY.INSTANCE' field when processing schema update 284. +2018-11-08 Fred Gleason + * Restored the status display bubble on rdmonitor(1). diff --git a/rdmonitor/Makefile.am b/rdmonitor/Makefile.am index 6d56d071..5678c61e 100644 --- a/rdmonitor/Makefile.am +++ b/rdmonitor/Makefile.am @@ -1,6 +1,6 @@ ## Makefile.am ## -## (C) Copyright 2012,2016-2018 Fred Gleason +## (C) Copyright 2012-2018 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 diff --git a/rdmonitor/rdmonitor.cpp b/rdmonitor/rdmonitor.cpp index e2e8ebb9..1b7592a7 100644 --- a/rdmonitor/rdmonitor.cpp +++ b/rdmonitor/rdmonitor.cpp @@ -24,6 +24,7 @@ #include #include +#include #include #include #include @@ -60,7 +61,8 @@ void SigHandler(int signo) } MainWidget::MainWidget(QWidget *parent) - :QWidget(parent,"",Qt::WStyle_Customize|Qt::WStyle_NoBorder|Qt::WStyle_StaysOnTop|Qt::WX11BypassWM) + : QWidget(parent,(Qt::WindowFlags)(Qt::WStyle_Customize|Qt::WStyle_NoBorder|Qt::WStyle_StaysOnTop)) + // : QWidget(parent,"",(Qt::WindowFlags)(Qt::WStyle_Customize|Qt::WStyle_NoBorder|Qt::WStyle_StaysOnTop|Qt::WX11BypassWM|Qt::WA_AlwaysShowToolTips)) { QString str; mon_dialog_x=0; @@ -122,6 +124,13 @@ MainWidget::MainWidget(QWidget *parent) mon_red_label->setPixmap(QPixmap(redball_xpm)); mon_red_label->hide(); + // + // Status Label + // + mon_status_label=new QLabel(NULL,(Qt::WindowFlags)(Qt::WStyle_Customize|Qt::WStyle_NoBorder|Qt::WStyle_StaysOnTop)); + mon_status_label->setAlignment(Qt::AlignCenter|Qt::AlignVCenter); + mon_status_label->hide(); + // // Validation Timer // @@ -171,6 +180,7 @@ void MainWidget::validate() // // Record Results // + SetToolTip(db_ok,schema,snd_ok); // mon_tooltip-> // setStatus(QRect(0,0,size().width(),size().height()),db_ok,schema,snd_ok); SetSummaryState(db_ok&&(schema==RD_VERSION_DATABASE)&&snd_ok); @@ -184,6 +194,20 @@ void MainWidget::quitMainWidget() } +void MainWidget::enterEvent(QEvent *e) +{ + mon_status_label->show(); + QWidget::enterEvent(e); +} + + +void MainWidget::leaveEvent(QEvent *e) +{ + mon_status_label->hide(); + QWidget::leaveEvent(e); +} + + void MainWidget::mousePressEvent(QMouseEvent *e) { if(e->button()!=Qt::RightButton) { @@ -383,6 +407,69 @@ void MainWidget::SetPosition() break; } setGeometry(x,y,width,RDMONITOR_HEIGHT); + SetStatusPosition(); +} + + +void MainWidget::SetToolTip(bool db_status,int schema,bool snd_status) +{ + mon_status_label->clear(); + if(db_status&&(schema==RD_VERSION_DATABASE)&&snd_status) { + mon_status_label->setText(tr("Status: OK")); + } + else { + if(!db_status) { + mon_status_label->setText(tr("Database: CONNECTION FAILED")); + } + else { + if(schema!=RD_VERSION_DATABASE) { + mon_status_label->setText(tr("Database: SCHEMA SKEWED")); + } + } + if(!snd_status) { + if(!mon_status_label->text().isEmpty()) { + mon_status_label->setText(mon_status_label->text()+"\n"); + } + mon_status_label-> + setText(mon_status_label->text()+tr("Audio Store: FAILED")); + } + } + SetStatusPosition(); +} + + +void MainWidget::SetStatusPosition() +{ + QFontMetrics *fm=new QFontMetrics(mon_status_label->font()); + int h=10+fm->height(); + int w=10+fm->width(mon_status_label->text()); + + switch(mon_config->position()) { + case RDMonitorConfig::UpperLeft: + case RDMonitorConfig::UpperCenter: + mon_status_label->setGeometry(geometry().x(),geometry().y()+(2+geometry().height()),w,h); + break; + + case RDMonitorConfig::UpperRight: + mon_status_label->setGeometry(geometry().x()-h,geometry().y()+(2+geometry().height()),w,h); + break; + + case RDMonitorConfig::LowerLeft: + case RDMonitorConfig::LowerCenter: + mon_status_label->setGeometry(geometry().x(),geometry().y()-(2+h),w,h); + break; + + break; + + case RDMonitorConfig::LowerRight: + mon_status_label->setGeometry(geometry().x()-h,geometry().y()-(2+h),w,h); + break; + + case RDMonitorConfig::LastPosition: + break; + } + + delete fm; } diff --git a/rdmonitor/rdmonitor.h b/rdmonitor/rdmonitor.h index a871b698..694df1c2 100644 --- a/rdmonitor/rdmonitor.h +++ b/rdmonitor/rdmonitor.h @@ -31,9 +31,6 @@ #include #include #include -//Added by qt3to4: -#include -#include #include #include @@ -57,6 +54,8 @@ class MainWidget : public QWidget void quitMainWidget(); protected: + void enterEvent(QEvent *e); + void leaveEvent(QEvent *e); void mousePressEvent(QMouseEvent *e); void mouseDoubleClickEvent(QMouseEvent *e); void paintEvent(QPaintEvent *e); @@ -65,6 +64,8 @@ class MainWidget : public QWidget private: void SetSummaryState(bool state); void SetPosition(); + void SetToolTip(bool db_status,int schema,bool snd_status); + void SetStatusPosition(); QLabel *mon_name_label; QLabel *mon_green_label; QLabel *mon_red_label; @@ -75,6 +76,7 @@ class MainWidget : public QWidget int mon_dialog_y; int mon_rdselect_x; int mon_rdselect_y; + QLabel *mon_status_label; // StatusTip *mon_tooltip; QDesktopWidget *mon_desktop_widget; RDMonitorConfig *mon_config; diff --git a/rdmonitor/rdmonitor_cs.ts b/rdmonitor/rdmonitor_cs.ts index 19eb875e..b7fc57b6 100644 --- a/rdmonitor/rdmonitor_cs.ts +++ b/rdmonitor/rdmonitor_cs.ts @@ -15,6 +15,22 @@ RDSelect returned non-zero exit code + + Status: OK + Stav: OK + + + Database: CONNECTION FAILED + Databáze: SPOJENÍ SE NEZDAŘILO + + + Database: SCHEMA SKEWED + Databáze: SCHÉMA ZKRESLENO + + + Audio Store: FAILED + Uložení zvuku: NEPODAŘILO SE + QObject diff --git a/rdmonitor/rdmonitor_de.ts b/rdmonitor/rdmonitor_de.ts index 886f9444..dec99de6 100644 --- a/rdmonitor/rdmonitor_de.ts +++ b/rdmonitor/rdmonitor_de.ts @@ -15,6 +15,22 @@ RDSelect returned non-zero exit code + + Status: OK + + + + Database: CONNECTION FAILED + + + + Database: SCHEMA SKEWED + + + + Audio Store: FAILED + + QObject diff --git a/rdmonitor/rdmonitor_es.ts b/rdmonitor/rdmonitor_es.ts index 886f9444..dec99de6 100644 --- a/rdmonitor/rdmonitor_es.ts +++ b/rdmonitor/rdmonitor_es.ts @@ -15,6 +15,22 @@ RDSelect returned non-zero exit code + + Status: OK + + + + Database: CONNECTION FAILED + + + + Database: SCHEMA SKEWED + + + + Audio Store: FAILED + + QObject diff --git a/rdmonitor/rdmonitor_fr.ts b/rdmonitor/rdmonitor_fr.ts index 886f9444..dec99de6 100644 --- a/rdmonitor/rdmonitor_fr.ts +++ b/rdmonitor/rdmonitor_fr.ts @@ -15,6 +15,22 @@ RDSelect returned non-zero exit code + + Status: OK + + + + Database: CONNECTION FAILED + + + + Database: SCHEMA SKEWED + + + + Audio Store: FAILED + + QObject diff --git a/rdmonitor/rdmonitor_nb.ts b/rdmonitor/rdmonitor_nb.ts index 886f9444..dec99de6 100644 --- a/rdmonitor/rdmonitor_nb.ts +++ b/rdmonitor/rdmonitor_nb.ts @@ -15,6 +15,22 @@ RDSelect returned non-zero exit code + + Status: OK + + + + Database: CONNECTION FAILED + + + + Database: SCHEMA SKEWED + + + + Audio Store: FAILED + + QObject diff --git a/rdmonitor/rdmonitor_nn.ts b/rdmonitor/rdmonitor_nn.ts index 886f9444..dec99de6 100644 --- a/rdmonitor/rdmonitor_nn.ts +++ b/rdmonitor/rdmonitor_nn.ts @@ -15,6 +15,22 @@ RDSelect returned non-zero exit code + + Status: OK + + + + Database: CONNECTION FAILED + + + + Database: SCHEMA SKEWED + + + + Audio Store: FAILED + + QObject diff --git a/rdmonitor/rdmonitor_pt_BR.ts b/rdmonitor/rdmonitor_pt_BR.ts index 886f9444..dec99de6 100644 --- a/rdmonitor/rdmonitor_pt_BR.ts +++ b/rdmonitor/rdmonitor_pt_BR.ts @@ -15,6 +15,22 @@ RDSelect returned non-zero exit code + + Status: OK + + + + Database: CONNECTION FAILED + + + + Database: SCHEMA SKEWED + + + + Audio Store: FAILED + + QObject