summaryrefslogtreecommitdiffstats
path: root/src/sq_fileiconview.cpp
diff options
context:
space:
mode:
authorMichele Calgaro <michele.calgaro@yahoo.it>2025-02-10 15:10:13 +0900
committerMichele Calgaro <michele.calgaro@yahoo.it>2025-02-13 11:44:42 +0900
commit8f8f84410cc591c85c5e83e0b3efdcda5fdbe42e (patch)
treef273a932ce048ef22ea9d9888b77ea8a2b8f3e33 /src/sq_fileiconview.cpp
parent424635023ee423826de12514b2fec7834b8deb7b (diff)
downloadksquirrel-8f8f8441.tar.gz
ksquirrel-8f8f8441.zip
Rename 'ksquirrel' folder to 'src'
Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it> (cherry picked from commit 203fcb8d90752b546c672c625927a136b959fcfb)
Diffstat (limited to 'src/sq_fileiconview.cpp')
-rw-r--r--src/sq_fileiconview.cpp143
1 files changed, 143 insertions, 0 deletions
diff --git a/src/sq_fileiconview.cpp b/src/sq_fileiconview.cpp
new file mode 100644
index 0000000..686f90b
--- /dev/null
+++ b/src/sq_fileiconview.cpp
@@ -0,0 +1,143 @@
+/***************************************************************************
+ sq_fileiconview.cpp - description
+ -------------------
+ begin : Mon Mar 15 2004
+ copyright : (C) 2004 by Baryshev Dmitry
+ email : ksquirrel.iv@gmail.com
+ ***************************************************************************/
+
+/***************************************************************************
+ * *
+ * 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. *
+ * *
+ ***************************************************************************/
+
+#ifdef HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <tqpoint.h>
+#include <tqdragobject.h>
+#include <tqfontmetrics.h>
+#include <tqpainter.h>
+
+#include "sq_config.h"
+#include "sq_iconloader.h"
+#include "sq_fileiconview.h"
+#include "sq_widgetstack.h"
+#include "sq_diroperator.h"
+#include "sq_dragprovider.h"
+
+SQ_FileIconViewItem::SQ_FileIconViewItem(TQIconView *parent, const TQString &text,
+ const TQPixmap &pixmap, KFileItem *fi)
+ : KFileIconViewItem(parent, text, pixmap, fi)
+{}
+
+SQ_FileIconViewItem::~SQ_FileIconViewItem()
+{}
+
+SQ_FileIconView::SQ_FileIconView(TQWidget *parent, const char *name) : SQ_FileIconViewBase(parent, name)
+{
+ TQString n = name;
+
+ setSorting(TQDir::IgnoreCase);
+
+ dirPix = SQ_IconLoader::instance()->loadIcon("folder", TDEIcon::Desktop, (n == "icon view")
+ ? TDEIcon::SizeMedium : TDEIcon::SizeSmall);
+}
+
+SQ_FileIconView::~SQ_FileIconView()
+{}
+
+void SQ_FileIconView::updateView(bool b)
+{
+ if(!b)
+ return;
+
+ SQ_FileIconViewItem *item = static_cast<SQ_FileIconViewItem*>(TQIconView::firstItem());
+
+ if(item)
+ {
+ do
+ {
+ item->setPixmap((item->fileInfo())->pixmap(iconSize()));
+ item = static_cast<SQ_FileIconViewItem*>(item->nextItem());
+ }while(item);
+ }
+}
+
+/*
+ * Reimplement insertItem() to enable/disable inserting
+ * directories (depends on current settings).
+ */
+void SQ_FileIconView::insertItem(KFileItem *i)
+{
+ SQ_Config::instance()->setGroup("Fileview");
+
+ // directores disabled ?
+ if(i->isDir() && SQ_Config::instance()->readBoolEntry("disable_dirs", false))
+ return;
+
+ SQ_FileIconViewItem *item;
+
+ // add new item
+ setUpdatesEnabled(false);
+ item = new SQ_FileIconViewItem((TQIconView*)this, i->text(), i->pixmap(iconSize()), i);
+
+ initItemMy(item, i);
+ setUpdatesEnabled(true);
+
+ i->setExtraData(this, item);
+}
+
+/*
+ * Insert ".." item.
+ */
+void SQ_FileIconView::insertCdUpItem(const KURL &base)
+{
+ static const TQString &dirup = TDEGlobal::staticQString("..");
+
+ KFileItem *fi = new KFileItem(base.upURL(), "inode/directory", S_IFDIR);
+
+ // create ".." item
+ SQ_FileIconViewItem *item = new SQ_FileIconViewItem(this, dirup, dirPix, fi);
+
+ item->setSelectable(false);
+
+ fi->setExtraData(this, item);
+}
+
+/*
+ * Clear current view and insert "..".
+ */
+void SQ_FileIconView::clearView()
+{
+ // call default clearing method
+ KFileIconView::clearView();
+
+ // insert ".."
+ insertCdUpItem(SQ_WidgetStack::instance()->url());
+}
+
+void SQ_FileIconView::listingCompleted()
+{
+ arrangeItemsInGrid();
+}
+
+void SQ_FileIconView::startDrag()
+{
+ SQ_Config::instance()->setGroup("Fileview");
+
+ if(SQ_Config::instance()->readBoolEntry("drag", true))
+ {
+ SQ_DragProvider::instance()->setParams(this, *KFileView::selectedItems(), SQ_DragProvider::Icons);
+ SQ_DragProvider::instance()->start();
+ }
+ else
+ KFileIconView::startDrag();
+}
+
+#include "sq_fileiconview.moc"