┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2007-10-16 22:24:52 +0000
committerPeter Penz <[email protected]>2007-10-16 22:24:52 +0000
commit88f17ca75add13baf3ac633e57865136deba02cc (patch)
treea346d7c4b4b04f4aa7ecc09f1d876dcee6c361ef
parentd67de9dfef9a9e317c0b1b11014e80c95793bb5a (diff)
polish look of column view:
- don't show a focused border above all columns - provide a small gap between the columns - assure that the background of inactive columns works well with more complex styles like Oxygen CCMAIL: [email protected] svn path=/trunk/KDE/kdebase/apps/; revision=726042
-rw-r--r--src/dolphincolumnview.cpp39
-rw-r--r--src/dolphincolumnview.h2
-rw-r--r--src/dolphincolumnwidget.cpp10
-rw-r--r--src/dolphindetailsview.cpp2
-rw-r--r--src/dolphiniconsview.cpp2
-rw-r--r--src/dolphinview.cpp3
6 files changed, 38 insertions, 20 deletions
diff --git a/src/dolphincolumnview.cpp b/src/dolphincolumnview.cpp
index c0f08eaeb..972474000 100644
--- a/src/dolphincolumnview.cpp
+++ b/src/dolphincolumnview.cpp
@@ -47,6 +47,7 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control
m_index(-1),
m_contentX(0),
m_columns(),
+ m_emptyViewport(0),
m_animation(0)
{
Q_ASSERT(controller != 0);
@@ -55,6 +56,8 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control
setDragDropMode(QAbstractItemView::DragDrop);
setDropIndicatorShown(false);
setSelectionMode(ExtendedSelection);
+ setFocusPolicy(Qt::NoFocus);
+ setFrameShape(QFrame::NoFrame);
connect(this, SIGNAL(entered(const QModelIndex&)),
controller, SLOT(emitItemEntered(const QModelIndex&)));
@@ -81,6 +84,9 @@ DolphinColumnView::DolphinColumnView(QWidget* parent, DolphinController* control
m_columns.append(column);
setActiveColumnIndex(0);
+ m_emptyViewport = new QFrame(viewport());
+ m_emptyViewport->setFrameStyle(QFrame::StyledPanel | QFrame::Sunken);
+
updateDecorationSize();
updateColumnsBackground(true);
}
@@ -392,11 +398,8 @@ void DolphinColumnView::updateColumnsBackground(bool active)
m_active = active;
// dim the background of the viewport
- QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
- color.setAlpha(150);
-
QPalette palette;
- palette.setColor(viewport()->backgroundRole(), color);
+ palette.setColor(viewport()->backgroundRole(), QColor(0, 0, 0, 0));
viewport()->setPalette(palette);
foreach (DolphinColumnWidget* column, m_columns) {
@@ -449,29 +452,40 @@ void DolphinColumnView::setActiveColumnIndex(int index)
void DolphinColumnView::layoutColumns()
{
+ const int gap = 4;
+
ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
const int columnWidth = settings->columnWidth();
+
+ QRect emptyViewportRect;
if (isRightToLeft()) {
int x = viewport()->width() - columnWidth + m_contentX;
foreach (DolphinColumnWidget* column, m_columns) {
- column->setGeometry(QRect(x, 0, columnWidth, viewport()->height()));
+ column->setGeometry(QRect(x, 0, columnWidth - gap, viewport()->height()));
x -= columnWidth;
}
+ emptyViewportRect = QRect(0, 0, x + columnWidth - gap, viewport()->height());
} else {
int x = m_contentX;
foreach (DolphinColumnWidget* column, m_columns) {
- column->setGeometry(QRect(x, 0, columnWidth, viewport()->height()));
+ column->setGeometry(QRect(x, 0, columnWidth - gap, viewport()->height()));
x += columnWidth;
}
+ emptyViewportRect = QRect(x, 0, viewport()->width() - x - gap, viewport()->height());
+ }
+
+ if (emptyViewportRect.isValid()) {
+ m_emptyViewport->show();
+ m_emptyViewport->setGeometry(emptyViewportRect);
+ } else {
+ m_emptyViewport->hide();
}
}
void DolphinColumnView::updateScrollBar()
{
- int contentWidth = 0;
- foreach (DolphinColumnWidget* column, m_columns) {
- contentWidth += column->width();
- }
+ ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
+ const int contentWidth = m_columns.count() * settings->columnWidth();
horizontalScrollBar()->setPageStep(contentWidth);
horizontalScrollBar()->setRange(0, contentWidth - viewport()->width());
@@ -481,7 +495,10 @@ void DolphinColumnView::assureVisibleActiveColumn()
{
const int viewportWidth = viewport()->width();
const int x = activeColumn()->x();
- const int width = activeColumn()->width();
+
+ ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
+ const int width = settings->columnWidth();
+
if (x + width > viewportWidth) {
const int newContentX = m_contentX - x - width + viewportWidth;
if (isRightToLeft()) {
diff --git a/src/dolphincolumnview.h b/src/dolphincolumnview.h
index 95a16a80d..b12c5d82d 100644
--- a/src/dolphincolumnview.h
+++ b/src/dolphincolumnview.h
@@ -31,6 +31,7 @@ class DolphinColumnWidget;
class DolphinController;
class DolphinModel;
class QAbstractProxyModel;
+class QFrame;
class QTimeLine;
/**
@@ -169,6 +170,7 @@ private:
int m_index;
int m_contentX;
QList<DolphinColumnWidget*> m_columns;
+ QFrame* m_emptyViewport;
QTimeLine* m_animation;
friend class DolphinColumnWidget;
diff --git a/src/dolphincolumnwidget.cpp b/src/dolphincolumnwidget.cpp
index 92fbd4e79..7bf644a95 100644
--- a/src/dolphincolumnwidget.cpp
+++ b/src/dolphincolumnwidget.cpp
@@ -69,7 +69,6 @@ DolphinColumnWidget::DolphinColumnWidget(QWidget* parent,
setSelectionMode(QAbstractItemView::ExtendedSelection);
setDragDropMode(QAbstractItemView::DragDrop);
setDropIndicatorShown(false);
- setFocusPolicy(Qt::NoFocus);
// TODO: Remove this check when 4.3.2 is released and KDE requires it... this
// check avoids a division by zero happening on versions before 4.3.1.
@@ -181,7 +180,7 @@ void DolphinColumnWidget::updateBackground()
{
QColor color = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
if (!m_active || !m_view->m_active) {
- color.setAlpha(0);
+ color.setAlpha(150);
}
QPalette palette = viewport()->palette();
palette.setColor(viewport()->backgroundRole(), color);
@@ -386,10 +385,7 @@ void DolphinColumnWidget::slotEntered(const QModelIndex& index)
void DolphinColumnWidget::activate()
{
- if (m_view->hasFocus()) {
- setFocus(Qt::OtherFocusReason);
- }
- m_view->setFocusProxy(this);
+ setFocus(Qt::OtherFocusReason);
// TODO: Connecting to the signal 'activated()' is not possible, as kstyle
// does not forward the single vs. doubleclick to it yet (KDE 4.1?). Hence it is
@@ -415,6 +411,8 @@ void DolphinColumnWidget::activate()
void DolphinColumnWidget::deactivate()
{
+ clearFocus();
+
// TODO: Connecting to the signal 'activated()' is not possible, as kstyle
// does not forward the single vs. doubleclick to it yet (KDE 4.1?). Hence it is
// necessary connecting the signal 'singleClick()' or 'doubleClick'.
diff --git a/src/dolphindetailsview.cpp b/src/dolphindetailsview.cpp
index 8e8eec2ec..57d5eb81c 100644
--- a/src/dolphindetailsview.cpp
+++ b/src/dolphindetailsview.cpp
@@ -120,6 +120,8 @@ DolphinDetailsView::DolphinDetailsView(QWidget* parent, DolphinController* contr
#endif
updateDecorationSize();
+
+ setFocus();
}
DolphinDetailsView::~DolphinDetailsView()
diff --git a/src/dolphiniconsview.cpp b/src/dolphiniconsview.cpp
index 670dcc13e..7b8fa869d 100644
--- a/src/dolphiniconsview.cpp
+++ b/src/dolphiniconsview.cpp
@@ -99,6 +99,8 @@ DolphinIconsView::DolphinIconsView(QWidget* parent, DolphinController* controlle
m_categoryDrawer = new DolphinCategoryDrawer();
setCategoryDrawer(m_categoryDrawer);
+
+ setFocus();
}
DolphinIconsView::~DolphinIconsView()
diff --git a/src/dolphinview.cpp b/src/dolphinview.cpp
index 87170bfb7..f4b533d61 100644
--- a/src/dolphinview.cpp
+++ b/src/dolphinview.cpp
@@ -488,8 +488,6 @@ void DolphinView::updateView(const KUrl& url, const KUrl& rootUrl)
loadDirectory(url);
}
- itemView()->setFocus();
-
emit startedPathLoading(url);
}
@@ -886,7 +884,6 @@ void DolphinView::createView()
this, SLOT(emitContentsMoved()));
connect(view->horizontalScrollBar(), SIGNAL(valueChanged(int)),
this, SLOT(emitContentsMoved()));
- view->setFocus();
}
QAbstractItemView* DolphinView::itemView() const