|
|
|
@ -38,10 +38,10 @@
|
|
|
|
|
#include "dolphinsettings.h"
|
|
|
|
|
#include "dolphiniconsviewsettings.h"
|
|
|
|
|
|
|
|
|
|
DolphinIconsView::DolphinIconsView(DolphinView* tqparent, LayoutMode tqlayoutMode) :
|
|
|
|
|
DolphinIconsView::DolphinIconsView(DolphinView* tqparent, LayoutMode layoutMode) :
|
|
|
|
|
KFileIconView(tqparent, 0),
|
|
|
|
|
m_previewIconSize(-1),
|
|
|
|
|
m_tqlayoutMode(tqlayoutMode),
|
|
|
|
|
m_layoutMode(layoutMode),
|
|
|
|
|
m_dolphinView(tqparent)
|
|
|
|
|
{
|
|
|
|
|
setAcceptDrops(true);
|
|
|
|
@ -81,7 +81,7 @@ DolphinIconsView::DolphinIconsView(DolphinView* tqparent, LayoutMode tqlayoutMod
|
|
|
|
|
|
|
|
|
|
setItemsMovable(true);
|
|
|
|
|
setWordWrapIconText(true);
|
|
|
|
|
if (m_tqlayoutMode == Previews) {
|
|
|
|
|
if (m_layoutMode == Previews) {
|
|
|
|
|
showPreviews();
|
|
|
|
|
}
|
|
|
|
|
refreshSettings();
|
|
|
|
@ -93,8 +93,8 @@ DolphinIconsView::~DolphinIconsView()
|
|
|
|
|
|
|
|
|
|
void DolphinIconsView::setLayoutMode(LayoutMode mode)
|
|
|
|
|
{
|
|
|
|
|
if (m_tqlayoutMode != mode) {
|
|
|
|
|
m_tqlayoutMode = mode;
|
|
|
|
|
if (m_layoutMode != mode) {
|
|
|
|
|
m_layoutMode = mode;
|
|
|
|
|
refreshSettings();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
@ -129,7 +129,7 @@ void DolphinIconsView::endItemUpdates()
|
|
|
|
|
|
|
|
|
|
void DolphinIconsView::refreshSettings()
|
|
|
|
|
{
|
|
|
|
|
const DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_tqlayoutMode);
|
|
|
|
|
const DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_layoutMode);
|
|
|
|
|
assert(settings != 0);
|
|
|
|
|
|
|
|
|
|
setIconSize(settings->iconSize());
|
|
|
|
@ -151,7 +151,7 @@ void DolphinIconsView::refreshSettings()
|
|
|
|
|
setFont(adjustedFont);
|
|
|
|
|
setIconTextHeight(settings->textlinesCount());
|
|
|
|
|
|
|
|
|
|
if (m_tqlayoutMode == Previews) {
|
|
|
|
|
if (m_layoutMode == Previews) {
|
|
|
|
|
// There is no getter method for the current size in KFileIconView. To
|
|
|
|
|
// prevent a flickering the current size is stored in m_previewIconSize and
|
|
|
|
|
// setPreviewSize is only invoked if the size really has changed.
|
|
|
|
@ -168,13 +168,13 @@ void DolphinIconsView::refreshSettings()
|
|
|
|
|
void DolphinIconsView::zoomIn()
|
|
|
|
|
{
|
|
|
|
|
if (isZoomInPossible()) {
|
|
|
|
|
DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_tqlayoutMode);
|
|
|
|
|
DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_layoutMode);
|
|
|
|
|
const int textWidthHint = settings->textWidthHint();
|
|
|
|
|
|
|
|
|
|
const int iconSize = increasedIconSize(settings->iconSize());
|
|
|
|
|
settings->setIconSize(iconSize);
|
|
|
|
|
|
|
|
|
|
if (m_tqlayoutMode == Previews) {
|
|
|
|
|
if (m_layoutMode == Previews) {
|
|
|
|
|
const int previewSize = increasedIconSize(settings->previewSize());
|
|
|
|
|
settings->setPreviewSize(previewSize);
|
|
|
|
|
}
|
|
|
|
@ -187,13 +187,13 @@ void DolphinIconsView::zoomIn()
|
|
|
|
|
void DolphinIconsView::zoomOut()
|
|
|
|
|
{
|
|
|
|
|
if (isZoomOutPossible()) {
|
|
|
|
|
DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_tqlayoutMode);
|
|
|
|
|
DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_layoutMode);
|
|
|
|
|
const int textWidthHint = settings->textWidthHint();
|
|
|
|
|
|
|
|
|
|
const int iconSize = decreasedIconSize(settings->iconSize());
|
|
|
|
|
settings->setIconSize(iconSize);
|
|
|
|
|
|
|
|
|
|
if (m_tqlayoutMode == Previews) {
|
|
|
|
|
if (m_layoutMode == Previews) {
|
|
|
|
|
const int previewSize = decreasedIconSize(settings->previewSize());
|
|
|
|
|
settings->setPreviewSize(previewSize);
|
|
|
|
|
}
|
|
|
|
@ -205,14 +205,14 @@ void DolphinIconsView::zoomOut()
|
|
|
|
|
|
|
|
|
|
bool DolphinIconsView::isZoomInPossible() const
|
|
|
|
|
{
|
|
|
|
|
DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_tqlayoutMode);
|
|
|
|
|
const int size = (m_tqlayoutMode == Icons) ? settings->iconSize() : settings->previewSize();
|
|
|
|
|
DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_layoutMode);
|
|
|
|
|
const int size = (m_layoutMode == Icons) ? settings->iconSize() : settings->previewSize();
|
|
|
|
|
return size < KIcon::SizeEnormous;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
bool DolphinIconsView::isZoomOutPossible() const
|
|
|
|
|
{
|
|
|
|
|
DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_tqlayoutMode);
|
|
|
|
|
DolphinIconsViewSettings* settings = DolphinSettings::instance().iconsView(m_layoutMode);
|
|
|
|
|
return settings->iconSize() > KIcon::SizeSmall;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -221,7 +221,7 @@ void DolphinIconsView::arrangeItemsInGrid( bool updated )
|
|
|
|
|
|
|
|
|
|
KFileIconView::arrangeItemsInGrid(updated);
|
|
|
|
|
|
|
|
|
|
if (m_tqlayoutMode == Previews) {
|
|
|
|
|
if (m_layoutMode == Previews) {
|
|
|
|
|
// The class KFileIconView has a bug when the size of the previews differs from the size
|
|
|
|
|
// of the icons: For specific MIME types the y-position and the height is calculated in
|
|
|
|
|
// a wrong manner. The following code bypasses this issue. No bugreport has been submitted
|
|
|
|
|