Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Namespace Members | Class Members | File Members | Related Pages

stringmanager.cpp

Go to the documentation of this file.
00001 #include <qhbox.h>
00002 #include <qpushbutton.h>
00003 #include <qlayout.h>
00004 #include <qlistview.h>
00005 #include <qlineedit.h>
00006 
00007 #include <qpe/config.h>
00008 
00009 #include "stringmanager.h"
00010 
00011 using namespace Datebook;
00012 
00013 StringManager::StringManager( const QString& str )
00014     : m_base( str ) {
00015 }
00016 StringManager::~StringManager() {
00017 
00018 }
00019 void StringManager::add( const QString& str ) {
00020     ManagerTemplate<QString>::add(str, str);
00021 }
00022 bool StringManager::load() {
00023     Config qpe( "datebook-"+m_base );
00024     qpe.setGroup(m_base );
00025     QStringList list =  qpe.readListEntry( "Names",  0x1f );
00026     for (QStringList::Iterator it = list.begin(); it != list.end(); ++it )
00027         add( (*it) );
00028 
00029     return true;
00030 }
00031 bool StringManager::save() {
00032     Config qpe( "datebook-"+m_base );
00033     qpe.setGroup(m_base);
00034     qpe.writeEntry( "Names", names(), 0x1f );
00035 
00036     return false;
00037 }
00038 QString StringManager::baseName()const {
00039     return m_base;
00040 }
00041 
00042 
00043 
00044 StringManagerDialog::StringManagerDialog(const StringManager& man)
00045     : QDialog(0, 0, true ) {
00046     m_base = man.baseName();
00047 
00048     QVBoxLayout* lay = new QVBoxLayout( this );
00049 
00050     m_view = new QListView( this );
00051     m_view->addColumn( QString::null );
00052     lay->addWidget( m_view );
00053 
00054     QHBox* box = new QHBox( this );
00055 
00056     QPushButton* b = new QPushButton( box );
00057     b->setText( tr("&Add") );
00058     connect(b, SIGNAL(clicked() ), this, SLOT(slotAdd() ) );
00059 
00060     b = new QPushButton( box );
00061     b->setText( tr("&Remove") );
00062     connect(b, SIGNAL(clicked() ), this, SLOT(slotRemove() ) );
00063 
00064     b = new QPushButton( box );
00065     b->setText( tr("Rename") );
00066     connect(b, SIGNAL(clicked() ), this, SLOT(slotRename() ) );
00067 
00068     lay->addWidget( box );
00069 
00070     init( man );
00071 }
00072 StringManagerDialog::~StringManagerDialog() {
00073 }
00074 StringManager StringManagerDialog::manager()const {
00075     StringManager man(m_base );
00076     QListViewItemIterator it(m_view);
00077     while ( it.current() ) {
00078         man.add( it.current()->text(0) );
00079         ++it;
00080     }
00081 
00082     return man;
00083 }
00084 void StringManagerDialog::init( const StringManager& _man ) {
00085     QStringList::Iterator it;
00086     QStringList man = _man.names();
00087     for ( it = man.begin(); it != man.end(); ++it )
00088         (void)new QListViewItem( m_view, (*it) );
00089 
00090 }
00091 
00092 namespace {
00093     class  InputDialog : public QDialog{
00094     public:
00095         InputDialog( const QString& text );
00096         ~InputDialog();
00097 
00098         QString text()const;
00099     private:
00100         QLineEdit* m_lneEdit;
00101     };
00102     InputDialog::InputDialog(const QString& text )
00103         : QDialog(0, 0, true ) {
00104         m_lneEdit = new QLineEdit( this );
00105         m_lneEdit->setText( text );
00106     }
00107     InputDialog::~InputDialog() {
00108     }
00109     QString InputDialog::text() const{
00110         return m_lneEdit->text();
00111     }
00112 
00113 }
00114 
00115 void StringManagerDialog::slotAdd() {
00116     InputDialog dlg(QString::null);
00117     dlg.setCaption( tr("Add") );
00118     if ( dlg.exec() == QDialog::Accepted )
00119         (void)new QListViewItem( m_view, dlg.text() );
00120 
00121 }
00122 void StringManagerDialog::slotRename() {
00123     QListViewItem* item = m_view->currentItem();
00124     if (!item) return;
00125 
00126     InputDialog dlg(item->text(0) );
00127     dlg.setCaption( tr("Rename") );
00128 
00129     if ( dlg.exec() == QDialog::Accepted )
00130         item->setText( 0, dlg.text() );
00131 }
00132 void StringManagerDialog::slotRemove() {
00133     QListViewItem* item = m_view->currentItem();
00134     if (!item) return;
00135 
00136     m_view->takeItem( item );
00137     delete item;
00138 }

Generated on Sat Nov 5 16:15:53 2005 for OPIE by  doxygen 1.4.2