When creating a new repository always show unknown files

Moved the clear log action to the log context menu
The file view now displays the actual filetype icons
Better resizing for columns in the fileview
Fixed crash in drag and drop in Linux


FossilOrigin-Name: 03c02e59f350369dd0a66f24fda209f4ab50137d
This commit is contained in:
kostas
2012-04-21 08:36:13 +00:00
parent ef4945494c
commit 6163dc5bea
5 changed files with 44 additions and 21 deletions

View File

@ -13,6 +13,7 @@
#include <QInputDialog>
#include <QDrag>
#include <QMimeData>
#include <QFileIconProvider>
#include "CommitDialog.h"
#include "FileActionDialog.h"
#include <QDebug>
@ -135,6 +136,7 @@ MainWindow::MainWindow(QWidget *parent, QString *workspacePath) :
ui->tableViewStash->addAction(ui->actionApplyStash);
ui->tableViewStash->addAction(ui->actionDiffStash);
ui->tableViewStash->addAction(ui->actionDeleteStash);
ui->tableViewStash->horizontalHeader()->setSortIndicatorShown(false);
// Recent Workspaces
// Locate a sequence of two separator actions in file menu
@ -174,7 +176,7 @@ MainWindow::MainWindow(QWidget *parent, QString *workspacePath) :
loadSettings();
// Apply any explict workspace path if available
if(workspacePath)
if(workspacePath && !workspacePath->isEmpty())
openWorkspace(*workspacePath);
refresh();
@ -372,6 +374,10 @@ void MainWindow::on_actionNewRepository_triggered()
return;
}
// Disable unknown file filter
if(!ui->actionViewUnknown->isChecked())
ui->actionViewUnknown->setChecked(true);
// Open repo
if(!runFossil(QStringList() << "open" << QuotePath(repositoryFile)))
{
@ -789,6 +795,8 @@ void MainWindow::updateFileView()
{ RepoFile::TYPE_MISSING, "M", "Missing", ":icons/icons/Button Help-01.png" },
};
QFileIconProvider icon_provider;
size_t item_id=0;
for(filemap_t::iterator it = workspaceFiles.begin(); it!=workspaceFiles.end(); ++it)
{
@ -820,16 +828,16 @@ void MainWindow::updateFileView()
repoFileModel.setItem(item_id, COLUMN_STATUS, status);
QFileInfo finfo = e.getFileInfo();
QIcon icon = icon_provider.icon(finfo);
QStandardItem *filename_item = 0;
if(viewMode==VIEWMODE_LIST || multiple_dirs)
{
repoFileModel.setItem(item_id, COLUMN_PATH, new QStandardItem(path));
filename_item = new QStandardItem(e.getFilePath());
filename_item = new QStandardItem(icon, QDir::toNativeSeparators(e.getFilePath()));
}
else // In Tree mode the path is implicit so the file name is enough
filename_item = new QStandardItem(e.getFilename());
filename_item = new QStandardItem(icon, e.getFilename());
Q_ASSERT(filename_item);
// Keep the path in the user data
@ -842,8 +850,13 @@ void MainWindow::updateFileView()
++item_id;
}
ui->tableView->resizeColumnsToContents();
ui->tableView->resizeRowsToContents();
ui->tableView->horizontalHeader()->setResizeMode(COLUMN_STATUS, QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setResizeMode(COLUMN_FILENAME, QHeaderView::Stretch);
ui->tableView->horizontalHeader()->setResizeMode(COLUMN_EXTENSION, QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setResizeMode(COLUMN_MODIFIED, QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setResizeMode(COLUMN_PATH, QHeaderView::ResizeToContents);
ui->tableView->horizontalHeader()->setSortIndicatorShown(true);
ui->tableView->resizeRowsToContents();
}
//------------------------------------------------------------------------------
@ -2317,8 +2330,16 @@ void MainWindow::onFileViewDragOut()
QMimeData *mime_data = new QMimeData;
mime_data->setData("text/uri-list", uris.toUtf8());
QDrag drag(this);
drag.setMimeData(mime_data);
drag.exec(Qt::CopyAction);
QDrag *drag = new QDrag(this);
drag->setMimeData(mime_data);
drag->exec(Qt::CopyAction);
}
//------------------------------------------------------------------------------
void MainWindow::on_textBrowser_customContextMenuRequested(const QPoint &pos)
{
QMenu *menu = ui->textBrowser->createStandardContextMenu();
menu->addSeparator();
menu->addAction(ui->actionClearLog);
menu->popup(ui->textBrowser->mapToGlobal(pos));
}