Commit 6a2a37bfa72a5381c11de4db83fb350290689714

Authored by Peter Zhigalov
1 parent a7667134

Поправил элементы управления в OS X

.gitignore
... ... @@ -62,6 +62,7 @@ Makefile*
62 62  
63 63 # Temp files
64 64 *~
  65 +.DS_Store
65 66  
66 67 # ================ FEM Draw specific .gitignore ================================
67 68  
... ...
src_qt/main.cpp
... ... @@ -11,6 +11,10 @@ Q_IMPORT_PLUGIN(qtiff)
11 11 int main(int argc, char *argv[])
12 12 {
13 13 QApplication a(argc, argv);
  14 +#if defined (Q_OS_OSX)
  15 + // TODO: При возможности добавить поддержку нативного меню
  16 + a.setAttribute(Qt::AA_DontUseNativeMenuBar);
  17 +#endif
14 18 MainWindow w;
15 19 if(argc > 1)
16 20 {
... ...
src_qt/mainwindow.cpp
... ... @@ -75,6 +75,23 @@ MainWindow::MainWindow(QWidget *parent) :
75 75 // Зададим умолчательные имена файлов
76 76 last_saved = "draw.png";
77 77 last_opened = "";
  78 +
  79 +#if defined (Q_OS_OSX)
  80 + // Очень грустный костыль: под маком очень странная политика работы с фокусом.
  81 + // Из-за этого по-умолчанию фокус устанавливается только на SpinBox'ах. Самый
  82 + // вменяемый способ починить это - заблокировать фокус у всех элементов
  83 + // управления, кроме основного виджета, в котором рисуем.
  84 + ui->checkBox_Color->setFocusPolicy(Qt::NoFocus);
  85 + ui->comboBox_Color->setFocusPolicy(Qt::NoFocus);
  86 + ui->checkBox_Isolines->setFocusPolicy(Qt::NoFocus);
  87 + ui->spinBox_Isolines->setFocusPolicy(Qt::NoFocus);
  88 + ui->checkBox_Vectors->setFocusPolicy(Qt::NoFocus);
  89 + ui->spinBox_Vectors->setFocusPolicy(Qt::NoFocus);
  90 + ui->label->setFocusPolicy(Qt::NoFocus);
  91 + ui->comboBox_Vectors_U->setFocusPolicy(Qt::NoFocus);
  92 + ui->label_2->setFocusPolicy(Qt::NoFocus);
  93 + ui->comboBox_Vectors_V->setFocusPolicy(Qt::NoFocus);
  94 +#endif
78 95 }
79 96  
80 97 // Деструктор
... ...