From 6163dc5bea40a5fec432ead9123e57d7ab05bff1 Mon Sep 17 00:00:00 2001 From: kostas Date: Sat, 21 Apr 2012 08:36:13 +0000 Subject: [PATCH] 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 --- MainWindow.cpp | 39 ++++++++++++++++++++++++++++++--------- MainWindow.h | 2 +- MainWindow.ui | 6 ++++-- manifest | 16 ++++++++-------- manifest.uuid | 2 +- 5 files changed, 44 insertions(+), 21 deletions(-) diff --git a/MainWindow.cpp b/MainWindow.cpp index dcd8b55..fe04e27 100644 --- a/MainWindow.cpp +++ b/MainWindow.cpp @@ -13,6 +13,7 @@ #include #include #include +#include #include "CommitDialog.h" #include "FileActionDialog.h" #include @@ -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)); +} diff --git a/MainWindow.h b/MainWindow.h index e243ec1..ca327e6 100644 --- a/MainWindow.h +++ b/MainWindow.h @@ -226,7 +226,7 @@ private slots: void on_actionApplyStash_triggered(); void on_actionDeleteStash_triggered(); void on_actionDiffStash_triggered(); - + void on_textBrowser_customContextMenuRequested(const QPoint &pos); private: enum { diff --git a/MainWindow.ui b/MainWindow.ui index 4366b13..fa4bea4 100644 --- a/MainWindow.ui +++ b/MainWindow.ui @@ -159,6 +159,9 @@ 20 + + Qt::CustomContextMenu + @@ -170,7 +173,7 @@ 0 0 865 - 21 + 24 @@ -256,7 +259,6 @@ - diff --git a/manifest b/manifest index be99ed4..a665f07 100644 --- a/manifest +++ b/manifest @@ -1,5 +1,5 @@ -C Allow\sopening\sa\sspecific\sworkspace\spath\sfrom\sthe\scommandline\n\n -D 2012-04-15T14:42:09.758 +C When\screating\sa\snew\srepository\salways\sshow\sunknown\sfiles\nMoved\sthe\sclear\slog\saction\sto\sthe\slog\scontext\smenu\nThe\sfile\sview\snow\sdisplays\sthe\sactual\sfiletype\sicons\nBetter\sresizing\sfor\scolumns\sin\sthe\sfileview\nFixed\scrash\sin\sdrag\sand\sdrop\sin\sLinux\n +D 2012-04-21T08:36:13.808 F CommitDialog.cpp a46020a9361151d8d286a2670257d01d8967bf69 F CommitDialog.h f1ee8db92103164e7db55a8407ccdcff24571b72 F CommitDialog.ui 813d7cba316e226de1a22b7e480bb969fbe9b0c4 @@ -8,9 +8,9 @@ F FileActionDialog.h 15db1650b3a13d70bc338371e4c033c66e3b79ce F FileActionDialog.ui c63644428579741aeb5fa052e237ba799ced9ad7 F FileTableView.cpp 5ddf8c391c9a3ac449ec61fb1db837b577afeec2 F FileTableView.h 03e56d87c2d46411b9762b87f4d301619aaf18df -F MainWindow.cpp 8d0d6d8e78210670a8fe533b1413bcbe77196ce1 -F MainWindow.h 78dc49fe4500a6113ed8bbff597d5305d203a80c -F MainWindow.ui d569997fecf4a22d61a016a4a23eea04eaad6dee +F MainWindow.cpp e81955c1902fb6a7ac33c830a425dd1baad5ccc1 +F MainWindow.h 1f6d8db9cf25a89fbbb1e0b33cc63a0e43cfe7ff +F MainWindow.ui 6c12a0b141b86c6994d5835618acba19a9ff1976 F SettingsDialog.cpp e1fad18cc020d08b82c6d35dc94f6624deec9a3b F SettingsDialog.h f5da6cab4ccc82e2eb78ec835fb849c4c104d6cc F SettingsDialog.ui 8964629ea80c61971c0601624c84d1927902b1fd @@ -176,7 +176,7 @@ F installer/fuel.iss 13b6a938bcdf273cbd3649d2549887baa1577214 F installer/license.txt 4cc77b90af91e615a64ae04893fdffa7939db84c F main.cpp 69c1f9e873c016ef466d20298a67c3bc4c2b2f3a F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53 -P 8e08f86043f0c2159037824f125e6acf2c2be007 -R 2e9aacb62b629a4e755adad517f7f50b +P e42f476b1c07959ee224b1abbd60f811893d0717 +R d8b3609a9646f748b8ef5737cc97987c U kostas -Z 528eba2e411becfe13a36cbfcfcf8dde +Z 8c32e736b7ba845d81c6fe59d1e8d0a9 diff --git a/manifest.uuid b/manifest.uuid index 9d65228..cde9de6 100644 --- a/manifest.uuid +++ b/manifest.uuid @@ -1 +1 @@ -e42f476b1c07959ee224b1abbd60f811893d0717 \ No newline at end of file +03c02e59f350369dd0a66f24fda209f4ab50137d \ No newline at end of file