public void exit() {
    if (Ctx.project.getProjectDir() != null
        && (Ctx.project.getWorld().isModified() || Ctx.project.getSelectedChapter().isModified())) {
      new Dialog("Save Project", skin) {
        protected void result(Object object) {
          if (((Boolean) object).booleanValue()) {
            try {
              Ctx.project.saveProject();
            } catch (TransformerException | IOException e1) {
              String msg =
                  "Something went wrong while saving the actor.\n\n"
                      + e1.getClass().getSimpleName()
                      + " - "
                      + e1.getMessage();
              Ctx.msg.show(getStage(), msg, 4);

              e1.printStackTrace();
            }
          }

          ((Main) Gdx.app).exitSaved();
        }
      }.text("Save changes to project?")
          .button("Yes", true)
          .button("No", false)
          .key(Keys.ENTER, true)
          .key(Keys.ESCAPE, false)
          .show(stage);
    } else {
      ((Main) Gdx.app).exitSaved();
    }
  }