Skip to content

Instantly share code, notes, and snippets.

@vmlemon
Created June 11, 2011 15:33
Show Gist options
  • Select an option

  • Save vmlemon/1020670 to your computer and use it in GitHub Desktop.

Select an option

Save vmlemon/1020670 to your computer and use it in GitHub Desktop.
#include "multitool.h"
#include "ui_multitool.h"
MultiTool::MultiTool(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MultiTool)
{
ui->setupUi(this);
}
MultiTool::~MultiTool()
{
delete ui;
}
enum TMode {
EPlural,
ESingular
};
QString MultiTool::LocatePlural(QString aWord, int aMode) {
/* This lexicon is for nouns */
QMap<QString, QString> lexicon;
lexicon.insert("dog", "dogs");
lexicon.insert("basket", "baskets");
lexicon.insert("car", "cars");
/*
In certain contexts, the plural of "fish" can be either
"fish" or "fishes".
*/
lexicon.insert("fish", "fish");
lexicon.insert("sheep", "sheep");
lexicon.insert("tweet", "tweets");
lexicon.insert("vertex", "vertices");
lexicon.insert("potato", "potatoes");
if (aMode == ESingular) {
return(lexicon.value(aWord.toLower()));
}
if (aMode == EPlural)
{
return(lexicon.key(aWord.toLower()));
}
else {
return("");
qDebug() << "No mode";
}
}
QString MultiTool::Depluralise(QString aPluralWord)
{
return LocatePlural(aPluralWord, EPlural);
}
void MultiTool::on_DepluraliseButton_clicked()
{
ui->Result->setText(Depluralise(ui->GivenWord->text()));
}
void MultiTool::on_LocatePluralButton_clicked()
{
ui->Result->setText(LocatePlural(ui->GivenWord->text(), ESingular));
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment