30 #include "ui_adddialog.h"
33 #include <KConfigGroup>
34 #include <KFilePlacesModel>
38 #include <QStandardItemModel>
42 class AddDialogUI:
public QWidget,
public Ui::AddDialog
45 AddDialogUI(QWidget *parent = 0)
52 const KUrl & startDir,
53 const QString & filter,
59 setOperationMode(KFileDialog::Saving);
60 setMode(KFile::File | KFile::LocalOnly);
61 setConfirmOverwrite(
true);
62 setCaption(i18n(
"Compress to Archive"));
66 connect(
this, SIGNAL(okClicked()), SLOT(updateDefaultMimeType()));
68 m_ui =
new AddDialogUI(
this);
69 mainWidget()->layout()->addWidget(m_ui);
71 setupIconList(itemsToAdd);
74 if (itemsToAdd.size() == 1) {
75 const QFileInfo fileInfo(itemsToAdd.first());
76 const QString fileName =
77 fileInfo.isDir() ? fileInfo.dir().dirName() : fileInfo.baseName();
82 setSelection(fileName + currentFilterMimeType()->mainExtension());
87 m_ui->groupExtraOptions->hide();
90 void AddDialog::loadConfiguration()
92 m_config = KConfigGroup(KGlobal::config()->group(
"AddDialog"));
94 const QString defaultMimeType = QLatin1String(
"application/x-compressed-tar" );
96 const QString lastMimeType = m_config.readEntry(
"LastMimeType", defaultMimeType);
98 if (writeMimeTypes.contains(lastMimeType)) {
99 setMimeFilter(writeMimeTypes, lastMimeType);
101 setMimeFilter(writeMimeTypes, defaultMimeType);
105 void AddDialog::setupIconList(
const QStringList& itemsToAdd)
107 QStandardItemModel* listModel =
new QStandardItemModel(
this);
108 QStringList sortedList(itemsToAdd);
112 Q_FOREACH(
const QString& urlString, sortedList) {
115 QStandardItem* item =
new QStandardItem;
116 item->setText(url.fileName());
118 QString iconName = KMimeType::iconNameForUrl(url);
119 item->setIcon(KIcon(iconName));
121 item->setData(QVariant(url), KFilePlacesModel::UrlRole);
123 listModel->appendRow(item);
126 m_ui->compressList->setModel(listModel);
129 void AddDialog::updateDefaultMimeType()
131 m_config.writeEntry(
"LastMimeType", currentMimeFilter());
135 #include "adddialog.moc"
QStringList supportedWriteMimeTypes()
AddDialog(const QStringList &itemsToAdd, const KUrl &startDir, const QString &filter, QWidget *parent, QWidget *widget=0)