summaryrefslogtreecommitdiffstats
path: root/juk/deletedialog.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'juk/deletedialog.cpp')
-rw-r--r--juk/deletedialog.cpp121
1 files changed, 121 insertions, 0 deletions
diff --git a/juk/deletedialog.cpp b/juk/deletedialog.cpp
new file mode 100644
index 00000000..cafd7849
--- /dev/null
+++ b/juk/deletedialog.cpp
@@ -0,0 +1,121 @@
+/***************************************************************************
+ begin : Tue Aug 31 21:59:58 EST 2004
+ copyright : (C) 2004 by Michael Pyne
+ email : michael.pyne@kdemail.net
+***************************************************************************/
+
+/***************************************************************************
+ * *
+ * This program is free software; you can redistribute it and/or modify *
+ * it under the terms of the GNU General Public License as published by *
+ * the Free Software Foundation; either version 2 of the License, or *
+ * (at your option) any later version. *
+ * *
+ ***************************************************************************/
+
+#include <kdialogbase.h>
+#include <kglobal.h>
+#include <kstdguiitem.h>
+#include <klocale.h>
+#include <kiconloader.h>
+#include <kconfig.h>
+
+#include <qstringlist.h>
+#include <qcheckbox.h>
+#include <qlayout.h>
+#include <qlabel.h>
+#include <qvbox.h>
+#include <qhbox.h>
+
+#include "deletedialog.h"
+
+//////////////////////////////////////////////////////////////////////////////
+// DeleteWidget implementation
+//////////////////////////////////////////////////////////////////////////////
+
+DeleteWidget::DeleteWidget(QWidget *parent, const char *name)
+ : DeleteDialogBase(parent, name)
+{
+ KConfigGroup messageGroup(KGlobal::config(), "FileRemover");
+
+ bool deleteInstead = messageGroup.readBoolEntry("deleteInsteadOfTrash", false);
+ slotShouldDelete(deleteInstead);
+ ddShouldDelete->setChecked(deleteInstead);
+}
+
+void DeleteWidget::setFiles(const QStringList &files)
+{
+ ddFileList->clear();
+ ddFileList->insertStringList(files);
+ ddNumFiles->setText(i18n("<b>1</b> file selected.", "<b>%n</b> files selected.", files.count()));
+}
+
+void DeleteWidget::slotShouldDelete(bool shouldDelete)
+{
+ if(shouldDelete) {
+ ddDeleteText->setText(i18n("<qt>These items will be <b>permanently "
+ "deleted</b> from your hard disk.</qt>"));
+ ddWarningIcon->setPixmap(KGlobal::iconLoader()->loadIcon("messagebox_warning",
+ KIcon::Desktop, KIcon::SizeLarge));
+ }
+ else {
+ ddDeleteText->setText(i18n("<qt>These items will be moved to the Trash Bin.</qt>"));
+ ddWarningIcon->setPixmap(KGlobal::iconLoader()->loadIcon("trashcan_full",
+ KIcon::Desktop, KIcon::SizeLarge));
+ }
+}
+
+//////////////////////////////////////////////////////////////////////////////
+// DeleteDialog implementation
+//////////////////////////////////////////////////////////////////////////////
+
+DeleteDialog::DeleteDialog(QWidget *parent, const char *name) :
+ KDialogBase(Swallow, WStyle_DialogBorder, parent, name,
+ true /* modal */, i18n("About to delete selected files"),
+ Ok | Cancel, Cancel /* Default */, true /* separator */),
+ m_trashGuiItem(i18n("&Send to Trash"), "trashcan_full")
+{
+ m_widget = new DeleteWidget(this, "delete_dialog_widget");
+ setMainWidget(m_widget);
+
+ m_widget->setMinimumSize(400, 300);
+ setMinimumSize(410, 326);
+ adjustSize();
+
+ slotShouldDelete(shouldDelete());
+
+ connect(m_widget->ddShouldDelete, SIGNAL(toggled(bool)), SLOT(slotShouldDelete(bool)));
+}
+
+bool DeleteDialog::confirmDeleteList(const QStringList &condemnedFiles)
+{
+ m_widget->setFiles(condemnedFiles);
+
+ return exec() == QDialog::Accepted;
+}
+
+void DeleteDialog::setFiles(const QStringList &files)
+{
+ m_widget->setFiles(files);
+}
+
+void DeleteDialog::accept()
+{
+ KConfigGroup messageGroup(KGlobal::config(), "FileRemover");
+
+ // Save user's preference
+
+ messageGroup.writeEntry("deleteInsteadOfTrash", shouldDelete());
+ messageGroup.sync();
+
+ KDialogBase::accept();
+}
+
+void DeleteDialog::slotShouldDelete(bool shouldDelete)
+{
+ setButtonGuiItem(Ok, shouldDelete ? KStdGuiItem::del() : m_trashGuiItem);
+}
+
+#include "deletedialog.moc"
+
+// vim: set et ts=4 sw=4: