diff options
author | Michele Calgaro <michele.calgaro@yahoo.it> | 2025-02-10 15:10:13 +0900 |
---|---|---|
committer | Michele Calgaro <michele.calgaro@yahoo.it> | 2025-02-13 11:44:42 +0900 |
commit | 8f8f84410cc591c85c5e83e0b3efdcda5fdbe42e (patch) | |
tree | f273a932ce048ef22ea9d9888b77ea8a2b8f3e33 /src/sq_fileiconview.cpp | |
parent | 424635023ee423826de12514b2fec7834b8deb7b (diff) | |
download | ksquirrel-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.cpp | 143 |
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" |