Switch to using C++11 and Qt5 (#808) · robohh/sqlitebrowser@1ced897 · GitHub
Skip to content

Commit 1ced897

Browse files
authored
Switch to using C++11 and Qt5 (sqlitebrowser#808)
* grammar: Simplify code thanks to C++11 being there * Use lambdas instead verbose slots for duplicating record * travis: Use Qt5
1 parent 65a2c24 commit 1ced897

10 files changed

Lines changed: 37 additions & 100 deletions

‎.travis.yml‎

Lines changed: 9 additions & 3 deletions

‎src/EditTableDialog.cpp‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@ void EditTableDialog::populateFields()
121121

122122
tbitem->setText(kCheck, f->check());
123123

124-
QSharedPointer<sqlb::ForeignKeyClause> fk = m_table.constraint(f, sqlb::Constraint::ForeignKeyConstraintType).dynamicCast<sqlb::ForeignKeyClause>();
124+
QSharedPointer<sqlb::ForeignKeyClause> fk = m_table.constraint({f}, sqlb::Constraint::ForeignKeyConstraintType).dynamicCast<sqlb::ForeignKeyClause>();
125125
if(fk)
126126
tbitem->setText(kForeignKey, fk->toString());
127127
ui->treeWidget->addTopLevelItem(tbitem);
@@ -438,7 +438,7 @@ void EditTableDialog::itemChanged(QTreeWidgetItem *item, int column)
438438
case kForeignKey:
439439
sqlb::ForeignKeyClause* fk = new sqlb::ForeignKeyClause;
440440
fk->setFromString(item->text(column));
441-
m_table.addConstraint(field, sqlb::ConstraintPtr(fk));
441+
m_table.addConstraint({field}, sqlb::ConstraintPtr(fk));
442442
if(!m_bNewTable)
443443
callRenameColumn = true;
444444
break;

‎src/MainWindow.cpp‎

Lines changed: 14 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -156,10 +156,12 @@ void MainWindow::init()
156156
popupBrowseDataHeaderMenu->addSeparator();
157157
popupBrowseDataHeaderMenu->addAction(ui->actionSetAllTablesEncoding);
158158

159-
popupRecordMenu = new QMenu(this);
160-
popupRecordMenu->addAction(ui->actionDittoRecord);
161159
QShortcut* dittoRecordShortcut = new QShortcut(QKeySequence("Ctrl+\""), this);
162-
connect(dittoRecordShortcut, SIGNAL(activated()), this, SLOT(dittoRecord()));
160+
connect(dittoRecordShortcut, &QShortcut::activated, [this]() {
161+
int currentRow = ui->dataTable->currentIndex().row();
162+
auto row = m_browseTableModel->dittoRecord(currentRow);
163+
ui->dataTable->setCurrentIndex(row);
164+
});
163165

164166
// Add menu item for log dock
165167
ui->viewMenu->insertAction(ui->viewDBToolbarAction, ui->dockLog->toggleViewAction());
@@ -599,25 +601,6 @@ void MainWindow::deleteRecord()
599601
}
600602
}
601603

602-
void MainWindow::dittoRecord()
603-
{
604-
const QString sCurrentTable = ui->comboBrowseTable->currentText();
605-
if (!(db.getObjectByName(sCurrentTable).gettype() == "table" && !db.readOnly()))
606-
return;
607-
608-
int row;
609-
if (qobject_cast<QShortcut*>(sender()))
610-
row = ui->dataTable->currentIndex().row();
611-
else
612-
row = ui->actionDittoRecord->property("current_row").toInt();
613-
614-
if (row == -1)
615-
return;
616-
617-
QModelIndex idx = m_browseTableModel->dittoRecord(row);
618-
ui->dataTable->setCurrentIndex(idx);
619-
}
620-
621604
void MainWindow::selectTableLine(int lineToSelect)
622605
{
623606
// Are there even that many lines?
@@ -2605,8 +2588,15 @@ void MainWindow::showRecordPopupMenu(const QPoint& pos)
26052588
if (row == -1)
26062589
return;
26072590

2608-
ui->actionDittoRecord->setProperty("current_row", row);
2609-
popupRecordMenu->exec(ui->dataTable->verticalHeader()->mapToGlobal(pos));
2591+
QMenu popupRecordMenu(this);
2592+
QAction* action = new QAction("Duplicate record", &popupRecordMenu);
2593+
popupRecordMenu.addAction(action);
2594+
2595+
connect(action, &QAction::triggered, [&]() {
2596+
m_browseTableModel->dittoRecord(row);
2597+
});
2598+
2599+
popupRecordMenu.exec(ui->dataTable->verticalHeader()->mapToGlobal(pos));
26102600
}
26112601

26122602
void MainWindow::editDataColumnDisplayFormat()

‎src/MainWindow.h‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,6 @@ class MainWindow : public QMainWindow
155155
QMenu *recentFilesMenu;
156156
QMenu *popupSaveSqlFileMenu;
157157
QMenu* popupBrowseDataHeaderMenu;
158-
QMenu* popupRecordMenu;
159158

160159
QLabel* statusEncodingLabel;
161160
QLabel* statusEncryptionLabel;
@@ -211,7 +210,6 @@ private slots:
211210
bool fileClose();
212211
void addRecord();
213212
void deleteRecord();
214-
void dittoRecord();
215213
void selectTableLine( int lineToSelect );
216214
void navigatePrevious();
217215
void navigateNext();

‎src/MainWindow.ui‎

Lines changed: 0 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1930,14 +1930,6 @@
19301930
<string>Change the default encoding assumed for all tables in the database</string>
19311931
</property>
19321932
</action>
1933-
<action name="actionDittoRecord">
1934-
<property name="text">
1935-
<string>Duplicate record</string>
1936-
</property>
1937-
<property name="toolTip">
1938-
<string>Duplicate record</string>
1939-
</property>
1940-
</action>
19411933
<action name="actionSqlCipherFaq">
19421934
<property name="icon">
19431935
<iconset resource="icons/icons.qrc">
@@ -2993,22 +2985,6 @@
29932985
</hint>
29942986
</hints>
29952987
</connection>
2996-
<connection>
2997-
<sender>actionDittoRecord</sender>
2998-
<signal>triggered()</signal>
2999-
<receiver>MainWindow</receiver>
3000-
<slot>dittoRecord()</slot>
3001-
<hints>
3002-
<hint type="sourcelabel">
3003-
<x>-1</x>
3004-
<y>-1</y>
3005-
</hint>
3006-
<hint type="destinationlabel">
3007-
<x>518</x>
3008-
<y>314</y>
3009-
</hint>
3010-
</hints>
3011-
</connection>
30122988
<connection>
30132989
<sender>fileExportJsonAction</sender>
30142990
<signal>triggered()</signal>
@@ -3102,7 +3078,6 @@
31023078
<slot>browseDataSetTableEncoding()</slot>
31033079
<slot>browseDataSetDefaultTableEncoding()</slot>
31043080
<slot>browseDataFetchAllData()</slot>
3105-
<slot>dittoRecord()</slot>
31063081
<slot>exportTableToJson()</slot>
31073082
</slots>
31083083
</ui>

‎src/sqlitedb.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -784,7 +784,7 @@ QString DBBrowserDB::emptyInsertStmt(const sqlb::Table& t, const QString& pk_val
784784
QStringList fields;
785785
foreach(sqlb::FieldPtr f, t.fields())
786786
{
787-
sqlb::ConstraintPtr pk = t.constraint(f, sqlb::Constraint::PrimaryKeyConstraintType);
787+
sqlb::ConstraintPtr pk = t.constraint({f}, sqlb::Constraint::PrimaryKeyConstraintType);
788788
if(pk)
789789
{
790790
fields << f->name();

‎src/sqlitetablemodel.cpp‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -273,7 +273,7 @@ sqlb::ForeignKeyClause SqliteTableModel::getForeignKeyClause(int column) const
273273
// Note that the rowid column has number -1 here, it can safely be excluded since there will never be a
274274
// foreign key on that column.
275275

276-
sqlb::ConstraintPtr ptr = obj.table.constraint(obj.table.fields().at(column), sqlb::Constraint::ForeignKeyConstraintType);
276+
sqlb::ConstraintPtr ptr = obj.table.constraint({obj.table.fields().at(column)}, sqlb::Constraint::ForeignKeyConstraintType);
277277
if(ptr)
278278
return *(ptr.dynamicCast<sqlb::ForeignKeyClause>());
279279
}

‎src/sqlitetypes.cpp‎

Lines changed: 2 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -312,27 +312,11 @@ QString Table::sql() const
312312
return sql + ";";
313313
}
314314

315-
void Table::addConstraint(FieldPtr field, ConstraintPtr constraint)
316-
{
317-
FieldVector v;
318-
v.push_back(field);
319-
addConstraint(v, constraint);
320-
}
321-
322315
void Table::addConstraint(FieldVector fields, ConstraintPtr constraint)
323316
{
324317
m_constraints.insert(fields, constraint);
325318
}
326319

327-
ConstraintPtr Table::constraint(FieldPtr field, Constraint::ConstraintTypes type) const
328-
{
329-
QList<ConstraintPtr> list = constraints(field, type);
330-
if(list.size())
331-
return list.at(0);
332-
else
333-
return ConstraintPtr(nullptr);
334-
}
335-
336320
ConstraintPtr Table::constraint(FieldVector fields, Constraint::ConstraintTypes type) const
337321
{
338322
QList<ConstraintPtr> list = constraints(fields, type);
@@ -342,13 +326,6 @@ ConstraintPtr Table::constraint(FieldVector fields, Constraint::ConstraintTypes
342326
return ConstraintPtr(nullptr);
343327
}
344328

345-
QList<ConstraintPtr> Table::constraints(FieldPtr field, Constraint::ConstraintTypes type) const
346-
{
347-
FieldVector v;
348-
v.push_back(field);
349-
return constraints(v, type);
350-
}
351-
352329
QList<ConstraintPtr> Table::constraints(FieldVector fields, Constraint::ConstraintTypes type) const
353330
{
354331
QList<ConstraintPtr> clist;
@@ -765,14 +742,14 @@ void CreateTableWalker::parsecolumn(Table& table, antlr::RefAST c)
765742
table.addField(f);
766743

767744
if(foreignKey)
768-
table.addConstraint(f, ConstraintPtr(foreignKey));
745+
table.addConstraint({f}, ConstraintPtr(foreignKey));
769746
if(primarykey)
770747
{
771748
FieldVector v;
772749
if(table.constraint(v, Constraint::PrimaryKeyConstraintType))
773750
table.primaryKeyRef().push_back(f);
774751
else
775-
table.addConstraint(f, ConstraintPtr(new PrimaryKeyConstraint()));
752+
table.addConstraint({f}, ConstraintPtr(new PrimaryKeyConstraint()));
776753
}
777754
}
778755

‎src/sqlitetypes.h‎

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -192,11 +192,8 @@ class Table
192192
bool isWithoutRowidTable() const { return m_rowidColumn != "_rowid_"; }
193193
void clear();
194194

195-
void addConstraint(FieldPtr field, ConstraintPtr constraint);
196195
void addConstraint(FieldVector fields, ConstraintPtr constraint);
197-
ConstraintPtr constraint(FieldPtr field, Constraint::ConstraintTypes type = Constraint::NoType) const; //! Only returns the first constraint, if any
198196
ConstraintPtr constraint(FieldVector fields = FieldVector(), Constraint::ConstraintTypes type = Constraint::NoType) const; //! Only returns the first constraint, if any
199-
QList<ConstraintPtr> constraints(FieldPtr field, Constraint::ConstraintTypes type = Constraint::NoType) const;
200197
QList<ConstraintPtr> constraints(FieldVector fields = FieldVector(), Constraint::ConstraintTypes type = Constraint::NoType) const;
201198
FieldVector& primaryKeyRef();
202199
const FieldVector& primaryKey() const;

‎src/tests/testsqlobjects.cpp‎

Lines changed: 8 additions & 14 deletions

0 commit comments

Comments
 (0)