2023-05-11 Fred Gleason <fredg@paravelsystems.com>

* Modified rdcastmanager(1) so that the 'Title' and 'Description'
	field of the 'Editing Item' dialog default to empty after posting
	a new item when AutoPost is disabled.

Signed-off-by: Fred Gleason <fredg@paravelsystems.com>
This commit is contained in:
Fred Gleason
2023-05-11 12:57:08 -04:00
parent afd6a67cd5
commit 7716315bd9
5 changed files with 40 additions and 10 deletions

View File

@@ -26,7 +26,7 @@
#include "edit_cast.h"
#include "globals.h"
EditCast::EditCast(unsigned cast_id,QWidget *parent)
EditCast::EditCast(unsigned cast_id,bool new_post,QWidget *parent)
: RDDialog(parent)
{
cast_cast=new RDPodcast(rda->config(),cast_id);
@@ -56,15 +56,19 @@ EditCast::EditCast(unsigned cast_id,QWidget *parent)
//
cast_item_title_edit=new QLineEdit(this);
cast_item_title_edit->setMaxLength(255);
cast_item_title_edit->setPlaceholderText(tr("Enter item title"));
cast_item_title_label=new QLabel(tr("Title:"),this);
cast_item_title_label->setFont(labelFont());
cast_item_title_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
connect(cast_item_title_edit,SIGNAL(textChanged(const QString &)),
this,SLOT(titleChangedData(const QString &)));
//
// Item Author
//
cast_item_author_edit=new QLineEdit(this);
cast_item_author_edit->setMaxLength(255);
cast_item_author_edit->setPlaceholderText(tr("Enter author e-mail address"));
cast_item_author_label=new QLabel(tr("Author E-Mail:"),this);
cast_item_author_label->setFont(labelFont());
cast_item_author_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter);
@@ -110,10 +114,13 @@ EditCast::EditCast(unsigned cast_id,QWidget *parent)
// Item Description
//
cast_item_description_edit=new QTextEdit(this);
cast_item_description_edit->setPlaceholderText(tr("Enter item description"));
cast_item_description_label=new QLabel(tr("Description:"),this);
cast_item_description_label->setFont(labelFont());
cast_item_description_label->
setAlignment(Qt::AlignRight|Qt::AlignVCenter);
connect(cast_item_description_edit,SIGNAL(textChanged()),
this,SLOT(descriptionChangedData()));
//
// Item Explicit
@@ -198,7 +205,10 @@ EditCast::EditCast(unsigned cast_id,QWidget *parent)
//
setWindowTitle("RDCastManager - "+tr("Editing Item")+
+" [Cast ID: "+QString::asprintf("%u",cast_cast->id())+"]");
cast_item_title_edit->setText(cast_cast->itemTitle());
if((!new_post)||(cast_status==RDPodcast::StatusActive)) {
cast_item_title_edit->setText(cast_cast->itemTitle());
cast_item_description_edit->setText(cast_cast->itemDescription());
}
cast_item_author_edit->setText(cast_cast->itemAuthor());
if(cast_cast->originLoginName().isEmpty()) {
cast_item_origin_edit->
@@ -220,7 +230,6 @@ EditCast::EditCast(unsigned cast_id,QWidget *parent)
setVisible(rda->rssSchemas()->
supportsItemCategories(cast_feed->rssSchema()));
cast_item_link_edit->setText(cast_cast->itemLink());
cast_item_description_edit->setText(cast_cast->itemDescription());
cast_item_explicit_check->setChecked(cast_cast->itemExplicit());
cast_item_image_box->setCategoryId(cast_feed->id());
cast_item_image_box->setCurrentImageId(cast_cast->itemImageId());
@@ -251,6 +260,7 @@ EditCast::EditCast(unsigned cast_id,QWidget *parent)
cast_active_label->setDisabled(true);
break;
}
descriptionChangedData();
//
// Fix the Window Size
@@ -278,6 +288,20 @@ QSizePolicy EditCast::sizePolicy() const
}
void EditCast::titleChangedData(const QString &str)
{
descriptionChangedData();
}
void EditCast::descriptionChangedData()
{
cast_ok_button->
setDisabled(cast_item_description_edit->toPlainText().trimmed().isEmpty()||
cast_item_title_edit->text().trimmed().isEmpty());
}
void EditCast::effectiveSelectData()
{
QDate current_date=QDate::currentDate();

View File

@@ -2,7 +2,7 @@
//
// Edit a Rivendell Cast
//
// (C) Copyright 2002-2021 Fred Gleason <fredg@paravelsystems.com>
// (C) Copyright 2002-2023 Fred Gleason <fredg@paravelsystems.com>
//
// 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,12 +36,14 @@ class EditCast : public RDDialog
{
Q_OBJECT
public:
EditCast(unsigned cast_id,QWidget *parent=0);
EditCast(unsigned cast_id,bool new_post,QWidget *parent);
~EditCast();
QSize sizeHint() const;
QSizePolicy sizePolicy() const;
private slots:
void titleChangedData(const QString &str);
void descriptionChangedData();
void effectiveSelectData();
void expirationSelectedData(int state);
void expirationSelectData();

View File

@@ -188,7 +188,7 @@ void ListCasts::addCartData()
QMessageBox::warning(this,"RDCastManager - "+tr("Posting Error"),err_msg);
return;
}
EditCast *d=new EditCast(cast_id,this);
EditCast *d=new EditCast(cast_id,true,this);
d->exec();
QModelIndex row=list_casts_model->addCast(cast_id);
if(row.isValid()) {
@@ -220,7 +220,7 @@ void ListCasts::addFileData()
QMessageBox::warning(this,"RDCastManager - "+tr("Posting Error"),err_msg);
return;
}
EditCast *d=new EditCast(cast_id,this);
EditCast *d=new EditCast(cast_id,true,this);
d->exec();
QModelIndex row=list_casts_model->addCast(cast_id);
if(row.isValid()) {
@@ -256,7 +256,7 @@ void ListCasts::addLogData()
&start_line,&end_line)) {
if((cast_id=list_feed->postLog(logname,start_time,ignore_stops,
start_line,end_line,&err_msg))!=0) {
EditCast *cast=new EditCast(cast_id,this);
EditCast *cast=new EditCast(cast_id,true,this);
cast->exec();
QModelIndex row=list_casts_model->addCast(cast_id);
if(row.isValid()) {
@@ -293,7 +293,7 @@ void ListCasts::editData()
if(rows.size()!=1) {
return;
}
EditCast *d=new EditCast(list_casts_model->castId(rows.first()),this);
EditCast *d=new EditCast(list_casts_model->castId(rows.first()),false,this);
if(d->exec()) {
list_casts_model->refresh(rows.first());
rda->ripc()->sendNotification(RDNotification::FeedType,

View File

@@ -221,7 +221,7 @@ void MainWidget::openData()
delete d;
}
if(cast_feed_model->isCast(rows.first())) {
EditCast *d=new EditCast(cast_feed_model->castId(rows.first()),this);
EditCast *d=new EditCast(cast_feed_model->castId(rows.first()),false,this);
if(d->exec()) {
cast_feed_model->refreshRow(rows.first());
}