connect(horizontalScrollBar(), SIGNAL(valueChanged(int)),
this, SLOT(moveContentHorizontally(int)));
+ m_animation = new QTimeLine(500, this);
+ connect(m_animation, SIGNAL(frameChanged(int)), horizontalScrollBar(), SLOT(setValue(int)));
+
ColumnWidget* column = new ColumnWidget(viewport(), this, m_controller->url());
m_columns.append(column);
setActiveColumnIndex(0);
updateDecorationSize();
- m_animation = new QTimeLine(500, this);
- connect(m_animation, SIGNAL(frameChanged(int)), horizontalScrollBar(), SLOT(setValue(int)));
-
// dim the background of the viewport
QColor bgColor = KColorScheme(QPalette::Active, KColorScheme::View).background().color();
const QColor fgColor = KColorScheme(QPalette::Active, KColorScheme::View).foreground().color();
activeColumn()->setActive(false);
m_index = columnIndex;
activeColumn()->setActive(true);
+ assureVisibleActiveColumn();
}
void DolphinColumnView::selectAll()
void DolphinColumnView::moveContentHorizontally(int x)
{
- m_contentX = -x;
+ m_contentX = isRightToLeft() ? +x : -x;
layoutColumns();
}
void DolphinColumnView::updateColumns()
{
- KDirLister* dirLister = m_dolphinModel->dirLister();
- foreach (ColumnWidget* column, m_columns) {
- dirLister->updateDirectory(column->url());
- }
-
const int end = m_columns.count() - 2; // next to last column
for (int i = 0; i <= end; ++i) {
ColumnWidget* nextColumn = m_columns[i + 1];
}
}
}
- assureVisibleActiveColumn();
}
void DolphinColumnView::slotDirListerStarted(const KUrl& url)
m_columns[m_index]->setActive(true);
m_controller->setUrl(m_columns[m_index]->url());
+
+ assureVisibleActiveColumn();
}
void DolphinColumnView::layoutColumns()
{
- int x = m_contentX;
ColumnModeSettings* settings = DolphinSettings::instance().columnModeSettings();
const int columnWidth = settings->columnWidth();
- foreach (ColumnWidget* column, m_columns) {
- column->setGeometry(QRect(x, 0, columnWidth, viewport()->height()));
- x += columnWidth;
+ if (isRightToLeft()) {
+ int x = viewport()->width() - columnWidth + m_contentX;
+ foreach (ColumnWidget* column, m_columns) {
+ column->setGeometry(QRect(x, 0, columnWidth, viewport()->height()));
+ x -= columnWidth;
+ }
+ } else {
+ int x = m_contentX;
+ foreach (ColumnWidget* column, m_columns) {
+ column->setGeometry(QRect(x, 0, columnWidth, viewport()->height()));
+ x += columnWidth;
+ }
}
}
const int x = activeColumn()->x();
const int width = activeColumn()->width();
if (x + width > viewportWidth) {
- int newContentX = m_contentX - x - width + viewportWidth;
- if (newContentX > 0) {
- newContentX = 0;
+ const int newContentX = m_contentX - x - width + viewportWidth;
+ if (isRightToLeft()) {
+ m_animation->setFrameRange(m_contentX, newContentX);
+ } else {
+ m_animation->setFrameRange(-m_contentX, -newContentX);
}
- m_animation->setFrameRange(-m_contentX, -newContentX);
m_animation->start();
} else if (x < 0) {
const int newContentX = m_contentX - x;
- m_animation->setFrameRange(-m_contentX, -newContentX);
+ if (isRightToLeft()) {
+ m_animation->setFrameRange(m_contentX, newContentX);
+ } else {
+ m_animation->setFrameRange(-m_contentX, -newContentX);
+ }
m_animation->start();
}
}
foreach (ColumnWidget* currColumn, m_columns) {
if (currColumn == column) {
setActiveColumnIndex(index);
- assureVisibleActiveColumn();
return;
}
++index;