USGS

Isis 3.0 Object Programmers' Reference

Home

PaletteWindow.cpp
1 #include "PaletteWindow.h"
2 
3 #include "IString.h"
4 
5 namespace Isis {
13  readSettings();
14  parent->installEventFilter(this);
15  p_appName = parent->windowTitle();
16  }
17 
18 
25  void PaletteWindow::closeEvent(QCloseEvent *event) {
26  writeSettings();
27  }
28 
29 
36  void PaletteWindow::hideEvent(QHideEvent *event) {
37  writeSettings();
38  }
39 
40 
47  QString instanceName = this->windowTitle();
48  FileName config("$HOME/.Isis/" + p_appName + "/" + instanceName + ".config");
49  QSettings settings(config.expanded(), QSettings::NativeFormat);
50  QPoint pos = settings.value("pos", QPoint(300, 100)).toPoint();
51  QSize size = settings.value("size", QSize(900, 500)).toSize();
52  resize(size);
53  move(pos);
54  }
55 
56 
64  /*We do not want to write the settings unless the window is
65  visible at the time of closing the application*/
66  if(!this->isVisible()) return;
67 
68  QString instanceName = this->windowTitle();
69  FileName config("$HOME/.Isis/" + p_appName + "/" + instanceName + ".config");
70  QSettings settings(config.expanded(), QSettings::NativeFormat);
71  settings.setValue("pos", pos());
72  settings.setValue("size", size());
73  }
74 
75 
87  bool PaletteWindow::eventFilter(QObject *o, QEvent *e) {
88  switch(e->type()) {
89  case QEvent::Close: {
90  writeSettings();
91  }
92 
93  default: {
94  return false;
95  }
96  }
97  }
98 
99 }
100