29 #include <QtGui/QGroupBox>
30 #include <QtGui/QLabel>
31 #include <QtGui/QPixmap>
32 #include <QtGui/QHBoxLayout>
33 #include <QtGui/QFormLayout>
34 #include <QtGui/QCloseEvent>
35 #include <QtGui/QTreeWidget>
36 #include <QtGui/QTreeWidgetItem>
38 #include <kfiledialog.h>
39 #include <kicondialog.h>
40 #include <kmessagebox.h>
44 #include <klineedit.h>
47 #include <kiconloader.h>
56 mInitializing =
false;
67 connect( &mDiskList, SIGNAL(readDFDone()),
this, SLOT(readDFDone()));
69 connect ( m_listWidget, SIGNAL(itemClicked(QTreeWidgetItem*,
int)) ,
this, SLOT(clicked(QTreeWidgetItem*,
int)) );
70 m_listWidget->setHeaderLabels( QStringList() << QLatin1String(
"" ) << i18n(
"Device")
71 << i18n(
"Mount Point") << i18n(
"Mount Command") << i18n(
"Unmount Command") );
72 m_listWidget->setColumnWidth( 0, 20 );
74 QString text = QString::fromLatin1(
"%1: %2 %3: %4").
76 arg(i18nc(
"No device is selected",
"None")).
77 arg(i18n(
"Mount Point")).
78 arg(i18nc(
"No mount point is selected",
"None"));
80 mGroupBox->setEnabled(
false );
81 mGroupBox->setTitle(text);
83 connect( mIconLineEdit, SIGNAL(textEdited(QString)),
84 this,SLOT(iconChanged(QString)));
85 connect( mIconLineEdit, SIGNAL(textEdited(QString)),
88 mIconButton->setIconType(KIconLoader::Small, KIconLoader::Device);
89 mIconButton->setFixedHeight( mIconButton->sizeHint().height() );
91 connect( mIconButton, SIGNAL(iconChanged(QString)),
this, SLOT(iconChangedButton(QString)));
92 connect( mIconButton, SIGNAL(iconChanged(QString)),
this, SLOT(
slotChanged()));
94 connect( mDefaultIconButton, SIGNAL(clicked()),
this, SLOT(iconDefault()) );
95 connect( mDefaultIconButton, SIGNAL(clicked()),
this, SLOT(
slotChanged()) );
97 connect( mMountLineEdit,SIGNAL(textChanged(QString)),
98 this,SLOT(mntCmdChanged(QString)));
99 connect( mMountLineEdit, SIGNAL(textChanged(QString)),
102 connect( mMountButton, SIGNAL(clicked()),
this, SLOT(selectMntFile()) );
104 connect( mUmountLineEdit, SIGNAL(textChanged(QString)),
105 this,SLOT(umntCmdChanged(QString)));
106 connect( mUmountLineEdit, SIGNAL(textChanged(QString)),
109 connect( mUmountButton,SIGNAL(clicked()),
this,SLOT(selectUmntFile()));
126 void MntConfigWidget::readDFDone(
void )
128 mInitializing =
false;
129 m_listWidget->clear();
131 QTreeWidgetItem *item = 0;
135 for (; itr != end; ++itr)
138 item =
new QTreeWidgetItem( m_listWidget, QStringList() << QString() << disk->
deviceName()
159 KConfigGroup config(KGlobal::config(),
"MntConfig");
162 config.writeEntry(
"Width", width() );
163 config.writeEntry(
"Height", height() );
171 KConfigGroup config = KGlobal::config()->group(
"MntConfig");
172 if( mInitializing ==
false &&
GUI )
176 int w = config.readEntry(
"Width",this->width() );
177 int h = config.readEntry(
"Height",this->height() );
181 QList<QTreeWidgetItem*> list = m_listWidget->selectedItems();
182 if( list.size() == 1 )
183 clicked( list.at(0), 0 );
188 void MntConfigWidget::clicked( QTreeWidgetItem * item ,
int col )
192 QTreeWidgetItem * header = m_listWidget->headerItem();
194 mGroupBox->setEnabled(
true );
195 mGroupBox->setTitle( QString::fromLatin1(
"%1: %2 %3: %4").
202 const QIcon icon = item->icon(
IconCol );
204 mIconButton->setIcon( icon );
210 mIconLineEdit->setText( disk->
iconName() );
217 void MntConfigWidget::iconChangedButton(
const QString &iconName)
219 iconChanged(iconName);
222 void MntConfigWidget::iconChanged(
const QString &iconName)
224 QList<QTreeWidgetItem*> list = m_listWidget->selectedItems();
225 QTreeWidgetItem * item = list.at(0);
232 mIconLineEdit->setText(iconName);
234 QPixmap icon = SmallIcon( iconName );
235 item->setIcon(
IconCol, icon );
236 mIconButton->setIcon( icon );
241 void MntConfigWidget::iconDefault()
243 QList<QTreeWidgetItem*> list = m_listWidget->selectedItems();
244 QTreeWidgetItem * item = list.at(0);
253 void MntConfigWidget::selectMntFile()
255 KUrl url = KFileDialog::getOpenUrl( KUrl(),QLatin1String(
"*" ),
this );
260 if( !url.isLocalFile() )
262 KMessageBox::sorry( 0L, i18n(
"Only local files supported." ) );
266 mMountLineEdit->setText( url.path() );
269 void MntConfigWidget::selectUmntFile()
271 KUrl url = KFileDialog::getOpenUrl( KUrl(), QLatin1String(
"*" ),
this );
276 if( !url.isLocalFile() )
278 KMessageBox::sorry( 0L, i18n(
"Only local files are currently supported." ) );
282 mUmountLineEdit->setText( url.path() );
285 void MntConfigWidget::mntCmdChanged(
const QString &data )
288 QList<QTreeWidgetItem*> list = m_listWidget->selectedItems();
289 QTreeWidgetItem * item = list.at(0);
301 void MntConfigWidget::umntCmdChanged(
const QString &data )
303 QList<QTreeWidgetItem*> list = m_listWidget->selectedItems();
304 QTreeWidgetItem * item = list.at(0);
315 DiskEntry * MntConfigWidget::selectedDisk( QTreeWidgetItem * item )
319 QList<QTreeWidgetItem*> selected = m_listWidget->selectedItems();
320 if ( selected.size() == 1 )
321 item = selected.at(0);
329 int pos = mDiskList.
find(tmpDisk);
333 return mDiskList.
at(pos);
345 #include "mntconfig.moc"
QList< DiskEntry * >::const_iterator DisksConstIterator
QString mountCommand() const
sets the used mountCommand for the actual DiskEntry.
DisksConstIterator disksConstIteratorBegin()
void setIconName(const QString &iconName)
DiskEntry * at(uint index)
QString umountCommand() const
sets the used umountCommand for the actual DiskEntry.
DisksConstIterator disksConstIteratorEnd()
void setUmountCommand(const QString &umnt)
void setMountCommand(const QString &mnt)
QString mountPoint() const
int find(DiskEntry *disk)
QString deviceName() const
void setMountPoint(const QString &mountPoint)