┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/dolphincolumnview.cpp
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 /src/dolphincolumnview.cpp
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
Diffstat (limited to 'src/dolphincolumnview.cpp')
-rw-r--r--src/dolphincolumnview.cpp39
1 files changed, 28 insertions, 11 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()) {