Løst programkræsj bug #1

This commit is contained in:
Helge-Mikael Nordgård 2021-09-21 12:45:18 +02:00
parent a17b1fed84
commit df7c5a8b41
9 changed files with 94 additions and 18 deletions

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 4.15.0, 2021-09-17T19:01:03. --> <!-- Written by QtCreator 4.15.0, 2021-09-21T11:59:51. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@ -294,9 +294,8 @@
<valuelist type="QVariantList" key="CustomOutputParsers"/> <valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value> <value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">core2</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/heno/Documents/qt prosjekter/Saeterprosjekt/src/core/core.pro</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/heno/Nextcloud/Div QT Projects/saeterprosjekt/src/core/core.pro</value> <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/heno/Documents/qt prosjekter/Saeterprosjekt/src/core/core.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">C:/Users/heno/Nextcloud/Div QT Projects/saeterprosjekt/src/core/core.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value> <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value> <value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>

View File

@ -31,4 +31,10 @@ enum AlertTypes {
SLUTT SLUTT
}; };
enum UIElementer {
FORNAVN,
ETTERNAVN,
FIRMANAVN
};
#endif // DATATYPES_H #endif // DATATYPES_H

View File

@ -513,11 +513,14 @@ void MainWindow::visRedigerKundeDlg(int posisjon) {
void MainWindow::settInnNyKunde(KundeFil kunde) { void MainWindow::settInnNyKunde(KundeFil kunde) {
if (kunde.value("fornavn").toString().isEmpty()) { if (kunde.value("fornavn").toString().isEmpty()) {
QMessageBox::warning(this, "Kan ikke lagre kunde", "Fornavn feltet er påkrevd"); nyKdlg->settFeilMelding("Fornavn feltet er påkrevd");
nyKdlg->fokuserElement(UIElementer::FORNAVN);
} else if (kunde.value("etternavn").toString().isEmpty()) { } else if (kunde.value("etternavn").toString().isEmpty()) {
QMessageBox::warning(this, "Kan ikke lagre kunde", "Etternavn feltet er påkrevd"); nyKdlg->settFeilMelding("Etternavn feltet er påkrevd");
nyKdlg->fokuserElement(UIElementer::ETTERNAVN);
} else if (kunde.value("firmanavn").toString().isEmpty()) { } else if (kunde.value("firmanavn").toString().isEmpty()) {
QMessageBox::warning(this, "Kan ikke lagre kunde", "Firmanavn feltet er påkrevd"); nyKdlg->settFeilMelding("Firmanavn feltet er påkrevd");
nyKdlg->fokuserElement(UIElementer::FIRMANAVN);
} else { } else {
kundeKart.append(kunde); kundeKart.append(kunde);
oppdaterTellere(); oppdaterTellere();
@ -536,12 +539,15 @@ void MainWindow::settInnNyKunde(KundeFil kunde) {
*/ */
void MainWindow::redigerKunde(KundeFil redigertKunde) { void MainWindow::redigerKunde(KundeFil redigertKunde) {
if (redigertKunde.value("fornavn").isNull()) { if (redigertKunde.value("fornavn").toString().isEmpty()) {
QMessageBox::warning(this, "Kan ikke lagre kunde", "Fornavn feltet er påkrevd"); redigerKdlg->settFeilMelding("Fornavn feltet er påkrevd");
} else if (redigertKunde.value("etternavn").isNull()) { redigerKdlg->fokuserElement(UIElementer::FORNAVN);
QMessageBox::warning(this, "Kan ikke lagre kunde", "Etternavn feltet er påkrevd"); } else if (redigertKunde.value("etternavn").toString().isEmpty()) {
} else if (redigertKunde.value("firmanavn").isNull()) { redigerKdlg->settFeilMelding("Etternavn feltet er påkrevd");
QMessageBox::warning(this, "Kan ikke lagre kunde", "Firmanavn feltet er påkrevd"); redigerKdlg->fokuserElement(UIElementer::ETTERNAVN);
} else if (redigertKunde.value("firmanavn").toString().isEmpty()) {
redigerKdlg->settFeilMelding("Firmanavn feltet er påkrevd");
redigerKdlg->fokuserElement(UIElementer::FIRMANAVN);
} else { } else {
for (int i = 0; i < kundeKart.size(); ++i) { for (int i = 0; i < kundeKart.size(); ++i) {
if (kundeKart.at(i).value("id").toInt() == redigertKunde.value("id").toInt()) { if (kundeKart.at(i).value("id").toInt() == redigertKunde.value("id").toInt()) {

View File

@ -8,6 +8,7 @@ NyKundeDialog::NyKundeDialog(QWidget *parent) :
ui->lineTlf->setValidator(new QIntValidator(10000000, 99999999, this)); ui->lineTlf->setValidator(new QIntValidator(10000000, 99999999, this));
ui->linePostnr->setValidator(new QIntValidator(1000, 9999, this)); ui->linePostnr->setValidator(new QIntValidator(1000, 9999, this));
ui->labelFeilMelding->setText("");
} }
NyKundeDialog::~NyKundeDialog() { NyKundeDialog::~NyKundeDialog() {
@ -22,6 +23,27 @@ void NyKundeDialog::nyKundeId(quint64 id) {
ui->lineKundenummer->setText(QString::number(id)); ui->lineKundenummer->setText(QString::number(id));
} }
void NyKundeDialog::fokuserElement(UIElementer element) {
switch (element) {
case UIElementer::FORNAVN:
ui->lineFornavn->selectAll();
ui->lineFornavn->setFocus();
break;
case UIElementer::ETTERNAVN:
ui->lineEtternavn->selectAll();
ui->lineEtternavn->setFocus();
break;
case UIElementer::FIRMANAVN:
ui->lineFirmanavn->selectAll();
ui->lineFirmanavn->setFocus();
break;
}
}
void NyKundeDialog::settFeilMelding(QString feilMelding) {
ui->labelFeilMelding->setText(tr("<span style=\"font-weight:600; color:#ff0000;\">Feil: </span><span style=\"font-weight:600;\"/><span style=\"color:#000000;\">%1</span>").arg(feilMelding));
}
void NyKundeDialog::on_pushAvbryt_clicked() { void NyKundeDialog::on_pushAvbryt_clicked() {
QDialog::close(); QDialog::close();
} }

View File

@ -20,6 +20,9 @@ public:
void startTopp(); void startTopp();
void nyKundeId(quint64 id); void nyKundeId(quint64 id);
void fokuserElement(UIElementer element);
void settFeilMelding(QString feilMelding);
signals: signals:
void leggTilKunde(KundeFil kunde); void leggTilKunde(KundeFil kunde);

View File

@ -206,6 +206,16 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<widget class="QLabel" name="labelFeilMelding">
<property name="text">
<string>&lt;html&gt;&lt;head/&gt;&lt;body&gt;&lt;p&gt;&lt;span style=&quot; font-weight:600; color:#ff0000;&quot;&gt;Feil: &lt;/span&gt;&lt;span style=&quot; font-weight:600;&quot;/&gt;&lt;span style=&quot; color:#000000;&quot;&gt;TextLabel&lt;/span&gt;&lt;/p&gt;&lt;/body&gt;&lt;/html&gt;</string>
</property>
<property name="textFormat">
<enum>Qt::RichText</enum>
</property>
</widget>
</item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>

View File

@ -3,13 +3,13 @@
RedigerKundeDialog::RedigerKundeDialog(QWidget *parent) : RedigerKundeDialog::RedigerKundeDialog(QWidget *parent) :
QDialog(parent), QDialog(parent),
ui(new Ui::RedigerKundeDialog) ui(new Ui::RedigerKundeDialog) {
{
ui->setupUi(this); ui->setupUi(this);
ui->labelFeilMelding->setText("");
} }
RedigerKundeDialog::~RedigerKundeDialog() RedigerKundeDialog::~RedigerKundeDialog() {
{
delete ui; delete ui;
} }
@ -29,6 +29,27 @@ void RedigerKundeDialog::settInnGamleVerdier(KundeFil gjeldendeKundeFil) {
ui->lineFornavn->setFocus(); ui->lineFornavn->setFocus();
} }
void RedigerKundeDialog::fokuserElement(UIElementer element) {
switch (element) {
case UIElementer::FORNAVN:
ui->lineFornavn->selectAll();
ui->lineFornavn->setFocus();
break;
case UIElementer::ETTERNAVN:
ui->lineEtternavn->selectAll();
ui->lineEtternavn->setFocus();
break;
case UIElementer::FIRMANAVN:
ui->lineFirmanavn->selectAll();
ui->lineFirmanavn->setFocus();
break;
}
}
void RedigerKundeDialog::settFeilMelding(QString feilMelding) {
ui->labelFeilMelding->setText(tr("<span style=\"font-weight:600; color:#ff0000;\">Feil: </span><span style=\"font-weight:600;\"/><span style=\"color:#000000;\">%1</span>").arg(feilMelding));
}
void RedigerKundeDialog::on_pushAvbryt_clicked() { void RedigerKundeDialog::on_pushAvbryt_clicked() {
QDialog::close(); QDialog::close();
} }

View File

@ -17,6 +17,8 @@ public:
~RedigerKundeDialog(); ~RedigerKundeDialog();
void settInnGamleVerdier(KundeFil gjeldendeKundeFil); void settInnGamleVerdier(KundeFil gjeldendeKundeFil);
void fokuserElement(UIElementer element);
void settFeilMelding(QString feilMelding);
signals: signals:
void oppdaterKundeFil(KundeFil redigertKundeFil); void oppdaterKundeFil(KundeFil redigertKundeFil);

View File

@ -7,7 +7,7 @@
<x>0</x> <x>0</x>
<y>0</y> <y>0</y>
<width>359</width> <width>359</width>
<height>309</height> <height>365</height>
</rect> </rect>
</property> </property>
<property name="windowTitle"> <property name="windowTitle">
@ -206,6 +206,13 @@
</property> </property>
</spacer> </spacer>
</item> </item>
<item>
<widget class="QLabel" name="labelFeilMelding">
<property name="text">
<string>TextLabel</string>
</property>
</widget>
</item>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>