Просмотр исходного кода

Merge pull request #1360 from FearlessTobi/port-3979

Port citra-emu/citra#3979 game_list: move SearchField to game_list_p.h and fix untranslated text
bunnei 7 лет назад
Родитель
Сommit
f7da74d18e
3 измененных файлов с 51 добавлено и 35 удалено
  1. 7 7
      src/yuzu/game_list.cpp
  2. 4 28
      src/yuzu/game_list.h
  3. 40 0
      src/yuzu/game_list_p.h

+ 7 - 7
src/yuzu/game_list.cpp

@@ -26,10 +26,10 @@
 #include "yuzu/main.h"
 #include "yuzu/ui_settings.h"
 
-GameList::SearchField::KeyReleaseEater::KeyReleaseEater(GameList* gamelist) : gamelist{gamelist} {}
+GameListSearchField::KeyReleaseEater::KeyReleaseEater(GameList* gamelist) : gamelist{gamelist} {}
 
 // EventFilter in order to process systemkeys while editing the searchfield
-bool GameList::SearchField::KeyReleaseEater::eventFilter(QObject* obj, QEvent* event) {
+bool GameListSearchField::KeyReleaseEater::eventFilter(QObject* obj, QEvent* event) {
     // If it isn't a KeyRelease event then continue with standard event processing
     if (event->type() != QEvent::KeyRelease)
         return QObject::eventFilter(obj, event);
@@ -88,21 +88,21 @@ bool GameList::SearchField::KeyReleaseEater::eventFilter(QObject* obj, QEvent* e
     return QObject::eventFilter(obj, event);
 }
 
-void GameList::SearchField::setFilterResult(int visible, int total) {
+void GameListSearchField::setFilterResult(int visible, int total) {
     label_filter_result->setText(tr("%1 of %n result(s)", "", total).arg(visible));
 }
 
-void GameList::SearchField::clear() {
+void GameListSearchField::clear() {
     edit_filter->setText("");
 }
 
-void GameList::SearchField::setFocus() {
+void GameListSearchField::setFocus() {
     if (edit_filter->isVisible()) {
         edit_filter->setFocus();
     }
 }
 
-GameList::SearchField::SearchField(GameList* parent) : QWidget{parent} {
+GameListSearchField::GameListSearchField(GameList* parent) : QWidget{parent} {
     KeyReleaseEater* keyReleaseEater = new KeyReleaseEater(parent);
     layout_filter = new QHBoxLayout;
     layout_filter->setMargin(8);
@@ -202,7 +202,7 @@ GameList::GameList(FileSys::VirtualFilesystem vfs, GMainWindow* parent)
     this->main_window = parent;
     layout = new QVBoxLayout;
     tree_view = new QTreeView;
-    search_field = new SearchField(this);
+    search_field = new GameListSearchField(this);
     item_model = new QStandardItemModel(tree_view);
     tree_view->setModel(item_model);
 

+ 4 - 28
src/yuzu/game_list.h

@@ -22,6 +22,7 @@
 #include "yuzu/compatibility_list.h"
 
 class GameListWorker;
+class GameListSearchField;
 class GMainWindow;
 
 namespace FileSys {
@@ -46,33 +47,6 @@ public:
         COLUMN_COUNT, // Number of columns
     };
 
-    class SearchField : public QWidget {
-    public:
-        void setFilterResult(int visible, int total);
-        void clear();
-        void setFocus();
-        explicit SearchField(GameList* parent = nullptr);
-
-    private:
-        class KeyReleaseEater : public QObject {
-        public:
-            explicit KeyReleaseEater(GameList* gamelist);
-
-        private:
-            GameList* gamelist = nullptr;
-            QString edit_filter_text_old;
-
-        protected:
-            bool eventFilter(QObject* obj, QEvent* event) override;
-        };
-        QHBoxLayout* layout_filter = nullptr;
-        QTreeView* tree_view = nullptr;
-        QLabel* label_filter = nullptr;
-        QLineEdit* edit_filter = nullptr;
-        QLabel* label_filter_result = nullptr;
-        QToolButton* button_filter_close = nullptr;
-    };
-
     explicit GameList(std::shared_ptr<FileSys::VfsFilesystem> vfs, GMainWindow* parent = nullptr);
     ~GameList() override;
 
@@ -110,7 +84,7 @@ private:
     void RefreshGameDirectory();
 
     std::shared_ptr<FileSys::VfsFilesystem> vfs;
-    SearchField* search_field;
+    GameListSearchField* search_field;
     GMainWindow* main_window = nullptr;
     QVBoxLayout* layout = nullptr;
     QTreeView* tree_view = nullptr;
@@ -118,6 +92,8 @@ private:
     GameListWorker* current_worker = nullptr;
     QFileSystemWatcher* watcher = nullptr;
     CompatibilityList compatibility_list;
+
+    friend class GameListSearchField;
 };
 
 Q_DECLARE_METATYPE(GameListOpenTarget);

+ 40 - 0
src/yuzu/game_list_p.h

@@ -16,6 +16,7 @@
 #include <QObject>
 #include <QStandardItem>
 #include <QString>
+#include <QWidget>
 
 #include "common/common_types.h"
 #include "common/logging/log.h"
@@ -176,3 +177,42 @@ public:
         return data(SizeRole).toULongLong() < other.data(SizeRole).toULongLong();
     }
 };
+
+class GameList;
+class QHBoxLayout;
+class QTreeView;
+class QLabel;
+class QLineEdit;
+class QToolButton;
+
+class GameListSearchField : public QWidget {
+    Q_OBJECT
+
+public:
+    explicit GameListSearchField(GameList* parent = nullptr);
+
+    void setFilterResult(int visible, int total);
+
+    void clear();
+    void setFocus();
+
+private:
+    class KeyReleaseEater : public QObject {
+    public:
+        explicit KeyReleaseEater(GameList* gamelist);
+
+    private:
+        GameList* gamelist = nullptr;
+        QString edit_filter_text_old;
+
+    protected:
+        // EventFilter in order to process systemkeys while editing the searchfield
+        bool eventFilter(QObject* obj, QEvent* event) override;
+    };
+    QHBoxLayout* layout_filter = nullptr;
+    QTreeView* tree_view = nullptr;
+    QLabel* label_filter = nullptr;
+    QLineEdit* edit_filter = nullptr;
+    QLabel* label_filter_result = nullptr;
+    QToolButton* button_filter_close = nullptr;
+};