diff --git a/ChangeLog b/ChangeLog index c0517524..8b7719e9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -20096,3 +20096,6 @@ * Dropped the 'CAST_DOWNLOADS' table from the database. * Incremented the database version to 328. * Removed support for dynamically generated RSS feed metadata. +2020-07-07 Fred Gleason + * Added 'Copy to Clipboard' buttons for the XML template editors + in the 'Edit Feed' dialog in rdadmin(1). diff --git a/rdadmin/edit_feed.cpp b/rdadmin/edit_feed.cpp index e10f0f75..a3b967fe 100644 --- a/rdadmin/edit_feed.cpp +++ b/rdadmin/edit_feed.cpp @@ -20,6 +20,8 @@ #include +#include +#include #include #include #include @@ -390,6 +392,10 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) feed_header_xml_label=new QLabel(feed_header_xml_edit,tr("Header XML:"),this); feed_header_xml_label->setFont(labelFont()); feed_header_xml_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); + feed_header_xml_button=new QPushButton(tr("Copy to\nClipboard"),this); + feed_header_xml_button->setFont(subButtonFont()); + connect(feed_header_xml_button,SIGNAL(clicked()), + this,SLOT(copyHeaderXmlData())); // // Channel XML @@ -400,6 +406,10 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) new QLabel(feed_channel_xml_edit,tr("Channel XML:"),this); feed_channel_xml_label->setFont(labelFont()); feed_channel_xml_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); + feed_channel_xml_button=new QPushButton(tr("Copy to\nClipboard"),this); + feed_channel_xml_button->setFont(subButtonFont()); + connect(feed_channel_xml_button,SIGNAL(clicked()), + this,SLOT(copyChannelXmlData())); // // Item XML @@ -409,6 +419,10 @@ EditFeed::EditFeed(const QString &feed,QWidget *parent) feed_item_xml_label=new QLabel(feed_item_xml_edit,tr("Item XML:"),this); feed_item_xml_label->setFont(labelFont()); feed_item_xml_label->setAlignment(Qt::AlignRight|Qt::AlignVCenter); + feed_item_xml_button=new QPushButton(tr("Copy to\nClipboard"),this); + feed_item_xml_button->setFont(subButtonFont()); + connect(feed_item_xml_button,SIGNAL(clicked()), + this,SLOT(copyItemXmlData())); // // Ok Button @@ -556,6 +570,51 @@ void EditFeed::listImagesData() } +void EditFeed::copyHeaderXmlData() +{ + RDRssSchemas::RssSchema schema= + (RDRssSchemas::RssSchema)feed_rss_schema_box->currentIndex(); + + if(schema==RDRssSchemas::CustomSchema) { + QApplication::clipboard()->setText(feed_header_xml_edit->text()); + } + else { + QApplication::clipboard()-> + setText(rda->rssSchemas()->headerTemplate(schema)); + } +} + + +void EditFeed::copyChannelXmlData() +{ + RDRssSchemas::RssSchema schema= + (RDRssSchemas::RssSchema)feed_rss_schema_box->currentIndex(); + + if(schema==RDRssSchemas::CustomSchema) { + QApplication::clipboard()->setText(feed_channel_xml_edit->text()); + } + else { + QApplication::clipboard()-> + setText(rda->rssSchemas()->channelTemplate(schema)); + } +} + + +void EditFeed::copyItemXmlData() +{ + RDRssSchemas::RssSchema schema= + (RDRssSchemas::RssSchema)feed_rss_schema_box->currentIndex(); + + if(schema==RDRssSchemas::CustomSchema) { + QApplication::clipboard()->setText(feed_item_xml_edit->text()); + } + else { + QApplication::clipboard()-> + setText(rda->rssSchemas()->itemTemplate(schema)); + } +} + + void EditFeed::okData() { if(feed_is_superfeed_box->currentItem()&& @@ -738,12 +797,15 @@ void EditFeed::resizeEvent(QResizeEvent *e) feed_header_xml_label->setGeometry(520,32,90,19); feed_header_xml_edit->setGeometry(615,32,size().width()-625,76); + feed_header_xml_button->setGeometry(540,54,70,30); feed_channel_xml_label->setGeometry(520,110,90,19); feed_channel_xml_edit->setGeometry(615,110,size().width()-625,256); + feed_channel_xml_button->setGeometry(540,132,70,30); feed_item_xml_label->setGeometry(520,368,90,19); feed_item_xml_edit->setGeometry(615,368,size().width()-625,240); + feed_item_xml_button->setGeometry(540,390,70,30); feed_ok_button->setGeometry(size().width()-180,size().height()-60,80,50); feed_cancel_button->setGeometry(size().width()-90,size().height()-60,80,50); @@ -786,14 +848,10 @@ void EditFeed::UpdateControlState() feed_item_image_label->setDisabled(item_image&&(superfeed)); feed_item_image_box->setDisabled(item_image&&(superfeed)); - feed_header_xml_label->setEnabled(custom_schema); feed_header_xml_edit->setEnabled(custom_schema); - - feed_channel_xml_label->setEnabled(custom_schema); feed_channel_xml_edit->setEnabled(custom_schema); - - feed_item_xml_label->setDisabled(superfeed||(!custom_schema)); feed_item_xml_edit->setDisabled(superfeed||(!custom_schema)); + feed_item_xml_button->setDisabled(superfeed); feed_purge_password_label-> setDisabled(feed_purge_username_edit->text().isEmpty()|| diff --git a/rdadmin/edit_feed.h b/rdadmin/edit_feed.h index 86021ef7..c5afe0ba 100644 --- a/rdadmin/edit_feed.h +++ b/rdadmin/edit_feed.h @@ -56,6 +56,9 @@ class EditFeed : public RDDialog void selectSubfeedsData(); void setFormatData(); void listImagesData(); + void copyHeaderXmlData(); + void copyChannelXmlData(); + void copyItemXmlData(); void okData(); void cancelData(); @@ -98,9 +101,15 @@ class EditFeed : public RDDialog QLineEdit *feed_purge_password_edit; QLabel *feed_rss_schema_label; QComboBox *feed_rss_schema_box; + QLabel *feed_header_xml_label; QTextEdit *feed_header_xml_edit; + QPushButton *feed_header_xml_button; + QLabel *feed_channel_xml_label; QTextEdit *feed_channel_xml_edit; + QPushButton *feed_channel_xml_button; + QLabel *feed_item_xml_label; QTextEdit *feed_item_xml_edit; + QPushButton *feed_item_xml_button; QSpinBox *feed_max_shelf_life_spin; QLabel *feed_autopost_label; QComboBox *feed_autopost_box; @@ -135,9 +144,6 @@ class EditFeed : public RDDialog RDImagePickerBox *feed_item_image_box; QPushButton *feed_ok_button; QPushButton *feed_cancel_button; - QLabel *feed_header_xml_label; - QLabel *feed_channel_xml_label; - QLabel *feed_item_xml_label; }; diff --git a/rdadmin/rdadmin_cs.ts b/rdadmin/rdadmin_cs.ts index 802397d0..58982767 100644 --- a/rdadmin/rdadmin_cs.ts +++ b/rdadmin/rdadmin_cs.ts @@ -1705,6 +1705,11 @@ Feeds Unlimited + + Copy to +Clipboard + + EditFeedPerms diff --git a/rdadmin/rdadmin_de.ts b/rdadmin/rdadmin_de.ts index 6ac595d9..a92657a4 100644 --- a/rdadmin/rdadmin_de.ts +++ b/rdadmin/rdadmin_de.ts @@ -1540,6 +1540,11 @@ Feeds Unlimited + + Copy to +Clipboard + + EditFeedPerms diff --git a/rdadmin/rdadmin_es.ts b/rdadmin/rdadmin_es.ts index becd4e3d..d780067d 100644 --- a/rdadmin/rdadmin_es.ts +++ b/rdadmin/rdadmin_es.ts @@ -1704,6 +1704,11 @@ Feeds Unlimited + + Copy to +Clipboard + + EditFeedPerms diff --git a/rdadmin/rdadmin_fr.ts b/rdadmin/rdadmin_fr.ts index fdb269d1..45269b03 100644 --- a/rdadmin/rdadmin_fr.ts +++ b/rdadmin/rdadmin_fr.ts @@ -1208,6 +1208,11 @@ Feeds Unlimited + + Copy to +Clipboard + + EditFeedPerms diff --git a/rdadmin/rdadmin_nb.ts b/rdadmin/rdadmin_nb.ts index 234b0faf..20f167db 100644 --- a/rdadmin/rdadmin_nb.ts +++ b/rdadmin/rdadmin_nb.ts @@ -1506,6 +1506,11 @@ Feeds Unlimited + + Copy to +Clipboard + + EditFeedPerms diff --git a/rdadmin/rdadmin_nn.ts b/rdadmin/rdadmin_nn.ts index 234b0faf..20f167db 100644 --- a/rdadmin/rdadmin_nn.ts +++ b/rdadmin/rdadmin_nn.ts @@ -1506,6 +1506,11 @@ Feeds Unlimited + + Copy to +Clipboard + + EditFeedPerms diff --git a/rdadmin/rdadmin_pt_BR.ts b/rdadmin/rdadmin_pt_BR.ts index 148b9170..8aeed8dc 100644 --- a/rdadmin/rdadmin_pt_BR.ts +++ b/rdadmin/rdadmin_pt_BR.ts @@ -1516,6 +1516,11 @@ Feeds Unlimited + + Copy to +Clipboard + + EditFeedPerms