Added Path and Modified columns

Double clicking a file invokes diff
Added Open file action

FossilOrigin-Name: 22658a331a132d4adb2643d8d51f379e35b95f63
This commit is contained in:
kostas 2011-08-02 15:37:39 +00:00
parent d08b7adb90
commit 0ea111ee0b
6 changed files with 67 additions and 23 deletions

View File

@ -5,6 +5,17 @@
#include <QProcess>
#include <QSettings>
#include <QDesktopServices>
#include <QDateTime>
enum
{
COLUMN_STATUS,
COLUMN_PATH,
COLUMN_FILENAME,
COLUMN_EXTENSION,
COLUMN_MODIFIED
};
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
@ -14,6 +25,7 @@ MainWindow::MainWindow(QWidget *parent) :
ui->tableView->setModel(&itemModel);
ui->tableView->addAction(ui->actionDiff);
ui->tableView->addAction(ui->actionHistory);
ui->tableView->addAction(ui->actionOpenFile);
ui->tableView->addAction(ui->actionAdd);
ui->tableView->addAction(ui->actionDelete);
ui->tableView->addAction(ui->actionRename);
@ -118,7 +130,7 @@ void MainWindow::refresh()
if(status_text=="EDITED")
status = FileEntry::STATUS_EDITTED;
else if(status_text=="UNCHANGED")
status = FileEntry::STATUS_UNCHAGED;
status = FileEntry::STATUS_UNCHANGED;
QString fname = line.right(line.length() - 10).trimmed();
@ -130,7 +142,7 @@ void MainWindow::refresh()
// Update the model
itemModel.clear();
itemModel.setHorizontalHeaderLabels(QStringList() << "Status" << "File" << "Ext" );
itemModel.setHorizontalHeaderLabels(QStringList() << "S" << "Path" << "File" << "Ext" << "Modified" );
size_t i=0;
for(filemap_t::iterator it = workspaceFiles.begin(); it!=workspaceFiles.end(); ++it, ++i)
@ -141,25 +153,30 @@ void MainWindow::refresh()
case FileEntry::STATUS_EDITTED:
{
QIcon modicon(":icons/icons/Button Blank Yellow-01.png");
itemModel.setItem(i, 0, new QStandardItem(modicon, "Edited"));
itemModel.setItem(i, COLUMN_STATUS, new QStandardItem(modicon, "E"));
break;
}
case FileEntry::STATUS_UNCHAGED:
case FileEntry::STATUS_UNCHANGED:
{
QIcon modicon(":icons/icons/Button Blank Green-01.png");
itemModel.setItem(i, 0, new QStandardItem(modicon, "Unchanged"));
itemModel.setItem(i, COLUMN_STATUS, new QStandardItem(modicon, "U"));
break;
}
default:
{
QIcon modicon(":icons/icons/Button Blank Gray-01.png");
itemModel.setItem(i, 0, new QStandardItem(modicon, "Unknown"));
itemModel.setItem(i, COLUMN_STATUS, new QStandardItem(modicon, "?"));
}
}
itemModel.setItem(i, 1, new QStandardItem(e.filename));
itemModel.setItem(i, 2, new QStandardItem( e.fileinfo.completeSuffix()));
QString path = e.filename;
path = path.left(path.indexOf(e.fileinfo.fileName()));
itemModel.setItem(i, COLUMN_PATH, new QStandardItem(path));
itemModel.setItem(i, COLUMN_FILENAME, new QStandardItem(e.filename));
itemModel.setItem(i, COLUMN_EXTENSION, new QStandardItem(e.fileinfo.completeSuffix()));
itemModel.setItem(i, COLUMN_MODIFIED, new QStandardItem(e.fileinfo.lastModified().toString(Qt::SystemLocaleShortDate)));
}
ui->tableView->resizeColumnsToContents();
@ -214,8 +231,9 @@ bool MainWindow::runFossil(QStringList &result, const QStringList &args)
}
//------------------------------------------------------------------------------
void MainWindow::on_tableView_customContextMenuRequested(const QPoint &pos)
void MainWindow::on_tableView_customContextMenuRequested(const QPoint &/*pos*/)
{
/*
QModelIndex idx = ui->tableView->indexAt(pos);
if(!idx.isValid())
return;
@ -227,7 +245,7 @@ void MainWindow::on_tableView_customContextMenuRequested(const QPoint &pos)
menu->addAction("Delete");
menu->addSeparator();
menu->addAction("Commit");
menu->exec(pos);
menu->exec(pos);*/
}
//------------------------------------------------------------------------------
@ -306,7 +324,7 @@ void MainWindow::getSelectionFilenames(QStringList &filenames)
// FIXME: we are being called once per cell of each row
// but we only need column 1. There must be a better way
if(mi.column()!=1)
if(mi.column()!=COLUMN_FILENAME)
continue;
QVariant data = itemModel.data(mi);
@ -399,3 +417,20 @@ void MainWindow::on_actionHistory_triggered()
}
}
//------------------------------------------------------------------------------
void MainWindow::on_tableView_doubleClicked(const QModelIndex &/*index*/)
{
on_actionDiff_triggered();
}
//------------------------------------------------------------------------------
void MainWindow::on_actionOpenFile_triggered()
{
QStringList selection;
getSelectionFilenames(selection);
for(QStringList::iterator it = selection.begin(); it!=selection.end(); ++it)
{
QDesktopServices::openUrl(QUrl::fromLocalFile(getCurrentWorkspace()+QDir::separator()+*it));
}
}

View File

@ -20,7 +20,7 @@ struct FileEntry
enum Status
{
STATUS_UNKNOWN,
STATUS_UNCHAGED,
STATUS_UNCHANGED,
STATUS_EDITTED
};
@ -73,6 +73,10 @@ private slots:
void on_actionClearLog_triggered();
void on_tableView_doubleClicked(const QModelIndex &index);
void on_actionOpenFile_triggered();
public slots:
void on_tableView_customContextMenuRequested(const QPoint &pos);

View File

@ -299,6 +299,11 @@
<string>Timeline</string>
</property>
</action>
<action name="actionOpenFile">
<property name="text">
<string>Open file</string>
</property>
</action>
</widget>
<layoutdefault spacing="6" margin="11"/>
<resources>

View File

@ -1,8 +1,8 @@
C Reorganized\scontext\smenu\nAdded\sClear\slog\saction\nImproved\ssettings\sserialization.\nAdded\sSaving\sand\sloading\sof\swindow\sposition\sand\ssize\nAdded\sQuit\saction\nAdded\sTimeline\saction\nAdded\sFile\shistory\saction
D 2011-08-02T14:37:32.392
F MainWindow.cpp 40b52cc20d0bdd312eda97dabfe061d0b811c4ca
F MainWindow.h d9dd1137ff2af5a3a10d0f63f6bfe85d25b466c4
F MainWindow.ui ecde2d039645f4ff31d56416985fa372b534dade
C Added\sPath\sand\sModified\scolumns\nDouble\sclicking\sa\sfile\sinvokes\sdiff\nAdded\sOpen\sfile\saction
D 2011-08-02T15:37:39.139
F MainWindow.cpp 4adeb7e76a91a587a6a57e76e8e3edba5093473e
F MainWindow.h a3e385b65b14b25de39e683165104e15fc92ae68
F MainWindow.ui 71a58630d7a3b6af128d427a9390eadfc4fc83e3
F icons/Address\sBook-01.png ef2cec80ea5a559b72e8be4a344a1869fe69cbd8
F icons/Adobe\sIllustrator\sCS3\sDocument-01.png 2e44e933d58eefee7ccfa1650fed4ceadcf3c2be
F icons/Adobe\sPDF\sDocument-01.png 8a0bc3ba633d08debde748d64b5a9675e30447a3
@ -157,9 +157,9 @@ F icons/Zoom\sOut-01.png 8eda092100d9e00c9097f43a80d1e26695947448
F icons/Zoom-01.png 67ca532922e9166325c5c75fce1ca3fbb0d2b6a6
F main.cpp f53e9e1e34f65565f06b2d37d7be5c38e2113a03
F qtfossil.pro 80268b3b1ec8f73cbc24896a0f2ae3fbcca286cb
F qtfossil.pro.user 22fafa96fdc37a358378024e78fab11e7796b61d
F qtfossil.pro.user 1158668605888375173ffebe3cda61de6ebc4e72
F resources.qrc e98383ed205f4e37100c60057e0129c3b86dea53
P b900691237413a91803d830d1e9e6702ed76d749
R 73ae2bf1796d58dab2d89012f1383da3
P 836ed88f08a4d0133120fa5735627bbd24cd30a0
R 58b9892426d610ee78533f5c84abd2c2
U kostas
Z 7d44a0e71f9d084bae91ca71484d39c3
Z ddf19bd088c79dcb80cd114027ea16a1

View File

@ -1 +1 @@
836ed88f08a4d0133120fa5735627bbd24cd30a0
22658a331a132d4adb2643d8d51f379e35b95f63

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by Qt Creator 2.2.82, 2011-08-02T23:35:20. -->
<!-- Written by Qt Creator 2.2.82, 2011-08-03T00:36:05. -->
<qtcreator>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>