You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

rdesktoplauncher.cpp 1.3KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. #include "rdesktoplauncher.h"
  2. #include <QStringList>
  3. #include <QProcess>
  4. #include <QDebug>
  5. RDesktopLauncher::RDesktopLauncher()
  6. {
  7. }
  8. void RDesktopLauncher::start(RdpOptions options)
  9. {
  10. QStringList args;
  11. args.append("-u");
  12. args.append(options.username());
  13. args.append("-p");
  14. args.append(options.password());
  15. args.append("-a");
  16. args.append(QString("%1").arg((int)options.colors()));
  17. if (!options.fullscreen())
  18. {
  19. args.append("-g");
  20. QSize reso = options.resolution();
  21. args.append(QString("%1x%2").arg(reso.width()).arg(reso.height()));
  22. }
  23. else
  24. {
  25. args.append("-f");
  26. }
  27. if (options.bitmapCache())
  28. {
  29. args.append("-P");
  30. }
  31. if (!options.metaKeys())
  32. {
  33. args.append("-K");
  34. }
  35. if (options.useShell())
  36. {
  37. args.append("-s");
  38. args.append(options.shell());
  39. args.append("-c");
  40. args.append(options.shellWorkingDir());
  41. }
  42. args.append("-k");
  43. args.append(options.keymap());
  44. args.append("-r");
  45. args.append("clipboard:PRIMARYCLIPBOARD");
  46. args.append("-r");
  47. args.append("disk:rootfs=/");
  48. args.append("-r");
  49. args.append("sound:local:alsa");
  50. args.append(options.host());
  51. QProcess::startDetached("rdesktop", args);
  52. }