mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-05-06 16:45:15 -04:00
parent
8117809901
commit
e166722026
15 changed files with 297 additions and 54 deletions
|
@ -297,6 +297,7 @@ void DatabaseTabWidget::saveDatabaseAs(Database* db)
|
|||
dbStruct.filePath = fileInfo.absoluteFilePath();
|
||||
dbStruct.canonicalFilePath = fileInfo.canonicalFilePath();
|
||||
dbStruct.fileName = fileInfo.fileName();
|
||||
dbStruct.dbWidget->updateFilename(dbStruct.filePath);
|
||||
updateTabName(db);
|
||||
updateLastDatabases(dbStruct.filePath);
|
||||
}
|
||||
|
@ -391,20 +392,35 @@ void DatabaseTabWidget::updateTabName(Database* db)
|
|||
tabName = QString("%1 [%2]").arg(db->metadata()->name(), tr("New database"));
|
||||
}
|
||||
}
|
||||
|
||||
if (dbStruct.dbWidget->currentMode() == DatabaseWidget::LockedMode) {
|
||||
tabName.append(QString(" [%1]").arg(tr("locked")));
|
||||
}
|
||||
|
||||
if (dbStruct.modified) {
|
||||
tabName.append("*");
|
||||
}
|
||||
|
||||
setTabText(index, tabName);
|
||||
Q_EMIT tabNameChanged();
|
||||
}
|
||||
|
||||
void DatabaseTabWidget::updateTabNameFromSender()
|
||||
void DatabaseTabWidget::updateTabNameFromDbSender()
|
||||
{
|
||||
Q_ASSERT(qobject_cast<Database*>(sender()));
|
||||
|
||||
updateTabName(static_cast<Database*>(sender()));
|
||||
}
|
||||
|
||||
void DatabaseTabWidget::updateTabNameFromDbWidgetSender()
|
||||
{
|
||||
Q_ASSERT(qobject_cast<DatabaseWidget*>(sender()));
|
||||
Q_ASSERT(databaseFromDatabaseWidget(qobject_cast<DatabaseWidget*>(sender())));
|
||||
|
||||
DatabaseWidget* dbWidget = static_cast<DatabaseWidget*>(sender());
|
||||
updateTabName(databaseFromDatabaseWidget(dbWidget));
|
||||
}
|
||||
|
||||
int DatabaseTabWidget::databaseIndex(Database* db)
|
||||
{
|
||||
QWidget* dbWidget = m_dbList.value(db).dbWidget;
|
||||
|
@ -466,6 +482,7 @@ void DatabaseTabWidget::insertDatabase(Database* db, const DatabaseManagerStruct
|
|||
connectDatabase(db);
|
||||
connect(dbStruct.dbWidget, SIGNAL(closeRequest()), SLOT(closeDatabaseFromSender()));
|
||||
connect(dbStruct.dbWidget, SIGNAL(databaseChanged(Database*)), SLOT(changeDatabase(Database*)));
|
||||
connect(dbStruct.dbWidget, SIGNAL(unlockedDatabase()), SLOT(updateTabNameFromDbWidgetSender()));
|
||||
}
|
||||
|
||||
DatabaseWidget* DatabaseTabWidget::currentDatabaseWidget()
|
||||
|
@ -479,6 +496,37 @@ DatabaseWidget* DatabaseTabWidget::currentDatabaseWidget()
|
|||
}
|
||||
}
|
||||
|
||||
bool DatabaseTabWidget::hasLockableDatabases()
|
||||
{
|
||||
QHashIterator<Database*, DatabaseManagerStruct> i(m_dbList);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
DatabaseWidget::Mode mode = i.value().dbWidget->currentMode();
|
||||
|
||||
if ((mode == DatabaseWidget::ViewMode || mode == DatabaseWidget::EditMode)
|
||||
&& i.value().dbWidget->dbHasKey()) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
void DatabaseTabWidget::lockDatabases()
|
||||
{
|
||||
QHashIterator<Database*, DatabaseManagerStruct> i(m_dbList);
|
||||
while (i.hasNext()) {
|
||||
i.next();
|
||||
DatabaseWidget::Mode mode = i.value().dbWidget->currentMode();
|
||||
|
||||
if ((mode == DatabaseWidget::ViewMode || mode == DatabaseWidget::EditMode)
|
||||
&& i.value().dbWidget->dbHasKey()) {
|
||||
i.value().dbWidget->lock();
|
||||
updateTabName(i.key());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void DatabaseTabWidget::modified()
|
||||
{
|
||||
Q_ASSERT(qobject_cast<Database*>(sender()));
|
||||
|
@ -535,7 +583,7 @@ void DatabaseTabWidget::connectDatabase(Database* newDb, Database* oldDb)
|
|||
oldDb->disconnect(this);
|
||||
}
|
||||
|
||||
connect(newDb, SIGNAL(nameTextChanged()), SLOT(updateTabNameFromSender()));
|
||||
connect(newDb, SIGNAL(nameTextChanged()), SLOT(updateTabNameFromDbSender()));
|
||||
connect(newDb, SIGNAL(modified()), SLOT(modified()));
|
||||
newDb->setEmitModified(true);
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue