From fb82c1b0089a7209a6e1ca6b20bf5dca3c0a56bb Mon Sep 17 00:00:00 2001 From: Michele Calgaro Date: Sat, 16 Dec 2023 21:44:06 +0900 Subject: [PATCH] Added stream editing in a separate dialog box Signed-off-by: Michele Calgaro Signed-off-by: ormorph --- src/CMakeLists.txt | 4 +- src/kstreamripper.cpp | 109 +++++++++++------- src/kstreamripper.h | 7 +- src/kstreamripperbase.ui | 31 +++-- ...streamimpl.cpp => streampropertiesdlg.cpp} | 31 +++-- ...dnewstreamimpl.h => streampropertiesdlg.h} | 19 ++- ...ewstream.ui => streampropertiesdlgbase.ui} | 35 +++--- translations/messages/de.po | 12 +- translations/messages/kstreamripper.pot | 88 +++++++------- translations/messages/pl.po | 12 +- 10 files changed, 188 insertions(+), 160 deletions(-) rename src/{addnewstreamimpl.cpp => streampropertiesdlg.cpp} (77%) rename src/{addnewstreamimpl.h => streampropertiesdlg.h} (83%) rename src/{addnewstream.ui => streampropertiesdlgbase.ui} (93%) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index 7eacdcf..cb62c66 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -17,13 +17,13 @@ link_directories( tde_add_executable( ${PROJECT_NAME} AUTOMOC SOURCES - addnewstreamimpl.cpp - addnewstream.ui kstreamripperbase.ui kstreamripper.cpp main.cpp processcontroller.cpp processlistviewitem.cpp + streampropertiesdlgbase.ui + streampropertiesdlg.cpp LINK tdecore-shared tdeui-shared diff --git a/src/kstreamripper.cpp b/src/kstreamripper.cpp index 8d27d27..c1ef1af 100644 --- a/src/kstreamripper.cpp +++ b/src/kstreamripper.cpp @@ -43,7 +43,7 @@ #include #include "kstreamripper.h" -#include "addnewstreamimpl.h" +#include "streampropertiesdlg.h" #include "processlistviewitem.h" #include "processcontroller.h" @@ -56,23 +56,23 @@ KStreamRipper::KStreamRipper( TQWidget* parent, const char* name ) #endif { m_destEdit->setText( TQDir::homeDirPath() ); - + m_streamsListView->addColumn( "Name" ); m_streamsListView->addColumn( "Status" ); m_streamsListView->addColumn( "Size" ); - + //app config TDEConfig *appConfig = TDEGlobal::config(); - + m_destEdit->setText( appConfig->readEntry( "Destination" , "" ) ); m_timeEdit->setText( appConfig->readEntry( "Riptime", "0" )); m_tuneInEdit->setText( appConfig->readEntry( "Command", "xmms " )); m_id3Checkbox->setChecked( appConfig->readBoolEntry( "Id3Tag", 1 )); m_unicodeCheckbox->setChecked( appConfig->readBoolEntry( "Unicode", 1 )); - + //listview entrys TQStringList nameList,urlList,descList; - + nameList = appConfig->readListEntry( "names" ); urlList = appConfig->readListEntry( "urls" ); descList = appConfig->readListEntry( "descs" ); @@ -80,21 +80,22 @@ KStreamRipper::KStreamRipper( TQWidget* parent, const char* name ) iter1 = nameList.begin(); iter2 = urlList.begin(); iter3 = descList.begin(); - + for( ; iter1 != nameList.end() && iter2 != urlList.end() && iter3 != descList.end(); ++iter1, ++iter2, ++iter3 ) - { - ProcessListViewItem * procItem = new ProcessListViewItem( m_streamsListView, *iter1, "", ""); - procItem->setRenameEnabled(0, true); - ProcessController *pc = procItem->getProcessController(); - pc->setUrl( *iter2 ); - pc->setDescription( *iter3 ); - connect(pc, TQT_SIGNAL(stopRipSignal(ProcessController*)), this, TQT_SLOT(ripStopped(ProcessController*))); - } - + { + ProcessListViewItem * procItem = new ProcessListViewItem( m_streamsListView, *iter1, "", ""); + procItem->setRenameEnabled(0, true); + ProcessController *pc = procItem->getProcessController(); + pc->setUrl( *iter2 ); + pc->setDescription( *iter3 ); + connect(pc, TQT_SIGNAL(stopRipSignal(ProcessController*)), this, TQT_SLOT(ripStopped(ProcessController*))); + } + //CONNECTS - + //clicks connect(m_addStreamButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(addStreamButtonClicked())); + connect(m_editStreamButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(editStreamButtonClicked())); connect(m_deleteStreamButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(deleteStreamButtonClicked())); connect(m_tuneInButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(tuneInButtonClicked())); connect(m_ripButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(ripButtonClicked())); @@ -103,7 +104,7 @@ KStreamRipper::KStreamRipper( TQWidget* parent, const char* name ) connect(m_helpButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(helpButtonClicked())); connect(m_aboutButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(aboutButtonClicked())); connect(m_quitButton, TQT_SIGNAL(clicked()), this, TQT_SLOT(quitButtonClicked())); - + //other connect( m_streamsListView, TQT_SIGNAL(selectionChanged()), this, TQT_SLOT( selectedNewListItem()) ); connect( m_DescriptionEdit, TQT_SIGNAL(textChanged(const TQString&)), this, TQT_SLOT( descriptionChanged()) ); @@ -111,9 +112,9 @@ KStreamRipper::KStreamRipper( TQWidget* parent, const char* name ) // zeroconf #if KDE_IS_VERSION(3,3,90) - connect(&m_browser, TQT_SIGNAL(serviceAdded(DNSSD::RemoteService::Ptr)), this, + connect(&m_browser, TQT_SIGNAL(serviceAdded(DNSSD::RemoteService::Ptr)), this, TQT_SLOT(serviceAdded(DNSSD::RemoteService::Ptr))); - connect(&m_browser, TQT_SIGNAL(serviceRemoved(DNSSD::RemoteService::Ptr)), this, + connect(&m_browser, TQT_SIGNAL(serviceRemoved(DNSSD::RemoteService::Ptr)), this, TQT_SLOT(serviceRemoved(DNSSD::RemoteService::Ptr))); m_browser.startBrowse(); #endif @@ -166,10 +167,23 @@ void KStreamRipper::closeEvent( TQCloseEvent *e ) //SLOTS void KStreamRipper::addStreamButtonClicked() { - AddNewStreamImpl *test = new AddNewStreamImpl( this ); - connect( test, TQT_SIGNAL( finished( AddNewStreamImpl* )), this, TQT_SLOT( addStreamFinished( AddNewStreamImpl* )) ); - - test->show(); + StreamPropertiesDlg *dlg = new StreamPropertiesDlg(this); + connect( dlg, TQT_SIGNAL( finished( StreamPropertiesDlg* )), this, TQT_SLOT( addStreamFinished( StreamPropertiesDlg* )) ); + dlg->setCaption("Add Stream..."); + dlg->show(); +} + +void KStreamRipper::editStreamButtonClicked() +{ + ProcessListViewItem *ProcItem = (ProcessListViewItem*)m_streamsListView->currentItem(); + StreamPropertiesDlg *dlg = new StreamPropertiesDlg(this); + connect( dlg, TQT_SIGNAL( finished( StreamPropertiesDlg* )), this, TQT_SLOT( editStreamFinished( StreamPropertiesDlg* )) ); + dlg->setCaption("Edit Stream"); + dlg->d_nameEdit->setText(ProcItem->text(0)); + dlg->d_urlEdit->setText(ProcItem->getProcessController()->getUrl()); + dlg->d_descEdit->setText(ProcItem->getProcessController()->getDescription()); + dlg->show(); + } void KStreamRipper::deleteStreamButtonClicked() @@ -184,12 +198,12 @@ void KStreamRipper::tuneInButtonClicked() if( m_streamsListView->currentItem() ) { TQString command = m_tuneInEdit->text().replace( "", m_UrlEdit->text() ); - + TQStringList commands = TQStringList::split( " ", command ); - + TQProcess *process = new TQProcess( this ); process->setArguments( commands ); - + process->start(); } else ; @@ -208,13 +222,13 @@ void KStreamRipper::serviceAdded(DNSSD::RemoteService::Ptr srv) void KStreamRipper::serviceRemoved(DNSSD::RemoteService::Ptr srv) { TQListViewItemIterator iter( m_streamsListView ); - + while( iter.current() ) { ProcessListViewItem * ProcItem = (ProcessListViewItem*)iter.current(); - if (ProcItem->getProcessController()->getAutomatic() && - srv==ProcItem->getProcessController()->getService()) { - delete ProcItem; - return; + if (ProcItem->getProcessController()->getAutomatic() && + srv==ProcItem->getProcessController()->getService()) { + delete ProcItem; + return; } ++iter; } @@ -281,32 +295,29 @@ void KStreamRipper::quitButtonClicked() void KStreamRipper::selectedNewListItem() { if ( !m_streamsListView->selectedItem() ) { + m_editStreamButton->setEnabled( false ); m_deleteStreamButton->setEnabled( false ); m_tuneInButton->setEnabled( false ); m_ripButton->setEnabled( false ); m_DescriptionEdit->setText( TQString() ); - m_DescriptionEdit->setEnabled(false); - m_UrlEdit->setEnabled(false); + m_DescriptionEdit->setEnabled(false); + m_UrlEdit->setEnabled(false); m_UrlEdit->setText( TQString() ); - return; + return; } ProcessController * ProcCtl = ((ProcessListViewItem*)m_streamsListView->currentItem())->getProcessController(); - // reconfigure what the user is allowed to do based on if this process is ripping + // reconfigure what the user is allowed to do based on if this process is ripping m_ripButton->setEnabled( !ProcCtl->getStatus() ); m_stopRipButton->setEnabled( ProcCtl->getStatus() ); m_tuneInButton->setEnabled( true ); + m_editStreamButton->setEnabled( !ProcCtl->getAutomatic() ); m_deleteStreamButton->setEnabled( !ProcCtl->getAutomatic() ); - + m_DescriptionEdit->setText(ProcCtl->getDescription()); m_DescriptionEdit->setEnabled(true); m_UrlEdit->setText(ProcCtl->getUrl()); m_UrlEdit->setEnabled( !ProcCtl->getAutomatic() ); - - - // maybe these are more elegant than the next two functions, assuming the slots are implemented in ProcessController - //connect(m_DescriptionEdit, TQT_SIGNAL(textChanged(const TQString&)), (ProcessListViewItem*)m_streamsListView->currentItem()->getProcessController(), TQT_SIGNAL(descriptionChanged(const TQString&)) - //connect(m_UrlEdit, TQT_SIGNAL(textChanged(const TQString&)), (ProcessListViewItem*)m_streamsListView->currentItem()->getProcessController(), TQT_SIGNAL(urlChanged(const TQString&)) } void KStreamRipper::descriptionChanged() @@ -323,8 +334,7 @@ void KStreamRipper::urlChanged() ProcItem->getProcessController()->setUrl(m_UrlEdit->text()); } - -void KStreamRipper::addStreamFinished( AddNewStreamImpl *e ) +void KStreamRipper::addStreamFinished( StreamPropertiesDlg *e ) { ProcessListViewItem *procItem = new ProcessListViewItem( m_streamsListView, e->d_nameEdit->text(), "", ""); ProcessController *pc = procItem->getProcessController(); @@ -333,4 +343,15 @@ void KStreamRipper::addStreamFinished( AddNewStreamImpl *e ) connect(pc, TQT_SIGNAL(stopRipSignal(ProcessController*)), this, TQT_SLOT(ripStopped(ProcessController*))); } +void KStreamRipper::editStreamFinished( StreamPropertiesDlg *e ) +{ + ProcessListViewItem *procItem = (ProcessListViewItem*)m_streamsListView->currentItem(); + ProcessController *pc = procItem->getProcessController(); + procItem->setText(0, e->d_nameEdit->text()); + pc->setUrl( e->d_urlEdit->text() ); + pc->setDescription( e->d_descEdit->text() ); + m_UrlEdit->setText( e->d_urlEdit->text() ); + m_DescriptionEdit->setText( e->d_descEdit->text() ); +} + #include "kstreamripper.moc" diff --git a/src/kstreamripper.h b/src/kstreamripper.h index 7677e6f..43c955c 100644 --- a/src/kstreamripper.h +++ b/src/kstreamripper.h @@ -36,7 +36,7 @@ namespace DNSSD { namespace RemoteService { typedef int Ptr; } } #endif -class AddNewStreamImpl; +class StreamPropertiesDlg; class TQString; class KStreamRipper : public KStreamRipperBase @@ -57,6 +57,7 @@ public: protected slots: void addStreamButtonClicked(); + void editStreamButtonClicked(); void deleteStreamButtonClicked(); void tuneInButtonClicked(); void ripButtonClicked(); @@ -71,7 +72,9 @@ protected slots: void descriptionChanged(); void urlChanged(); - void addStreamFinished( AddNewStreamImpl* ); + void addStreamFinished( StreamPropertiesDlg* ); + void editStreamFinished( StreamPropertiesDlg* ); + #if KDE_IS_VERSION(3,3,90) void serviceAdded(DNSSD::RemoteService::Ptr srv); void serviceRemoved(DNSSD::RemoteService::Ptr srv); diff --git a/src/kstreamripperbase.ui b/src/kstreamripperbase.ui index fb4e130..9eaf04d 100644 --- a/src/kstreamripperbase.ui +++ b/src/kstreamripperbase.ui @@ -116,30 +116,27 @@ - m_deleteStreamButton + m_editStreamButton false - &Delete Stream + &Edit Stream - + - m_stopRipButton + m_deleteStreamButton false - &Stop Rip - - - false + &Delete Stream - + m_tuneInButton @@ -150,7 +147,7 @@ &Tune in - + m_ripButton @@ -161,6 +158,20 @@ &Rip Stream + + + m_stopRipButton + + + false + + + &Stop Rip + + + false + + diff --git a/src/addnewstreamimpl.cpp b/src/streampropertiesdlg.cpp similarity index 77% rename from src/addnewstreamimpl.cpp rename to src/streampropertiesdlg.cpp index f10b547..7c77364 100644 --- a/src/addnewstreamimpl.cpp +++ b/src/streampropertiesdlg.cpp @@ -23,43 +23,42 @@ #include #include -#include "addnewstreamimpl.h" +#include "streampropertiesdlg.h" -AddNewStreamImpl::AddNewStreamImpl( TQWidget* parent, const char* name ) - : AddNewStream( parent,name, true ) +StreamPropertiesDlg::StreamPropertiesDlg(TQWidget *parent, const char *name) + : StreamPropertiesDlgBase(parent, name, true) { connect( d_okButton, TQT_SIGNAL( clicked()), this, TQT_SLOT( okButtonClicked()) ); connect( d_cancelButton, TQT_SIGNAL( clicked()), this, TQT_SLOT( cancelButtonClicked()) ); } -AddNewStreamImpl::~AddNewStreamImpl() +StreamPropertiesDlg::~StreamPropertiesDlg() { } //SLOTS - -void AddNewStreamImpl::okButtonClicked() +void StreamPropertiesDlg::okButtonClicked() { if( d_nameEdit->text() != "" && d_urlEdit->text() != "") - { - emit finished( this ); - this->close(); - } + { + emit finished( this ); + this->close(); + } else - { - KMessageBox::error( this, "You forgot to fill out one or more fields, please do it now.", - "Missing Information" ); - } + { + KMessageBox::error( this, "You forgot to fill out one or more fields, please do it now.", + "Missing Information" ); + } } -void AddNewStreamImpl::cancelButtonClicked() +void StreamPropertiesDlg::cancelButtonClicked() { this->close(); } -#include "addnewstreamimpl.moc" +#include "streampropertiesdlg.moc" diff --git a/src/addnewstreamimpl.h b/src/streampropertiesdlg.h similarity index 83% rename from src/addnewstreamimpl.h rename to src/streampropertiesdlg.h index 5683491..62c38b0 100644 --- a/src/addnewstreamimpl.h +++ b/src/streampropertiesdlg.h @@ -18,22 +18,20 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ -#ifndef ADDNEWSTREAMIMPL_H -#define ADDNEWSTREAMIMPL_H +#ifndef STREAM_PROPERTIES_DLG_BASE_H +#define STREAM_PROPERTIES_DLG_BASE_H -#include "addnewstream.h" +#include "streampropertiesdlgbase.h" -class AddNewStreamImpl : public AddNewStream + +class StreamPropertiesDlg : public StreamPropertiesDlgBase { TQ_OBJECT - public: - AddNewStreamImpl( TQWidget* parent = 0, const char* name = 0 ); - ~AddNewStreamImpl(); - -protected: + StreamPropertiesDlg(TQWidget *parent = nullptr, const char *name = nullptr); + ~StreamPropertiesDlg(); protected slots: @@ -42,8 +40,7 @@ protected slots: signals: - void finished( AddNewStreamImpl* ); + void finished( StreamPropertiesDlg* ); }; #endif - diff --git a/src/addnewstream.ui b/src/streampropertiesdlgbase.ui similarity index 93% rename from src/addnewstream.ui rename to src/streampropertiesdlgbase.ui index 9fcdb0e..50881c0 100644 --- a/src/addnewstream.ui +++ b/src/streampropertiesdlgbase.ui @@ -1,20 +1,17 @@ -AddNewStream +StreamPropertiesDlgBase - AddNewStream + StreamPropertiesDlgBase 0 0 - 383 - 287 + 450 + 200 - - Add Stream.... - TabFocus @@ -44,30 +41,25 @@ Name: - - - d_descriptionLabel - - - Description: - - d_nameEdit - + - d_urlEdit + d_descriptionLabel + + + Description: - + d_descEdit - + d_urlLabel @@ -75,6 +67,11 @@ Url of Stream: + + + d_urlEdit + + diff --git a/translations/messages/de.po b/translations/messages/de.po index 235fb9c..8811b81 100644 --- a/translations/messages/de.po +++ b/translations/messages/de.po @@ -33,27 +33,27 @@ msgstr "" msgid "KStreamRipper" msgstr "" -#: addnewstream.ui:16 +#: streampropertiesdlg.ui:16 #, no-c-format -msgid "Add Stream...." +msgid "Add Stream..." msgstr "" -#: addnewstream.ui:44 +#: streampropertiesdlg.ui:44 #, no-c-format msgid "Name:" msgstr "" -#: addnewstream.ui:52 kstreamripperbase.ui:317 +#: streampropertiesdlg.ui:52 kstreamripperbase.ui:317 #, no-c-format msgid "Description:" msgstr "" -#: addnewstream.ui:75 +#: streampropertiesdlg.ui:75 #, no-c-format msgid "Url of Stream:" msgstr "" -#: addnewstream.ui:88 +#: streampropertiesdlg.ui:88 #, no-c-format msgid "&Ok" msgstr "" diff --git a/translations/messages/kstreamripper.pot b/translations/messages/kstreamripper.pot index 523e8e2..54d8ade 100644 --- a/translations/messages/kstreamripper.pot +++ b/translations/messages/kstreamripper.pot @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" -"POT-Creation-Date: 2023-12-08 18:15+0000\n" +"POT-Creation-Date: 2023-12-16 21:42+0900\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" @@ -27,7 +27,7 @@ msgid "" "Your emails" msgstr "" -#: kstreamripper.cpp:203 +#: kstreamripper.cpp:217 msgid "found by Zeroconf" msgstr "" @@ -35,31 +35,6 @@ msgstr "" msgid "KStreamRipper" msgstr "" -#: addnewstream.ui:16 -#, no-c-format -msgid "Add Stream...." -msgstr "" - -#: addnewstream.ui:44 -#, no-c-format -msgid "Name:" -msgstr "" - -#: addnewstream.ui:52 kstreamripperbase.ui:317 -#, no-c-format -msgid "Description:" -msgstr "" - -#: addnewstream.ui:75 -#, no-c-format -msgid "Url of Stream:" -msgstr "" - -#: addnewstream.ui:88 -#, no-c-format -msgid "&Ok" -msgstr "" - #: kstreamripperbase.ui:16 #, no-c-format msgid "KStreamRipper V. 0.3.4" @@ -82,85 +57,95 @@ msgstr "" #: kstreamripperbase.ui:125 #, no-c-format -msgid "&Delete Stream" +msgid "&Edit Stream" msgstr "" #: kstreamripperbase.ui:136 #, no-c-format -msgid "&Stop Rip" +msgid "&Delete Stream" msgstr "" -#: kstreamripperbase.ui:150 +#: kstreamripperbase.ui:147 #, no-c-format msgid "&Tune in" msgstr "" -#: kstreamripperbase.ui:161 +#: kstreamripperbase.ui:158 #, no-c-format msgid "&Rip Stream" msgstr "" -#: kstreamripperbase.ui:188 +#: kstreamripperbase.ui:169 #, no-c-format -msgid "Settings" +msgid "&Stop Rip" msgstr "" #: kstreamripperbase.ui:199 #, no-c-format +msgid "Settings" +msgstr "" + +#: kstreamripperbase.ui:210 +#, no-c-format msgid "Destination:" msgstr "" -#: kstreamripperbase.ui:207 +#: kstreamripperbase.ui:218 #, no-c-format msgid "Time to Rip:" msgstr "" -#: kstreamripperbase.ui:215 +#: kstreamripperbase.ui:226 #, no-c-format msgid "Add ID3 Tag:" msgstr "" -#: kstreamripperbase.ui:234 +#: kstreamripperbase.ui:245 #, no-c-format msgid "Tune in Command:" msgstr "" -#: kstreamripperbase.ui:242 +#: kstreamripperbase.ui:253 #, no-c-format msgid "seconds" msgstr "" -#: kstreamripperbase.ui:250 +#: kstreamripperbase.ui:261 #, no-c-format msgid "...." msgstr "" -#: kstreamripperbase.ui:258 +#: kstreamripperbase.ui:269 #, no-c-format msgid "xmms " msgstr "" -#: kstreamripperbase.ui:266 +#: kstreamripperbase.ui:277 #, no-c-format msgid "0" msgstr "" -#: kstreamripperbase.ui:274 +#: kstreamripperbase.ui:285 #, no-c-format msgid "Choose a directory" msgstr "" -#: kstreamripperbase.ui:282 +#: kstreamripperbase.ui:293 #, no-c-format msgid "Unicode:" msgstr "" -#: kstreamripperbase.ui:306 +#: kstreamripperbase.ui:317 #, no-c-format msgid "Details" msgstr "" -#: kstreamripperbase.ui:325 +#: kstreamripperbase.ui:328 streampropertiesdlgbase.ui:54 +#, no-c-format +msgid "Description:" +msgstr "" + +#: kstreamripperbase.ui:336 #, no-c-format msgid "URL:" msgstr "" @@ -169,3 +154,18 @@ msgstr "" #, no-c-format msgid "C&ustom" msgstr "" + +#: streampropertiesdlgbase.ui:41 +#, no-c-format +msgid "Name:" +msgstr "" + +#: streampropertiesdlgbase.ui:67 +#, no-c-format +msgid "Url of Stream:" +msgstr "" + +#: streampropertiesdlgbase.ui:85 +#, no-c-format +msgid "&Ok" +msgstr "" diff --git a/translations/messages/pl.po b/translations/messages/pl.po index c198a88..c5d7cf9 100644 --- a/translations/messages/pl.po +++ b/translations/messages/pl.po @@ -36,27 +36,27 @@ msgstr "znaleziono przez Zeroconf" msgid "KStreamRipper" msgstr "" -#: addnewstream.ui:16 +#: streampropertiesdlg.ui:16 #, no-c-format -msgid "Add Stream...." +msgid "Add Stream..." msgstr "Dodaj Strumień..." -#: addnewstream.ui:44 +#: streampropertiesdlg.ui:44 #, no-c-format msgid "Name:" msgstr "Nazwa:" -#: addnewstream.ui:52 kstreamripperbase.ui:317 +#: streampropertiesdlg.ui:52 kstreamripperbase.ui:317 #, no-c-format msgid "Description:" msgstr "Opis:" -#: addnewstream.ui:75 +#: streampropertiesdlg.ui:75 #, no-c-format msgid "Url of Stream:" msgstr "URL strumienia:" -#: addnewstream.ui:88 +#: streampropertiesdlg.ui:88 #, no-c-format msgid "&Ok" msgstr "OK"