]> granicus.if.org Git - transmission/commitdiff
fix crash when creating the Open Torrent dialog in Qt 5.2 on Ubuntu 14.04
authorJordan Lee <jordan@transmissionbt.com>
Sun, 16 Mar 2014 22:50:39 +0000 (22:50 +0000)
committerJordan Lee <jordan@transmissionbt.com>
Sun, 16 Mar 2014 22:50:39 +0000 (22:50 +0000)
qt/mainwin.cc
qt/qtr.pro

index 30361edbdf3931d2dd08c00ed2279758de2b8397..90ea60264a1dcbe9073fcbaa5f0a1595d17f0044 100644 (file)
@@ -1177,8 +1177,13 @@ TrMainWindow :: openTorrent ()
   QCheckBox * b = new QCheckBox (tr ("Show &options dialog"));
   b->setChecked (myPrefs.getBool (Prefs::OPTIONS_PROMPT));
   b->setObjectName (SHOW_OPTIONS_CHECKBOX_NAME);
-  QGridLayout * l = dynamic_cast<QGridLayout*> (d->layout ());
-  l->addWidget (b, l->rowCount (), 0, 1, -1, Qt::AlignLeft);
+  auto l = dynamic_cast<QGridLayout*> (d->layout ());
+  if (l == nullptr)
+    {
+      l = new QGridLayout;
+      d->setLayout (l);
+    }
+  l->addWidget (b, l->rowCount(), 0, 1, -1, Qt::AlignLeft);
 
   connect (d, SIGNAL (filesSelected (const QStringList&)),
            this, SLOT (addTorrents (const QStringList&)));
@@ -1319,8 +1324,13 @@ TrMainWindow :: removeTorrents (const bool deleteFiles)
   msgBox.setStandardButtons (QMessageBox::Ok | QMessageBox::Cancel);
   msgBox.setDefaultButton (QMessageBox::Cancel);
   msgBox.setIcon (QMessageBox::Question);
-  /* hack needed to keep the dialog from being too narrow */
-  QGridLayout* layout = (QGridLayout*)msgBox.layout ();
+  // hack needed to keep the dialog from being too narrow
+  auto layout = dynamic_cast<QGridLayout*>(msgBox.layout());
+  if (layout == nullptr)
+    {
+      layout = new QGridLayout;
+      msgBox.setLayout (layout);
+    }
   QSpacerItem* spacer = new QSpacerItem (450, 0, QSizePolicy::Minimum, QSizePolicy::Expanding);
   layout->addItem (spacer, layout->rowCount (), 0, 1, layout->columnCount ());
 
index 221a34bc2ce4623fe6554b880437c6b15bd4a51c..f390053975385920738a4597a3c44e57a429f205 100644 (file)
@@ -11,7 +11,7 @@ unix: INSTALLS += man
 man.path = /share/man/man1/
 man.files = transmission-qt.1
 
-CONFIG += qt thread debug link_pkgconfig
+CONFIG += qt thread debug link_pkgconfig c++11
 QT += network dbus
 PKGCONFIG = fontconfig libcurl openssl libevent