Løst programkræsj bug/issue#1

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

View File

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<!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>
<data>
<variable>EnvironmentId</variable>
@ -294,9 +294,8 @@
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<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/Nextcloud/Div QT Projects/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="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:C:/Users/heno/Documents/qt prosjekter/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="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>

View File

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

View File

@ -513,11 +513,14 @@ void MainWindow::visRedigerKundeDlg(int posisjon) {
void MainWindow::settInnNyKunde(KundeFil kunde) {
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()) {
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()) {
QMessageBox::warning(this, "Kan ikke lagre kunde", "Firmanavn feltet er påkrevd");
nyKdlg->settFeilMelding("Firmanavn feltet er påkrevd");
nyKdlg->fokuserElement(UIElementer::FIRMANAVN);
} else {
kundeKart.append(kunde);
oppdaterTellere();
@ -536,12 +539,15 @@ void MainWindow::settInnNyKunde(KundeFil kunde) {
*/
void MainWindow::redigerKunde(KundeFil redigertKunde) {
if (redigertKunde.value("fornavn").isNull()) {
QMessageBox::warning(this, "Kan ikke lagre kunde", "Fornavn feltet er påkrevd");
} else if (redigertKunde.value("etternavn").isNull()) {
QMessageBox::warning(this, "Kan ikke lagre kunde", "Etternavn feltet er påkrevd");
} else if (redigertKunde.value("firmanavn").isNull()) {
QMessageBox::warning(this, "Kan ikke lagre kunde", "Firmanavn feltet er påkrevd");
if (redigertKunde.value("fornavn").toString().isEmpty()) {
redigerKdlg->settFeilMelding("Fornavn feltet er påkrevd");
redigerKdlg->fokuserElement(UIElementer::FORNAVN);
} else if (redigertKunde.value("etternavn").toString().isEmpty()) {
redigerKdlg->settFeilMelding("Etternavn 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 {
for (int i = 0; i < kundeKart.size(); ++i) {
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->linePostnr->setValidator(new QIntValidator(1000, 9999, this));
ui->labelFeilMelding->setText("");
}
NyKundeDialog::~NyKundeDialog() {
@ -22,6 +23,27 @@ void NyKundeDialog::nyKundeId(quint64 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() {
QDialog::close();
}

View File

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

View File

@ -206,6 +206,16 @@
</property>
</spacer>
</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>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>

View File

@ -3,13 +3,13 @@
RedigerKundeDialog::RedigerKundeDialog(QWidget *parent) :
QDialog(parent),
ui(new Ui::RedigerKundeDialog)
{
ui(new Ui::RedigerKundeDialog) {
ui->setupUi(this);
ui->labelFeilMelding->setText("");
}
RedigerKundeDialog::~RedigerKundeDialog()
{
RedigerKundeDialog::~RedigerKundeDialog() {
delete ui;
}
@ -29,6 +29,27 @@ void RedigerKundeDialog::settInnGamleVerdier(KundeFil gjeldendeKundeFil) {
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() {
QDialog::close();
}

View File

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

View File

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