Compare commits
10 Commits
v2.0.0-bet
...
v2.0.0-bet
Author | SHA1 | Date | |
---|---|---|---|
a296b622ef | |||
0e902177d4 | |||
f60fbc2545 | |||
b148b86311 | |||
521e0e7d7b | |||
0200f4b7b4 | |||
cf66ce260e | |||
6c3ad4001c | |||
abd223076c | |||
1efc307718 |
@ -21,19 +21,22 @@ Fuel V2.0.0 (2015-XX-XX)
|
|||||||
status of their contents, including missing folders
|
status of their contents, including missing folders
|
||||||
- Feature: Support for multiple file user-actions
|
- Feature: Support for multiple file user-actions
|
||||||
- Feature: Double-Click action also allows user actions
|
- Feature: Double-Click action also allows user actions
|
||||||
|
- Feature: Support for the versionable .fossil-settings/ignore-glob
|
||||||
|
- Feature: OSX: UI improvements
|
||||||
|
- Feature: OSX: Improved external application selection for application bundles
|
||||||
- Misc: Reorganised menu structure.
|
- Misc: Reorganised menu structure.
|
||||||
- Misc: Separated Fuel and Fossil settings
|
- Misc: Separated Fuel and Fossil settings
|
||||||
- Bug Fix: Retain the folder tree state when refreshing the workspace
|
- Bug Fix: Retain the folder tree state when refreshing the workspace
|
||||||
- Bug Fix: Fixed issue with the expanding width of the commit dialog
|
- Bug Fix: Fixed issue with the expanding width of the commit dialog
|
||||||
- Major internal refactoring
|
- Major internal refactoring
|
||||||
|
|
||||||
Fuel V1.0.1 (2015-08-XX)
|
Fuel V1.0.1 (2015-08-23)
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
- Reformated Docs into Markdown
|
|
||||||
- Added Localisations:
|
- Added Localisations:
|
||||||
- Italian (Thanks maxxlupi and Zangune)
|
- Italian (Thanks maxxlupi and Zangune)
|
||||||
- Dutch (Thanks Rick Van Lieshout and Fly Man)
|
- Dutch (Thanks Rick Van Lieshout and Fly Man)
|
||||||
- Korean (Thanks ardiefox)
|
- Korean (Thanks ardiefox)
|
||||||
|
- Reformated Docs into Markdown
|
||||||
|
|
||||||
Fuel V1.0.0 (2015-03-28)
|
Fuel V1.0.0 (2015-03-28)
|
||||||
--------------------------------------------------------------------------------
|
--------------------------------------------------------------------------------
|
||||||
|
1
fuel.pro
1
fuel.pro
@ -122,6 +122,7 @@ unix:!macx {
|
|||||||
|
|
||||||
macx {
|
macx {
|
||||||
SOURCES += ext/qtkeychain/keychain_mac.cpp
|
SOURCES += ext/qtkeychain/keychain_mac.cpp
|
||||||
|
LIBS += -framework CoreFoundation -framework Security
|
||||||
}
|
}
|
||||||
|
|
||||||
win32 {
|
win32 {
|
||||||
|
28
manifest
28
manifest
@ -1,5 +1,5 @@
|
|||||||
C Custom\sactions\snow\sexpect\smacros\sfor\sfile\sand\sfolder\sexpansion\nCustom\sactions\snow\strigger\seven\swithout\sa\sselection\nUse\snative\spath\sseparators\sin\scustom\sactions\n
|
C Updated\sChanges.md
|
||||||
D 2015-08-21T10:54:20.418
|
D 2015-08-25T13:07:48.374
|
||||||
F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35
|
F .travis.yml 77966888a81c4ceee1fcc79bce842c9667ad8a35
|
||||||
F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b
|
F debian/changelog eb4304dfcb6bb66850ec740838090eb50ce1249b
|
||||||
F debian/compat b6abd567fa79cbe0196d093a067271361dc6ca8b
|
F debian/compat b6abd567fa79cbe0196d093a067271361dc6ca8b
|
||||||
@ -13,7 +13,7 @@ F debian/watch 34f0921ff100a3e16a7ad84dcc303731de830a60
|
|||||||
F dist/arch/PKGBUILD 26623327e467028a883cd13963daa36baf10dfa3
|
F dist/arch/PKGBUILD 26623327e467028a883cd13963daa36baf10dfa3
|
||||||
F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e
|
F dist/win/fuel.iss ef3558dbba409eb194938b930377fc9ee27d319e
|
||||||
F doc/Building.md 149d959751ae488829e084a9f88449a08220c1d1
|
F doc/Building.md 149d959751ae488829e084a9f88449a08220c1d1
|
||||||
F doc/Changes.md af49b873012c6b453fe8084f46b6aadbd6fe6e63
|
F doc/Changes.md 47e0d70b5b4ce6e11688a807952d72134d4ff643
|
||||||
F doc/License.txt 4cc77b90af91e615a64ae04893fdffa7939db84c
|
F doc/License.txt 4cc77b90af91e615a64ae04893fdffa7939db84c
|
||||||
F ext/qtkeychain/CMakeLists.txt fc1afa05034f2765ba243ce758a7e9d6b6efe2d6
|
F ext/qtkeychain/CMakeLists.txt fc1afa05034f2765ba243ce758a7e9d6b6efe2d6
|
||||||
F ext/qtkeychain/COPYING d0f83c8198fdd5464d2373015b7b64ce7cae607e
|
F ext/qtkeychain/COPYING d0f83c8198fdd5464d2373015b7b64ce7cae607e
|
||||||
@ -37,7 +37,7 @@ F ext/qtkeychain/qkeychain_export.h d756528188ef9bf3c4461ecc80048f06c362b54b
|
|||||||
F ext/qtkeychain/testclient.cpp cb1290a9584b627306a7bfdf1c02a8bbae503f5f
|
F ext/qtkeychain/testclient.cpp cb1290a9584b627306a7bfdf1c02a8bbae503f5f
|
||||||
F ext/qtkeychain/translations/qtkeychain_de.ts 0a70c8205c066c30ed8172f0670942de1fc5eede
|
F ext/qtkeychain/translations/qtkeychain_de.ts 0a70c8205c066c30ed8172f0670942de1fc5eede
|
||||||
F ext/qtkeychain/translations/qtkeychain_ro.ts f16939382fd1a047b0692426bc82847347f14b32
|
F ext/qtkeychain/translations/qtkeychain_ro.ts f16939382fd1a047b0692426bc82847347f14b32
|
||||||
F fuel.pro 7802dc9513da36539818ee1e927ec1e3494ecb54
|
F fuel.pro 2de14a4a6bd3e5af9d9e7c78f870453fedb38577
|
||||||
F intl/convert.bat 357d461ee8c6a7be6d2f60ac77c3232678ffb513 x
|
F intl/convert.bat 357d461ee8c6a7be6d2f60ac77c3232678ffb513 x
|
||||||
F intl/convert.sh ac6edc8d99b575601cf9c6b85b18c9e25875b6e0 x
|
F intl/convert.sh ac6edc8d99b575601cf9c6b85b18c9e25875b6e0 x
|
||||||
F intl/de_DE.ts e2faceab920ac60c97bbc6fba038e261d51fc741
|
F intl/de_DE.ts e2faceab920ac60c97bbc6fba038e261d51fc741
|
||||||
@ -231,7 +231,7 @@ F src/FslSettingsDialog.cpp e00907d493fba469e48a008aecda88426350b5ac
|
|||||||
F src/FslSettingsDialog.h dfe2a61884a55a74cbb9206b6f6b482b979725e7
|
F src/FslSettingsDialog.h dfe2a61884a55a74cbb9206b6f6b482b979725e7
|
||||||
F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c
|
F src/LoggedProcess.cpp 2a1e5c94bc1e57c8984563e66c210e43a14dc60c
|
||||||
F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261
|
F src/LoggedProcess.h 85df7c635c807a5a0e8c4763f17a0752aaff7261
|
||||||
F src/MainWindow.cpp dfa81f94f04e418bdd22985b898855733842d496
|
F src/MainWindow.cpp 47aa96182c3a005d27295ef52e351f57a79721da
|
||||||
F src/MainWindow.h f4cffbe4d360d30aa2eeaa25fc6d50d0a39c617f
|
F src/MainWindow.h f4cffbe4d360d30aa2eeaa25fc6d50d0a39c617f
|
||||||
F src/RemoteDialog.cpp 8540cc5e2e41c4127ed8a028d84691604fa6ecac
|
F src/RemoteDialog.cpp 8540cc5e2e41c4127ed8a028d84691604fa6ecac
|
||||||
F src/RemoteDialog.h 5e0438c2bd7c79b1bb44bfbd58c2181b544a9e5d
|
F src/RemoteDialog.h 5e0438c2bd7c79b1bb44bfbd58c2181b544a9e5d
|
||||||
@ -243,10 +243,10 @@ F src/Settings.cpp 258d3f466f6a125ce2b8519d6d57a312cbc44a3f
|
|||||||
F src/Settings.h 0a10b0b83fe804bdc7dac58eed06b5b6ee422055
|
F src/Settings.h 0a10b0b83fe804bdc7dac58eed06b5b6ee422055
|
||||||
F src/SettingsDialog.cpp fa0c70eaf0fa7edb15de302d041cdb552fe523d5
|
F src/SettingsDialog.cpp fa0c70eaf0fa7edb15de302d041cdb552fe523d5
|
||||||
F src/SettingsDialog.h 5eb3ae2cbb00ab5544e1889860f5376f69fe47cd
|
F src/SettingsDialog.h 5eb3ae2cbb00ab5544e1889860f5376f69fe47cd
|
||||||
F src/Utils.cpp a375d6b641658b49d84462773d1e052de0c716dd
|
F src/Utils.cpp fb9fe1caeef47dca310079f8f10b41c838defaa5
|
||||||
F src/Utils.h c6341ee49a8fc35f215facb196d70bf9b1f2fc0f
|
F src/Utils.h 4563194b65d0a903ba71b3fec8fc870a8a610f76
|
||||||
F src/Workspace.cpp feab8b238a99cf1a60731aedf07af96010d9795d
|
F src/Workspace.cpp 6f15ea480579f357a3e01dacd1d62c2621961478
|
||||||
F src/Workspace.h 54eef32658b13a34fe78ae26887420e8ff358eaa
|
F src/Workspace.h 50970993b6f49c0f4dc55ba5954e7e4c2a723539
|
||||||
F src/main.cpp d8c65ea5e54102e4989fef9fd8cfd4f13ef8a8f0
|
F src/main.cpp d8c65ea5e54102e4989fef9fd8cfd4f13ef8a8f0
|
||||||
F tools/git-push.sh 62cc58434cae5b7bcd6bd9d4cce8b08739f31cd7 x
|
F tools/git-push.sh 62cc58434cae5b7bcd6bd9d4cce8b08739f31cd7 x
|
||||||
F tools/pack.sh d7f38a498c4e9327fecd6a6e5ac27be270d43008 x
|
F tools/pack.sh d7f38a498c4e9327fecd6a6e5ac27be270d43008 x
|
||||||
@ -256,11 +256,11 @@ F ui/CloneDialog.ui 4886e7d4f258ea8b852b5eefc860396e35145712
|
|||||||
F ui/CommitDialog.ui 1e5dafa742e9ae07ec937bcda8cda3297ddc6199
|
F ui/CommitDialog.ui 1e5dafa742e9ae07ec937bcda8cda3297ddc6199
|
||||||
F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d
|
F ui/FileActionDialog.ui 89bb4dc2d0b8adcd41adcb11ec65f2028a09a12d
|
||||||
F ui/FslSettingsDialog.ui eb3d4cb764cab90b01e82922237d8c42d6ce1749
|
F ui/FslSettingsDialog.ui eb3d4cb764cab90b01e82922237d8c42d6ce1749
|
||||||
F ui/MainWindow.ui f9774e6dddb9462d8072bffd6c511bee7f470b9d
|
F ui/MainWindow.ui e2a18caa7482b3ee0dff477592cdc9574b35fe4f
|
||||||
F ui/RemoteDialog.ui 95a4750d972ed8c49bb10b95db91ff16cfe2dd0b
|
F ui/RemoteDialog.ui 95a4750d972ed8c49bb10b95db91ff16cfe2dd0b
|
||||||
F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd
|
F ui/RevisionDialog.ui 27c3b98c665fec014a50cbf3352c0627f75e68cd
|
||||||
F ui/SettingsDialog.ui 2e1b6ce7a49100088c5649292c1319e62e0302e1
|
F ui/SettingsDialog.ui 2e1b6ce7a49100088c5649292c1319e62e0302e1
|
||||||
P 9b67709b92eae80e70f8ae2b775014092f820fdf
|
P 8a83bfb691fc72a4208c24b547c9c38fc668ec97
|
||||||
R 53802be5132d1fc255734da4b05ec8a0
|
R 53814be492792eadbc8740da254dc306
|
||||||
U Kostas
|
U kostas
|
||||||
Z 11e2710ccd6ed208d70aec7542a52542
|
Z 50d6c6e9520bb3b791eaf9b75e5e6c9e
|
||||||
|
@ -1 +1 @@
|
|||||||
e017a9126cf63ed060dd88accfcabbd9726e9aa7
|
3490f7140197453a7a45fea01b93281cf0c8ca3d
|
@ -263,6 +263,19 @@ MainWindow::MainWindow(Settings &_settings, QWidget *parent, QString *workspaceP
|
|||||||
a->setIconVisibleInMenu(false);
|
a->setIconVisibleInMenu(false);
|
||||||
foreach(QAction *a, ui->menuFile->actions())
|
foreach(QAction *a, ui->menuFile->actions())
|
||||||
a->setIconVisibleInMenu(false);
|
a->setIconVisibleInMenu(false);
|
||||||
|
|
||||||
|
// For some unknown reason on OSX the treeview gets a focus rect. So disable it
|
||||||
|
ui->workspaceTreeView->setAttribute(Qt::WA_MacShowFocusRect, false);
|
||||||
|
|
||||||
|
// Tighen-up the sizing of the main widgets to look slightly more consistent with the OSX style
|
||||||
|
ui->centralWidget->layout()->setContentsMargins(0, 0, 0, 0);
|
||||||
|
ui->workspaceTreeView->setFrameShape(QFrame::NoFrame);
|
||||||
|
ui->fileTableView->setFrameShape(QFrame::NoFrame);
|
||||||
|
ui->splitterVertical->setHandleWidth(1);
|
||||||
|
ui->splitterHorizontal->setHandleWidth(1);
|
||||||
|
|
||||||
|
// Wrong color scheme on Yosemite but better than the standard TabWidget
|
||||||
|
ui->tabWidget->setDocumentMode(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
abortShortcut = new QShortcut(QKeySequence("Escape"), this);
|
abortShortcut = new QShortcut(QKeySequence("Escape"), this);
|
||||||
@ -284,8 +297,9 @@ MainWindow::MainWindow(Settings &_settings, QWidget *parent, QString *workspaceP
|
|||||||
|
|
||||||
// Create SearchBox
|
// Create SearchBox
|
||||||
searchBox = new SearchBox(this);
|
searchBox = new SearchBox(this);
|
||||||
searchBox->setPlaceholderText(tr("Filter (%0)").arg(searchShortcut->key().toString()));
|
searchBox->setPlaceholderText(tr("Filter (%0)").arg(searchShortcut->key().toString(QKeySequence::NativeText)));
|
||||||
searchBox->setMaximumWidth(450);
|
searchBox->setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Fixed);
|
||||||
|
searchBox->setMinimumWidth(230);
|
||||||
ui->mainToolBar->addWidget(searchBox);
|
ui->mainToolBar->addWidget(searchBox);
|
||||||
|
|
||||||
connect( searchBox,
|
connect( searchBox,
|
||||||
@ -293,6 +307,12 @@ MainWindow::MainWindow(Settings &_settings, QWidget *parent, QString *workspaceP
|
|||||||
SLOT( onSearchBoxTextChanged(const QString&)),
|
SLOT( onSearchBoxTextChanged(const QString&)),
|
||||||
Qt::DirectConnection );
|
Qt::DirectConnection );
|
||||||
|
|
||||||
|
// Add another spacer to the right
|
||||||
|
spacer = new QWidget();
|
||||||
|
spacer->setSizePolicy(QSizePolicy::Fixed, QSizePolicy::Expanding);
|
||||||
|
spacer->setMinimumWidth(3);
|
||||||
|
ui->mainToolBar->addWidget(spacer);
|
||||||
|
|
||||||
viewMode = VIEWMODE_TREE;
|
viewMode = VIEWMODE_TREE;
|
||||||
|
|
||||||
uiCallback.init(this);
|
uiCallback.init(this);
|
||||||
@ -680,11 +700,35 @@ bool MainWindow::refresh()
|
|||||||
void MainWindow::scanWorkspace()
|
void MainWindow::scanWorkspace()
|
||||||
{
|
{
|
||||||
setBusy(true);
|
setBusy(true);
|
||||||
|
|
||||||
|
static const QRegExp REGEX_GLOB_LIST(",|\\n", Qt::CaseSensitive);
|
||||||
|
|
||||||
|
QStringList ignore_patterns;
|
||||||
|
|
||||||
|
// Determine ignored file patterns
|
||||||
|
{
|
||||||
|
QString ignore_list = settings.GetFossilValue(FOSSIL_SETTING_IGNORE_GLOB).toString().trimmed();
|
||||||
|
|
||||||
|
// Read patterns from versionable file if it exists
|
||||||
|
QFile ignored_file(getWorkspace().getPath() + PATH_SEPARATOR ".fossil-settings" PATH_SEPARATOR "ignore-glob");
|
||||||
|
|
||||||
|
if(ignored_file.open(QFile::ReadOnly))
|
||||||
|
{
|
||||||
|
ignore_list = ignored_file.readAll();
|
||||||
|
ignored_file.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
if(!ignore_list.isEmpty())
|
||||||
|
ignore_patterns = ignore_list.split(REGEX_GLOB_LIST, QString::SkipEmptyParts);
|
||||||
|
|
||||||
|
TrimStringList(ignore_patterns);
|
||||||
|
}
|
||||||
|
|
||||||
getWorkspace().scanWorkspace(ui->actionViewUnknown->isChecked(),
|
getWorkspace().scanWorkspace(ui->actionViewUnknown->isChecked(),
|
||||||
ui->actionViewIgnored->isChecked(),
|
ui->actionViewIgnored->isChecked(),
|
||||||
ui->actionViewModified->isChecked(),
|
ui->actionViewModified->isChecked(),
|
||||||
ui->actionViewUnchanged->isChecked(),
|
ui->actionViewUnchanged->isChecked(),
|
||||||
settings.GetFossilValue(FOSSIL_SETTING_IGNORE_GLOB).toString(),
|
ignore_patterns,
|
||||||
uiCallback,
|
uiCallback,
|
||||||
operationAborted
|
operationAborted
|
||||||
);
|
);
|
||||||
|
@ -54,6 +54,18 @@ QString SelectExe(QWidget *parent, const QString &description)
|
|||||||
if(!QFile::exists(path))
|
if(!QFile::exists(path))
|
||||||
return QString();
|
return QString();
|
||||||
|
|
||||||
|
#ifdef Q_OS_MACX
|
||||||
|
// Guess actual executable from bundle dir
|
||||||
|
QFileInfo fi(path);
|
||||||
|
if(fi.isDir() && path.indexOf(".app")!=-1)
|
||||||
|
{
|
||||||
|
path += "/Contents/MacOS/" + fi.baseName();
|
||||||
|
|
||||||
|
if(!QFile::exists(path))
|
||||||
|
return QString();
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return path;
|
return path;
|
||||||
}
|
}
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -517,7 +529,8 @@ QString UrlToStringNoCredentials(const QUrl& url)
|
|||||||
void SplitCommandLine(const QString &commandLine, QString &command, QString &extraParams)
|
void SplitCommandLine(const QString &commandLine, QString &command, QString &extraParams)
|
||||||
{
|
{
|
||||||
// Process command string
|
// Process command string
|
||||||
command = commandLine;
|
command = commandLine.trimmed();
|
||||||
|
|
||||||
Q_ASSERT(!command.isEmpty());
|
Q_ASSERT(!command.isEmpty());
|
||||||
|
|
||||||
// Split command from embedded params
|
// Split command from embedded params
|
||||||
@ -525,20 +538,22 @@ void SplitCommandLine(const QString &commandLine, QString &command, QString &ext
|
|||||||
|
|
||||||
// Command ends after first space
|
// Command ends after first space
|
||||||
QChar cmd_char_end = ' ';
|
QChar cmd_char_end = ' ';
|
||||||
int start = 0;
|
int cmd_start = 0;
|
||||||
|
int backtrack = 0;
|
||||||
|
|
||||||
// ...unless it is a quoted command
|
// ...unless it is a quoted command
|
||||||
if(command[0]=='"')
|
if(command[0]=='"')
|
||||||
{
|
{
|
||||||
cmd_char_end = '"';
|
cmd_char_end = '"';
|
||||||
start = 1;
|
cmd_start = 1;
|
||||||
|
backtrack = 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
int cmd_end = command.indexOf(cmd_char_end, start);
|
int cmd_end = command.indexOf(cmd_char_end, cmd_start);
|
||||||
if(cmd_end > 0)
|
if(cmd_end > 0)
|
||||||
{
|
{
|
||||||
extraParams = command.mid(cmd_end+1);
|
extraParams = command.mid(cmd_end+1);
|
||||||
command = command.mid(start, cmd_end-1);
|
command = command.mid(cmd_start, cmd_end-backtrack);
|
||||||
}
|
}
|
||||||
|
|
||||||
command = command.trimmed();
|
command = command.trimmed();
|
||||||
@ -621,3 +636,10 @@ bool SpawnExternalProcess(QObject *processParent, const QString& command, const
|
|||||||
QProcess proc(processParent);
|
QProcess proc(processParent);
|
||||||
return proc.startDetached(cmd, params);
|
return proc.startDetached(cmd, params);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//------------------------------------------------------------------------------
|
||||||
|
void TrimStringList(QStringList& list)
|
||||||
|
{
|
||||||
|
for(int i=0; i<list.length(); ++i)
|
||||||
|
list[i] = list[i].trimmed();
|
||||||
|
}
|
||||||
|
@ -64,6 +64,7 @@ QString UrlToStringDisplay(const QUrl &url);
|
|||||||
QString UrlToStringNoCredentials(const QUrl& url);
|
QString UrlToStringNoCredentials(const QUrl& url);
|
||||||
void SplitCommandLine(const QString &commandLine, QString &command, QString &extraParams);
|
void SplitCommandLine(const QString &commandLine, QString &command, QString &extraParams);
|
||||||
bool SpawnExternalProcess(QObject *processParent, const QString& command, const QStringList& fileList, const stringset_t& pathSet, const QString &workspaceDir, UICallback &uiCallback);
|
bool SpawnExternalProcess(QObject *processParent, const QString& command, const QStringList& fileList, const stringset_t& pathSet, const QString &workspaceDir, UICallback &uiCallback);
|
||||||
|
void TrimStringList(QStringList &list);
|
||||||
|
|
||||||
typedef QMap<QString, QString> QStringMap;
|
typedef QMap<QString, QString> QStringMap;
|
||||||
void ParseProperties(QStringMap &properties, const QStringList &lines, QChar separator=' ');
|
void ParseProperties(QStringMap &properties, const QStringList &lines, QChar separator=' ');
|
||||||
|
@ -99,6 +99,7 @@ bool Workspace::switchWorkspace(const QString& workspace, QSettings &store)
|
|||||||
store.endArray();
|
store.endArray();
|
||||||
store.endGroup();
|
store.endGroup();
|
||||||
|
|
||||||
|
#if 0 // FIXME: Disabled this because if fossil's remote does not match exactly what we have stored (url and username), it will be automatically added every-time
|
||||||
// Add the default url from fossil
|
// Add the default url from fossil
|
||||||
QUrl default_remote;
|
QUrl default_remote;
|
||||||
if(fossil().getRemoteUrl(default_remote) && default_remote.isValid() && !default_remote.isEmpty())
|
if(fossil().getRemoteUrl(default_remote) && default_remote.isValid() && !default_remote.isEmpty())
|
||||||
@ -113,12 +114,13 @@ bool Workspace::switchWorkspace(const QString& workspace, QSettings &store)
|
|||||||
setRemoteDefault(default_remote);
|
setRemoteDefault(default_remote);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
bool Workspace::scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool &abort, UICallback &uiCallback)
|
bool Workspace::scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QStringList &ignorePatterns, const bool &abort, UICallback &uiCallback)
|
||||||
{
|
{
|
||||||
QDir dir(dirPath);
|
QDir dir(dirPath);
|
||||||
|
|
||||||
@ -136,12 +138,12 @@ bool Workspace::scanDirectory(QFileInfoList &entries, const QString& dirPath, co
|
|||||||
rel_path.remove(baseDir+PATH_SEPARATOR);
|
rel_path.remove(baseDir+PATH_SEPARATOR);
|
||||||
|
|
||||||
// Skip ignored files
|
// Skip ignored files
|
||||||
if(!ignoreSpec.isEmpty() && QDir::match(ignoreSpec, rel_path))
|
if(!ignorePatterns.isEmpty() && QDir::match(ignorePatterns, rel_path))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
if (info.isDir())
|
if (info.isDir())
|
||||||
{
|
{
|
||||||
if(!scanDirectory(entries, filepath, baseDir, ignoreSpec, abort, uiCallback))
|
if(!scanDirectory(entries, filepath, baseDir, ignorePatterns, abort, uiCallback))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
@ -157,7 +159,7 @@ static bool StringLengthDescending(const QString &l, const QString &r)
|
|||||||
}
|
}
|
||||||
|
|
||||||
//------------------------------------------------------------------------------
|
//------------------------------------------------------------------------------
|
||||||
void Workspace::scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModified, bool scanUnchanged, const QString &ignoreGlob, UICallback &uiCallback, bool &operationAborted)
|
void Workspace::scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModified, bool scanUnchanged, const QStringList &ignorePatterns, UICallback &uiCallback, bool &operationAborted)
|
||||||
{
|
{
|
||||||
// Scan all workspace files
|
// Scan all workspace files
|
||||||
QFileInfoList all_files;
|
QFileInfoList all_files;
|
||||||
@ -184,14 +186,9 @@ void Workspace::scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModifie
|
|||||||
{
|
{
|
||||||
QCoreApplication::processEvents();
|
QCoreApplication::processEvents();
|
||||||
|
|
||||||
QString ignore;
|
QStringList ignore;
|
||||||
// If we should not be showing ignored files, fill in the ignored spec
|
|
||||||
if(!scanIgnored)
|
if(!scanIgnored)
|
||||||
{
|
ignore = ignorePatterns;
|
||||||
// QDir expects multiple specs being separated by a semicolon
|
|
||||||
ignore = ignoreGlob;
|
|
||||||
ignore.replace(',',';');
|
|
||||||
}
|
|
||||||
|
|
||||||
if(!scanDirectory(all_files, wkdir, wkdir, ignore, operationAborted, uiCallback))
|
if(!scanDirectory(all_files, wkdir, wkdir, ignore, operationAborted, uiCallback))
|
||||||
goto _done;
|
goto _done;
|
||||||
|
@ -134,7 +134,7 @@ public:
|
|||||||
|
|
||||||
const QString & getPath() const { return fossil().getWorkspacePath(); }
|
const QString & getPath() const { return fossil().getWorkspacePath(); }
|
||||||
bool switchWorkspace(const QString &workspace, QSettings &store);
|
bool switchWorkspace(const QString &workspace, QSettings &store);
|
||||||
void scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModified, bool scanUnchanged, const QString &ignoreGlob, UICallback &uiCallback, bool &operationAborted);
|
void scanWorkspace(bool scanLocal, bool scanIgnored, bool scanModified, bool scanUnchanged, const QStringList& ignorePatterns, UICallback &uiCallback, bool &operationAborted);
|
||||||
|
|
||||||
QStandardItemModel &getFileModel() { return repoFileModel; }
|
QStandardItemModel &getFileModel() { return repoFileModel; }
|
||||||
QStandardItemModel &getTreeModel() { return repoTreeModel; }
|
QStandardItemModel &getTreeModel() { return repoTreeModel; }
|
||||||
@ -160,7 +160,7 @@ public:
|
|||||||
|
|
||||||
void storeWorkspace(QSettings &store);
|
void storeWorkspace(QSettings &store);
|
||||||
private:
|
private:
|
||||||
static bool scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QString ignoreSpec, const bool& abort, UICallback &uiCallback);
|
static bool scanDirectory(QFileInfoList &entries, const QString& dirPath, const QString &baseDir, const QStringList& ignorePatterns, const bool& abort, UICallback &uiCallback);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
Fossil bridge;
|
Fossil bridge;
|
||||||
|
@ -38,7 +38,7 @@
|
|||||||
<number>4</number>
|
<number>4</number>
|
||||||
</property>
|
</property>
|
||||||
<item>
|
<item>
|
||||||
<widget class="QSplitter" name="splitter_2">
|
<widget class="QSplitter" name="splitterVertical">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
<sizepolicy hsizetype="Preferred" vsizetype="Expanding">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
@ -48,7 +48,7 @@
|
|||||||
<property name="orientation">
|
<property name="orientation">
|
||||||
<enum>Qt::Vertical</enum>
|
<enum>Qt::Vertical</enum>
|
||||||
</property>
|
</property>
|
||||||
<widget class="QSplitter" name="splitter">
|
<widget class="QSplitter" name="splitterHorizontal">
|
||||||
<property name="sizePolicy">
|
<property name="sizePolicy">
|
||||||
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
<sizepolicy hsizetype="Expanding" vsizetype="Expanding">
|
||||||
<horstretch>0</horstretch>
|
<horstretch>0</horstretch>
|
||||||
|
Reference in New Issue
Block a user