00001
00002
00003 #include <mythcontext.h>
00004 #include <mythuitext.h>
00005 #include <mythuibutton.h>
00006 #include <mythuitextedit.h>
00007
00008
00009 #include "editmetadata.h"
00010
00011 EditMetadataDialog::EditMetadataDialog(
00012 MythScreenStack *parent, ArchiveItem *source_metadata) :
00013 MythScreenType(parent, "EditMetadataDialog"),
00014 m_sourceMetadata(source_metadata),
00015 m_titleEdit(NULL),
00016 m_subtitleEdit(NULL),
00017 m_descriptionEdit(NULL),
00018 m_startdateEdit(NULL),
00019 m_starttimeEdit(NULL),
00020 m_cancelButton(NULL),
00021 m_okButton(NULL)
00022 {
00023 }
00024
00025 bool EditMetadataDialog::Create(void)
00026 {
00027 bool foundtheme = false;
00028
00029
00030 foundtheme = LoadWindowFromXML("mythburn-ui.xml", "edit_metadata", this);
00031
00032 if (!foundtheme)
00033 return false;
00034
00035 bool err = false;
00036 UIUtilE::Assign(this, m_titleEdit, "title_edit", &err);
00037 UIUtilE::Assign(this, m_subtitleEdit, "subtitle_edit", &err);
00038 UIUtilE::Assign(this, m_descriptionEdit, "description_edit", &err);
00039 UIUtilE::Assign(this, m_starttimeEdit, "starttime_edit", &err);
00040 UIUtilE::Assign(this, m_startdateEdit, "startdate_edit", &err);
00041 UIUtilE::Assign(this, m_okButton, "ok_button", &err);
00042 UIUtilE::Assign(this, m_cancelButton, "cancel_button", &err);
00043
00044 if (err)
00045 {
00046 LOG(VB_GENERAL, LOG_ERR, "Cannot load screen 'edit_metadata'");
00047 return false;
00048 }
00049
00050 connect(m_okButton, SIGNAL(Clicked()), this, SLOT(okPressed()));
00051 connect(m_cancelButton, SIGNAL(Clicked()), this, SLOT(cancelPressed()));
00052
00053 m_titleEdit->SetText(m_sourceMetadata->title);
00054 m_subtitleEdit->SetText(m_sourceMetadata->subtitle);
00055 m_descriptionEdit->SetText(m_sourceMetadata->description);
00056 m_startdateEdit->SetText(m_sourceMetadata->startDate);
00057 m_starttimeEdit->SetText(m_sourceMetadata->startTime);
00058
00059 BuildFocusList();
00060
00061 SetFocusWidget(m_titleEdit);
00062
00063 return true;
00064 }
00065
00066 bool EditMetadataDialog::keyPressEvent(QKeyEvent *event)
00067 {
00068 if (GetFocusWidget()->keyPressEvent(event))
00069 return true;
00070
00071 if (MythScreenType::keyPressEvent(event))
00072 return true;
00073
00074 return false;
00075 }
00076
00077 void EditMetadataDialog::okPressed(void)
00078 {
00079 m_sourceMetadata->title = m_titleEdit->GetText();
00080 m_sourceMetadata->subtitle = m_subtitleEdit->GetText();
00081 m_sourceMetadata->startDate = m_startdateEdit->GetText();
00082 m_sourceMetadata->startTime = m_starttimeEdit->GetText();
00083 m_sourceMetadata->description = m_descriptionEdit->GetText();
00084 m_sourceMetadata->editedDetails = true;
00085
00086 emit haveResult(true, m_sourceMetadata);
00087 Close();
00088 }
00089
00090 void EditMetadataDialog::cancelPressed(void)
00091 {
00092 emit haveResult(false, m_sourceMetadata);
00093 Close();
00094 }
00095
00096 EditMetadataDialog::~EditMetadataDialog()
00097 {
00098 }