diff --git a/ChangeLog b/ChangeLog index 0d8e4ee4e..bccecc10d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -24041,3 +24041,7 @@ * Updated the package version to 4.0.0rc3. * Updated the version of the 'rivwebpyapi' PyPI package to 4.0.0rc3. +2023-04-29 Fred Gleason + * Added a 'RDWidget::setBackgroundPixmap()' method. + * Fixed a bug in the voice tracker in rdairplay(1) that caused the + the track waveform areas to be painted solid black. diff --git a/icons/Makefile.am b/icons/Makefile.am index 27636a0e0..4ef19ce8f 100644 --- a/icons/Makefile.am +++ b/icons/Makefile.am @@ -21,6 +21,9 @@ ## Use automake to process this into a Makefile.in install-exec-am: + mkdir -p $(DESTDIR)@prefix@/share/pixmaps/rivendell + cp rdairplay_skin.png $(DESTDIR)@prefix@/share/pixmaps/rivendell + cp rdpanel_skin.png $(DESTDIR)@prefix@/share/pixmaps/rivendell mkdir -p $(DESTDIR)@libexecdir@ cp donut-spinner.gif $(DESTDIR)@libexecdir@ cp greencheckmark.png $(DESTDIR)@libexecdir@ @@ -192,6 +195,8 @@ install-exec-am: ./update_icons.sh uninstall-local: + rm -f $(DESTDIR)@prefix@/share/pixmaps/rivendell/rdairplay_skin.png + rm -f $(DESTDIR)@prefix@/share/pixmaps/rivendell/rdpanel_skin.png rm -f $(DESTDIR)@libexecdir@/donut-spinner.gif rm -f $(DESTDIR)@libexecdir@/greencheckmark.png rm -f $(DESTDIR)@libexecdir@/redx.png @@ -324,6 +329,8 @@ EXTRA_DIST = admin.xpm\ progressbar.gif\ progressbar.xcf\ rdairplay_logo.png\ + rdairplay_skin.png\ + rdairplay_skin.xcf\ rdairplay_white_logo.png\ record.xpm\ record2.xpm\ @@ -455,6 +462,8 @@ EXTRA_DIST = admin.xpm\ rdlogmanager-512x512.xpm\ rdlogmanager-64x64.xpm\ rdlogmanager.ico\ + rdpanel_skin.png\ + rdpanel_skin.xcf\ rdpanel-128x128.png\ rdpanel-16x16.png\ rdpanel-22x22.png\ diff --git a/icons/rdairplay_skin.png b/icons/rdairplay_skin.png new file mode 100644 index 000000000..cdd331d73 Binary files /dev/null and b/icons/rdairplay_skin.png differ diff --git a/icons/rdairplay_skin.xcf b/icons/rdairplay_skin.xcf new file mode 100644 index 000000000..3a9fe69bf Binary files /dev/null and b/icons/rdairplay_skin.xcf differ diff --git a/icons/rdpanel_skin.png b/icons/rdpanel_skin.png new file mode 100644 index 000000000..217dc5c87 Binary files /dev/null and b/icons/rdpanel_skin.png differ diff --git a/icons/rdpanel_skin.xcf b/icons/rdpanel_skin.xcf new file mode 100644 index 000000000..49d4c930b Binary files /dev/null and b/icons/rdpanel_skin.xcf differ diff --git a/lib/rdwidget.cpp b/lib/rdwidget.cpp index 8c4ab4809..119f63808 100644 --- a/lib/rdwidget.cpp +++ b/lib/rdwidget.cpp @@ -2,7 +2,7 @@ // // Base class for Rivendell modal widgets. // -// (C) Copyright 2019 Fred Gleason +// (C) Copyright 2019-2023 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 @@ -18,6 +18,8 @@ // Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. // +#include + #include "rdwidget.h" RDWidget::RDWidget(QWidget *parent,Qt::WindowFlags f) @@ -32,3 +34,33 @@ RDWidget::RDWidget(RDConfig *config,QWidget *parent,Qt::WindowFlags f) { setFont(defaultFont()); } + + +QPixmap RDWidget::backgroundPixmap() const +{ + return d_background_pixmap; +} + + +void RDWidget::setBackgroundPixmap(const QPixmap &pix) +{ + d_background_pixmap=pix; + update(); +} + + +void RDWidget::paintEvent(QPaintEvent *e) +{ + int w=size().width(); + int h=size().height(); + + if(!d_background_pixmap.isNull()) { + QPainter *p=new QPainter(this); + for(int i=0;idrawPixmap(j,i,d_background_pixmap); + } + } + delete p; + } +} diff --git a/lib/rdwidget.h b/lib/rdwidget.h index fe64b9636..a054fab9e 100644 --- a/lib/rdwidget.h +++ b/lib/rdwidget.h @@ -2,7 +2,7 @@ // // Base class for Rivendell widgets. // -// (C) Copyright 2019 Fred Gleason +// (C) Copyright 2019-2023 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 @@ -21,7 +21,7 @@ #ifndef RDWIDGET_H #define RDWIDGET_H -#include +#include #include @@ -31,6 +31,14 @@ class RDWidget : public QWidget, public RDFontEngine public: RDWidget(QWidget *parent=0,Qt::WindowFlags f=0); RDWidget(RDConfig *config,QWidget *parent=0,Qt::WindowFlags f=0); + QPixmap backgroundPixmap() const; + void setBackgroundPixmap(const QPixmap &pix); + + protected: + void paintEvent(QPaintEvent *e); + + private: + QPixmap d_background_pixmap; }; diff --git a/rdairplay/rdairplay.cpp b/rdairplay/rdairplay.cpp index 97f145122..0de86182a 100644 --- a/rdairplay/rdairplay.cpp +++ b/rdairplay/rdairplay.cpp @@ -171,12 +171,7 @@ MainWidget::MainWidget(RDConfig *config,QWidget *parent) for(int i=0;iairplayConf()->skinPath()); - if(!bgmap.isNull()&&(bgmap.width()>=1024)&&(bgmap.height()>=738)) { - QPalette palette; - palette.setBrush(backgroundRole(),bgmap); - setPalette(palette); - } + setBackgroundPixmap(QPixmap(rda->airplayConf()->skinPath())); // // Top Strip @@ -1800,7 +1795,7 @@ void MainWidget::resizeEvent(QResizeEvent *e) { int w=width(); int h=height(); - + // // Top Row // @@ -1832,7 +1827,6 @@ void MainWidget::resizeEvent(QResizeEvent *e) air_log_list[i]->setGeometry(550,140,w-560,h-215); } - // // Bottom Button Row // diff --git a/rdpanel/rdpanel.cpp b/rdpanel/rdpanel.cpp index 82c3cf63c..c4eefff14 100644 --- a/rdpanel/rdpanel.cpp +++ b/rdpanel/rdpanel.cpp @@ -42,7 +42,7 @@ RDCartDialog *panel_cart_dialog; MainWidget::MainWidget(RDConfig *c,QWidget *parent) : RDMainWindow("rdpanel",c) { - QPixmap panel_skin_pixmap; + // QPixmap panel_skin_pixmap; QString err_msg; // @@ -82,13 +82,7 @@ MainWidget::MainWidget(RDConfig *c,QWidget *parent) // // Allocate Global Resources // - panel_skin_pixmap=QPixmap(rda->panelConf()->skinPath()); - if(!panel_skin_pixmap.isNull()&&(panel_skin_pixmap.width()>=1024)&& - (panel_skin_pixmap.height()>=738)) { - QPalette p=palette(); - p.setBrush(backgroundRole(),panel_skin_pixmap); - setPalette(p); - } + setBackgroundPixmap(rda->panelConf()->skinPath()); // // CAE Connection diff --git a/rivendell.spec.in b/rivendell.spec.in index f913b60f1..e09b1da22 100644 --- a/rivendell.spec.in +++ b/rivendell.spec.in @@ -414,6 +414,8 @@ rm -rf $RPM_BUILD_ROOT %{_datadir}/icons/hicolor/512x512/apps/rdpanel.png %{_datadir}/pixmaps/rivendell/rdairplay_logo.png %{_datadir}/pixmaps/rivendell/rdairplay_white_logo.png +%{_datadir}/pixmaps/rivendell/rdairplay_skin.png +%{_datadir}/pixmaps/rivendell/rdpanel_skin.png %{_datadir}/X11/fvwm2/pixmaps/mini.rivendell.xpm %{_datadir}/X11/fvwm2/pixmaps/rivendell.xpm %{_datadir}/applications/rivendell-rdadmin.desktop