24#include <tqlineedit.h>
26#include <tqmultilineedit.h>
27#include <tqpushbutton.h>
29#include <kbuttonbox.h>
32#include <tdemessagebox.h>
34#include "kspread_autofill.h"
35#include "kspread_factory.h"
36#include "kspread_locale.h"
38#include "kspread_dlg_list.h"
42ListDialog::ListDialog( TQWidget* parent, const char* name )
43 : KDialogBase( parent, name, true, i18n( "Custom Lists"), Ok|Cancel )
45 TQWidget* page = new TQWidget( this );
46 setMainWidget( page );
48 TQGridLayout *grid1 = new TQGridLayout( page,10,3,KDialog::marginHint(), KDialog::spacingHint());
50 TQLabel *lab= new TQLabel(page);
51 lab->setText(i18n( "List:" ));
52 grid1->addWidget(lab,0,0);
54 list= new TQListBox(page);
55 grid1->addMultiCellWidget(list,1,8,0,0);
58 lab= new TQLabel(page);
59 lab->setText(i18n( "Entry:" ));
60 grid1->addWidget(lab,0,1);
62 entryList= new TQMultiLineEdit(page);
63 grid1->addMultiCellWidget(entryList,1,8,1,1);
65 m_pRemove= new TQPushButton(i18n( "&Remove"),page);
66 grid1->addWidget(m_pRemove,3,2);
68 m_pAdd= new TQPushButton(i18n( "&Add"),page);
69 grid1->addWidget(m_pAdd,1,2);
71 m_pNew= new TQPushButton(i18n( "&New"),page);
72 grid1->addWidget(m_pNew,2,2);
74 m_pModify= new TQPushButton(i18n( "&Modify"),page);
75 grid1->addWidget(m_pModify,4,2);
77 m_pCopy= new TQPushButton(i18n( "Co&py"),page);
78 grid1->addWidget(m_pCopy,5,2);
80 m_pAdd->setEnabled( false);
82 connect( m_pRemove, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotRemove() ) );
83 connect( m_pAdd, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotAdd() ) );
84 connect( m_pNew, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotNew() ) );
85 connect( m_pModify, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotModify() ) );
86 connect( m_pCopy, TQ_SIGNAL( clicked() ), this, TQ_SLOT( slotCopy() ) );
87 connect( list, TQ_SIGNAL(doubleClicked(TQListBoxItem *)), this,TQ_SLOT(slotDoubleClicked(TQListBoxItem *)));
88 connect( list, TQ_SIGNAL(clicked ( TQListBoxItem * )), this,TQ_SLOT(slotTextClicked(TQListBoxItem * )));
90 entryList->setEnabled( false);
91 m_pModify->setEnabled( false);
93 m_pRemove->setEnabled( false);
99void ListDialog::slotTextClicked(TQListBoxItem*)
102 bool state=list->currentItem()>1;
103 m_pRemove->setEnabled(state);
104 m_pModify->setEnabled(state);
108void ListDialog::init()
111 month+=i18n( "January")+ ", ";
112 month+=i18n( "February")+ ", ";
113 month+=i18n( "March") + ", ";
114 month+=i18n( "April")+ ", ";
115 month+=i18n( "May")+ ", ";
116 month+=i18n( "June")+ ", ";
117 month+=i18n( "July")+ ", ";
118 month+=i18n( "August")+ ", ";
119 month+=i18n( "September")+ ", ";
120 month+=i18n( "October")+ ", ";
121 month+=i18n( "November")+ ", ";
122 month+=i18n( "December");
127 smonth+=i18n( "Jan")+ ", ";
128 smonth+=i18n( "Feb")+ ", ";
129 smonth+=i18n( "Mar") + ", ";
130 smonth+=i18n( "Apr")+ ", ";
131 smonth+=i18n( "May")+ ", ";
132 smonth+=i18n( "Jun")+ ", ";
133 smonth+=i18n( "Jul")+ ", ";
134 smonth+=i18n( "Aug")+ ", ";
135 smonth+=i18n( "Sep")+ ", ";
136 smonth+=i18n( "Oct")+ ", ";
137 smonth+=i18n( "Nov")+ ", ";
141 TQString day=i18n( "Monday")+ ", ";
142 day+=i18n( "Tuesday")+ ", ";
143 day+=i18n( "Wednesday")+ ", ";
144 day+=i18n( "Thursday")+ ", ";
145 day+=i18n( "Friday")+ ", ";
146 day+=i18n( "Saturday")+ ", ";
150 TQString sday=i18n( "Mon")+ ", ";
151 sday+=i18n( "Tue")+ ", ";
152 sday+=i18n( "Wed")+ ", ";
153 sday+=i18n( "Thu")+ ", ";
154 sday+=i18n( "Fri")+ ", ";
155 sday+=i18n( "Sat")+ ", ";
159 config = Factory::global()->config();
160 config->setGroup( "Parameters" );
161 TQStringList other=config->readListEntry( "Other list");
163 for ( TQStringList::Iterator it = other.begin(); it != other.end();++it )
167 else if( it!=other.begin())
169 tmp=tmp.left(tmp.length()-2);
174 list->insertStringList(lst);
177void ListDialog::slotDoubleClicked(TQListBoxItem *)
180 if(list->currentItem()<2)
182 TQString tmp=list->currentText();
183 entryList->setText( "");
184 TQStringList result=result.split( ", ",tmp);
186 for ( TQStringList::Iterator it = result.begin(); it != result.end();++it )
188 entryList->insertLine((*it),index);
191 entryList->setEnabled( true);
192 m_pModify->setEnabled( true);
195void ListDialog::slotAdd()
197 m_pAdd->setEnabled( false);
198 list->setEnabled( true);
200 for( int i=0;i<entryList->numLines();i++)
202 if(!entryList->textLine(i).isEmpty())
205 tmp=entryList->textLine(i);
207 tmp+= ", "+entryList->textLine(i);
211 list->insertItem(tmp,list->count());
213 entryList->setText( "");
214 entryList->setEnabled( false);
215 entryList->setFocus();
220void ListDialog::slotNew()
222 m_pAdd->setEnabled( true);
223 list->setEnabled( false);
224 entryList->setText( "");
225 entryList->setEnabled( true);
226 entryList->setFocus();
229void ListDialog::slotRemove()
231 if(list->currentItem()==-1)
234 if(list->currentItem()<2)
236 int ret = KMessageBox::warningContinueCancel( this, i18n( "Do you really want to remove this list?"),i18n( "Remove List"),KStdGuiItem::del());
239 list->removeItem(list->currentItem ());
240 entryList->setEnabled( false);
241 entryList->setText( "");
243 m_pRemove->setEnabled( false);
247void ListDialog::slotOk()
249 if(!entryList->text().isEmpty())
251 int ret = KMessageBox::warningYesNo( this, i18n( "Entry area is not empty.\nDo you want to continue?"));
261 for( unsigned int i=2;i<list->count();i++)
263 TQStringList tmp=result.split( ", ",list->text(i));
264 if ( !tmp.isEmpty() )
270 config->setGroup( "Parameters" );
271 config->writeEntry( "Other list",result);
274 if(AutoFillSequenceItem::other!=0L)
276 delete(AutoFillSequenceItem::other);
277 AutoFillSequenceItem::other=0L;
283void ListDialog::slotModify()
286 if(list->currentItem ()>1 && !entryList->text().isEmpty())
289 for( int i=0;i<entryList->numLines();i++)
291 if(!entryList->textLine(i).isEmpty())
294 tmp=entryList->textLine(i);
296 tmp+= ", "+entryList->textLine(i);
299 list->insertItem(tmp,list->currentItem());
300 list->removeItem(list->currentItem());
303 entryList->setText( "");
307 entryList->setEnabled( false);
308 m_pModify->setEnabled( false);
312void ListDialog::slotCopy()
314 if(list->currentItem()!=-1)
316 list->insertItem(list->currentText(),list->count());
321#include "kspread_dlg_list.moc"
|